From 8fdf5f8f64aec307a932bb763beb8e3583d9c02a Mon Sep 17 00:00:00 2001 From: freznel10 Date: Fri, 16 Jun 2023 10:19:45 +0800 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 579db6131e271a6b3a52c3e19b2fe3a15fd403c7 Merge: dc435a0834 94311e4dc2 Author: QMK Bot Date: Thu Jun 15 20:57:46 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 94311e4dc27e603b6c421d2773a5f82275a24411 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jun 15 13:57:13 2023 -0700 Alas: ISO Layouts Fix and Matrix Diagram (#21255) commit dc435a0834df3d8c6405dee1cd9eee1a11f8ea70 Merge: e8ca83a353 5263dfb88d Author: QMK Bot Date: Thu Jun 15 20:56:50 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 5263dfb88d321b520925f21a481406d591bf1a61 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jun 15 13:56:07 2023 -0700 ButterKeebs PocketPad: correct layout data (#21256) commit e8ca83a353cae7a6faaf65d95ceb1f64278f27f4 Author: Ryan Date: Thu Jun 15 22:27:26 2023 +1000 Move `RGBLIGHT_SPLIT` to data driven (#21190) * Move `RGBLIGHT_SPLIT` to data driven * Remove where `split_count` is already set commit c011eb1ead8970411c16b61f74b76a4364e258eb Merge: 53d76042e0 9b36ec5351 Author: QMK Bot Date: Thu Jun 15 12:19:44 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9b36ec53512f89ee834a894e23a64a8b4fcf3fc8 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu Jun 15 05:18:56 2023 -0700 DOIO KB30 Refactor (#21250) * refactor keymaps - remove extra blank lines - convert tabs to spaces - use four-space indent - grid-align keycodes - use QMK-native keycode aliases * info.json: correct layout data * add readme.md * info.json: correct maintainer field Updates the value to reference the maintainer's GitHub username. commit 53d76042e087b80db98ca2e214f89b3b541e5dfc Merge: dd69649fc9 66f06a175f Author: QMK Bot Date: Thu Jun 15 04:29:09 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 66f06a175f13851ae1d3c37a85b1d2d3ffea58b7 Author: Sleepdealr <35879391+Sleepdealr@users.noreply.github.com> Date: Thu Jun 15 00:28:06 2023 -0400 [Keyboard] Add Artemis Paragon (#20910) Co-authored-by: jack <0x6a73@protonmail.com> commit dd69649fc99500cb60827d556392785cb379259a Merge: 5c03941405 8f980ea69f Author: QMK Bot Date: Thu Jun 15 04:26:11 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8f980ea69fcebfc70e716da27907ce13940657a1 Author: jonylee@hfd <108282809+jonylee1986@users.noreply.github.com> Date: Thu Jun 15 12:25:23 2023 +0800 [Keyboard] add top40 keyboard. (#21199) Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> commit 5c03941405c7b76cd2f14ea871c635452a3ca22c Merge: 03c4530e8c bbba1d07f9 Author: QMK Bot Date: Thu Jun 15 04:24:28 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit bbba1d07f94490440bb002148cf9aa10cf8f8ccf Author: jonylee@hfd <108282809+jonylee1986@users.noreply.github.com> Date: Thu Jun 15 12:23:46 2023 +0800 [Keyboard] add acr87 keyboard. (#21200) commit 03c4530e8c207677cf5830228b15e1868808e2a4 Merge: 8ee0cb5744 3703d5a83b Author: QMK Bot Date: Thu Jun 15 04:22:24 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 3703d5a83b6ba6d1abd20049eb920fbce417f91c Author: blindassassin111 <38090555+blindassassin111@users.noreply.github.com> Date: Wed Jun 14 23:20:49 2023 -0500 [Keyboard] Adding OSAv2 Numpad Topre support (#21224) commit 8ee0cb574427b6a47e38b497d3975123a4a54e3d Merge: 2add1fb223 a2c17d5518 Author: QMK Bot Date: Thu Jun 15 04:08:59 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit a2c17d5518b9301abe8f40b4ca9e62a6e9e38d64 Author: Andrew Kannan Date: Thu Jun 15 00:08:16 2023 -0400 [Keyboard] Add CannonKeys Leviatan PCB (#21231) commit 2add1fb223c70e2f0c98c2252138c038f09fb600 Author: Duncan Sutherland Date: Thu Jun 15 05:06:18 2023 +0100 [Keyboard] `dactyl_manuform/6x7` pin correction (#21240) commit f594b99f92979e85ba51453acc3cbe0763863570 Merge: ee6320c7aa 92203440cd Author: QMK Bot Date: Thu Jun 15 04:00:51 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 92203440cd40e319251560869b23e62335fe8eb6 Author: Gastón Jorquera Date: Thu Jun 15 00:00:13 2023 -0400 [Keymap] Left Control is now ESC when tapped (#21241) commit ee6320c7aa3ca2de0fcc4cbfc606883291faed46 Merge: 6c7c5889ca 87858108b5 Author: QMK Bot Date: Thu Jun 15 03:59:31 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 87858108b525bb3c1f40f800a560780fb12101e1 Author: Álvaro A. Volpato Date: Thu Jun 15 00:58:55 2023 -0300 Modernize M75H and M75S firmwares (#21244) commit 6c7c5889ca04959c3ce2448d6ca07545b9811e4d Author: Nick Brassel Date: Thu Jun 15 13:48:19 2023 +1000 Rely on introspection to handle OOB access. (#21247) commit 88d9b7ee312096fa614142f4c207d72eca629ac7 Merge: 9103b63354 baa9252db2 Author: QMK Bot Date: Thu Jun 15 03:30:22 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit baa9252db2443a9884b344ae77ea58710b1932af Author: dztech Date: Thu Jun 15 11:29:39 2023 +0800 [Keyboard] add pluto keyboard (#21225) commit 9103b63354a0869613ab89dd927103072d8aa865 Merge: 6fdf4baecd 776e980ac1 Author: QMK Bot Date: Thu Jun 15 01:46:17 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 776e980ac1a31080f0a9f73acd24d1832e555cf6 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 14 18:45:37 2023 -0700 4pplet Waffling60 Rev D ISO Layout Fix and Additions (#21236) * correct layout data * add matrix diagram * rename LAYOUT to LAYOUT_all * add LAYOUT_60_iso_tsangan_split_bs_rshift * add LAYOUT_60_iso_tsangan_split_rshift * add LAYOUT_60_iso_wkl_split_bs_rshift * add LAYOUT_60_iso_wkl_split_rshift commit 6fdf4baecdc99b55194deeeff85df3bc4d5ddcdb Merge: 7bafae64f9 f5ee7b7ed8 Author: QMK Bot Date: Wed Jun 14 16:27:44 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit f5ee7b7ed89715860ec769cbbe1b3b6468a80300 Author: Danny Date: Wed Jun 14 12:26:46 2023 -0400 Add Sinc Rev. 4 (#21130) * Fork Rev. 3 to 4 * Update RGB LED positions * Adjust RGB positions * Enable more RGB modes * Update copyrights * Add license headers to keymaps * Use same type of license header Co-authored-by: Joel Challis * Fix I2C pins --------- Co-authored-by: Joel Challis commit 7bafae64f9b40a78d1029c5fb1b8ae30227c9289 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 14 07:31:51 2023 -0700 FJLabs Swordfish Layout Macro Refactor (#21234) * physically arrange layout macro Arranges the layout macro to QMK standards (left to right, row by row). This change breaks compatibility with out-of-tree keymaps, because the order in which the keycode arguments must be passed is changed. * rename `LAYOUT_alice_all` to `LAYOUT_split_bs` * add `LAYOUT_2u_bs` macro commit 9551a0a38aca3d32e38a123ae2854a8c82b26195 Author: Ryan Date: Wed Jun 14 22:01:13 2023 +1000 Move `RGBLIGHT_LED_MAP` to data driven (#21095) commit 6c4286152f924fc98a6f18e14987f1db6e55ae5e Merge: 5fd55908c6 4055f2a937 Author: QMK Bot Date: Wed Jun 14 06:27:47 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4055f2a93706af7f3cec46a9b1683cdefeb0d25a Author: jonylee@hfd <108282809+jonylee1986@users.noreply.github.com> Date: Wed Jun 14 14:27:08 2023 +0800 [Keyboard]add 5108 Keyboard. (#21184) Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com> Co-authored-by: jack <0x6a73@protonmail.com> commit 5fd55908c6ec382dd236d6a3c0e5714f9bc05fc2 Merge: aefdb39393 55987542e1 Author: QMK Bot Date: Tue Jun 13 15:18:40 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 55987542e1165aedf826012bf940a235b6afe610 Author: rhmokey <57172003+rhmokey@users.noreply.github.com> Date: Tue Jun 13 23:17:55 2023 +0800 [Keyboard] Add mokey12x2 (#20702) Co-authored-by: Ryan Co-authored-by: Joel Challis commit aefdb39393a5e5dcfc032a9963d5f24f9c7d3ec3 Merge: d9bea011fa 1194a6f0dd Author: QMK Bot Date: Tue Jun 13 15:09:23 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 1194a6f0dde197ede9fa2b9e5cfe924bbcdd729e Author: Alabahuy Date: Tue Jun 13 22:08:37 2023 +0700 [Keyboard] jaykeeb skyline (#21219) commit d9bea011fa6c953acf541dfd970e70b43800c4a5 Merge: fd2a516f03 e8b7244bb5 Author: QMK Bot Date: Tue Jun 13 15:05:55 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit e8b7244bb51b297b4de055a41f3ab01a9daf0362 Author: Alberto Pavano <38161192+ATron789@users.noreply.github.com> Date: Tue Jun 13 16:05:03 2023 +0100 [Keyboard] rainkeebs trailmix (#20189) Co-authored-by: jack <0x6a73@protonmail.com> commit fd2a516f03243009b96f82769a17a5ced7410b5b Merge: f4529eb42b dabbc93df4 Author: QMK Bot Date: Tue Jun 13 06:33:41 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit dabbc93df47815c4df42696de220684edd05f873 Author: David Hoelscher Date: Tue Jun 13 01:32:54 2023 -0500 [Keyboard] Add ErgoStrafer keyboard (#21195) commit f4529eb42b22ba5236f667ae4d0fd3c8255a1fe8 Author: Duncan Sutherland Date: Tue Jun 13 07:19:38 2023 +0100 [Keymap] Fix `scheikled` keymap for `dactyl_manuform/4x6` (#21206) commit af58f2602877355c640568bc816a0838e71f4965 Merge: 94aaf38177 ca6921b1ba Author: QMK Bot Date: Tue Jun 13 06:17:56 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit ca6921b1ba422e4276e45062a115bec854864a90 Author: Joe Scotto Date: Tue Jun 13 02:17:18 2023 -0400 [Keyboard] Add ScottoNum macropad (#21208) commit 94aaf38177ff304fdb045690b0857a51f15cb043 Merge: 84c7aaae91 2d838d8ba9 Author: QMK Bot Date: Mon Jun 12 19:08:59 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 2d838d8ba9acb98f93cf2549e4296399b7d1a7b4 Author: Joe Scotto Date: Mon Jun 12 15:08:13 2023 -0400 [Keyboard] Add ScottoFrog macropad (#21209) commit 84c7aaae916f7d47e16e163631812cf8acde57e2 Merge: f830b53a7a 53f20b197b Author: QMK Bot Date: Mon Jun 12 01:12:57 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 53f20b197bf212fc89d04609dffd698e21e41f4d Author: Alabahuy Date: Mon Jun 12 08:12:19 2023 +0700 [Keyboard] Add orba keyboard (#21132) commit f830b53a7aa5f207786d29acb5a48e7381b6385a Merge: 1fcb9a0228 fdb2851187 Author: QMK Bot Date: Sun Jun 11 07:56:32 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit fdb2851187d13aac270f94c43fbcb76cff84c65e Author: Joe Scotto Date: Sun Jun 11 03:56:20 2023 -0400 [Keyboard] Add ScottoSplit Keyboard (#20945) Co-authored-by: Drashna Jaelre commit 40c3b715697e418f5014b77bb10ff97c8bd5040f Author: flashquark <59234072+flashquark@users.noreply.github.com> Date: Sun Jun 11 03:55:06 2023 -0400 [Keyboard] Add Flashquark Horizon Z (#21055) Co-authored-by: jack <0x6a73@protonmail.com> commit 1fcb9a0228a88abf1c408c827798953d744c9b62 Merge: beaf6505ed 33c93d3a96 Author: QMK Bot Date: Sun Jun 11 07:53:05 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 33c93d3a960cbfc9a423771145f68e8997e0ecd4 Author: Joe Scotto Date: Sun Jun 11 03:52:43 2023 -0400 [Keyboard] Add Scotto34 (PCB Edition) (#21085) Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> commit 1914fbd951ada70259a13b2d35282d299078fa0f Author: Joe Scotto Date: Sun Jun 11 03:52:24 2023 -0400 [Keyboard] Add Scotto9 handwired macropad (#21105) Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> Co-authored-by: Drashna Jaelre commit beaf6505ed67b7f467f6357fc804ce1718991b41 Merge: cf6c92426d bfdfeb6f3f Author: QMK Bot Date: Sun Jun 11 07:51:56 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit bfdfeb6f3fa1a0fc08d75702f6b0fdbcc850063e Author: FanXingStudio <133078117+FanXingStudio@users.noreply.github.com> Date: Sun Jun 11 15:51:17 2023 +0800 [Keyboard] Add kibou/winter (#21161) commit cf6c92426d17b1e74f616e6be07a92c5c6a5c074 Author: Duncan Sutherland Date: Sun Jun 11 08:48:56 2023 +0100 [Keyboard] correct and modernise `dactyl_manuform/6x7` variant (#21176) commit 3444e9656d031bf23d78b0a4ab56d84ed0f10757 Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Sun Jun 11 14:55:03 2023 +0800 Refactor the rain lighting decision operator (#21139) commit 55f226159b2e06265ccb8f2105ef1c95f2f7f005 Merge: c4b116875f 8cd9f07c30 Author: QMK Bot Date: Sun Jun 11 06:27:53 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8cd9f07c305b704a8fd163bd2dbc1891e80c3b18 Author: blindassassin111 <38090555+blindassassin111@users.noreply.github.com> Date: Sun Jun 11 01:27:13 2023 -0500 [Keyboard] Adding OSAv2 Topre PCB (#21080) commit c4b116875f6ac7c73556b8f4438d2ad3af6085e2 Merge: 38edc481d1 dd8b4dce55 Author: QMK Bot Date: Sat Jun 10 23:34:17 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit dd8b4dce55bd1845c69d4472bc3ce6338dcfa278 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat Jun 10 16:33:33 2023 -0700 Atreyu: correct layout data (#21197) commit 38edc481d1ba7f87e2324207c769c0d5f84fa4ca Merge: ea70b361ce 57b23b8d96 Author: QMK Bot Date: Sat Jun 10 20:35:55 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 57b23b8d968695e98e7738ab8f563124b87545fb Author: Allen Choi <37539914+Thunderbird2086@users.noreply.github.com> Date: Sun Jun 11 04:35:15 2023 +0800 [Keymap] thunderbird2086 layer status with RGB lighting/matrix (#21063) commit ea70b361cee7ac8a1aa21daab758cc499db40447 Merge: 0d574cd82e eee9a53a80 Author: QMK Bot Date: Sat Jun 10 15:02:22 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit eee9a53a803dbcd2bc265a082c67afe0324371fc Author: Florent Linguenheld Date: Sat Jun 10 17:01:44 2023 +0200 Up keymap (#20769) flinguenheld keymap aurora sweep commit 0d574cd82e3cb5c3d436935dc579b1072a11d867 Merge: c69bc9d140 08289fc53a Author: QMK Bot Date: Sat Jun 10 14:59:13 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 08289fc53a843a0e62accd715e9e4a29a094add2 Author: Cipulot <40441626+Cipulot@users.noreply.github.com> Date: Sat Jun 10 16:58:36 2023 +0200 EC Alveus (#20840) Cipulot's EC Alveus PR commit c69bc9d1409fa9700bcdc454734ed17e74afd096 Merge: a9a68ff4f1 f35cb924e9 Author: QMK Bot Date: Sat Jun 10 14:57:25 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit f35cb924e9714827789adbea8dd6a8a2ef945177 Author: Tom Barnes Date: Sat Jun 10 15:56:43 2023 +0100 Update newbs docs with some rp2040 stuff (#21186) * Update newbs_building_firmware_configurator.md * Update docs/newbs_flashing.md Co-authored-by: Ryan commit a9a68ff4f1b7c0c3c0cfef30df9f090c9a69147d Merge: b9d78e4828 e01e3fc866 Author: QMK Bot Date: Sat Jun 10 02:17:31 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit e01e3fc866f3d2da37cfdaf5cce5480f9410cc10 Author: Jared Date: Fri Jun 9 19:16:46 2023 -0700 Typo Correction in planck/rev7 readme.md (#21194) Corrected typo explaining encoder requirements. commit b9d78e4828d2db760a37fda37cf18b36381e6e7a Merge: c8e47bea98 a875f7f038 Author: QMK Bot Date: Fri Jun 9 23:49:38 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit a875f7f03803790ac011f08c496d112d0744d1b9 Author: Joe Scotto Date: Fri Jun 9 19:48:55 2023 -0400 [Keyboard] Add ScottoGame Keyboard (#20940) commit c8e47bea98c378f80ba21d14c2c273967c1af050 Merge: c871f6ad45 e3b80b4151 Author: QMK Bot Date: Fri Jun 9 18:35:05 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit e3b80b41512eda41437d5d51fba5c553aee2db32 Author: Ryan Date: Sat Jun 10 04:34:24 2023 +1000 Remove some keymap-level info.jsons (#21191) commit c871f6ad45f809e035f4380979304178b112a7d6 Merge: 4c60ebdbe0 04b7a262e0 Author: QMK Bot Date: Fri Jun 9 14:51:59 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 04b7a262e0f4fded365ff5cd2f366dfb7b044701 Author: Pablo Martínez <58857054+elpekenin@users.noreply.github.com> Date: Fri Jun 9 16:51:17 2023 +0200 Fix typo (#21189) commit 4c60ebdbe0560d40cdcbfde8688cafc6a83c899d Merge: 806b61c2f7 232281946d Author: QMK Bot Date: Fri Jun 9 01:46:47 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 232281946d1baab9db4da3f5f6da210792c4c184 Author: Jack Humbert Date: Thu Jun 8 21:46:09 2023 -0400 Adds Planck Rev 7 & Updates rev6_drop to Matrix Lite Implementation (#21175) * adds planck/rev7 * Remove config.h include Co-authored-by: Drashna Jaelre * convert planck matrices to lite implementation --------- Co-authored-by: Drashna Jaelre commit 806b61c2f71c085de73a93493a6624b5699d63cc Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Fri Jun 9 10:00:22 2023 +1000 [Core] RGB matrix ws2812 update (#21135) * ws2812_update boolean to stop update every single cycle * lint1 Co-authored-by: Joel Challis * lint2 Co-authored-by: Joel Challis * Update quantum/rgb_matrix/rgb_matrix_drivers.c --------- Co-authored-by: Joel Challis commit 760a976993d6e4b72a5dc6fecd72e638c189a835 Merge: f861695e83 a9f677b518 Author: QMK Bot Date: Thu Jun 8 20:08:49 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit a9f677b5186f1b998dd987a4a1a2ae79eb3cf72e Author: Ryan Date: Fri Jun 9 06:08:02 2023 +1000 Slightly refine `g_led_config` parsing (#21170) commit f861695e83ef3b5ed8e1ed0c03741e213d14154c Merge: d1d0925cf9 4c6c387724 Author: QMK Bot Date: Thu Jun 8 09:11:17 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 4c6c387724c5fb17e0cd01784565bedb059fd3ad Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu Jun 8 17:10:30 2023 +0800 Add an emphasis on QMK MSYS terminal (#21168) * Add an emphasis on QMK MSYS terminal Not using MSYS terminal is a frequent user error. This change adds an additional statement to guide users to run the first command in MSYS itself. Edited the same statement for consistency in the other OSes. * Update instructions for the other operating systems commit d1d0925cf998e965ec825fbe35a97fcbbb7e46e3 Author: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Thu Jun 8 11:58:53 2023 +1000 [Core] Optimisation - Add RGB LED colour set check in drivers (#21134) commit 9a6056d09c3bb2d1d26822aceeb8fccfc49700c2 Merge: cc64247ebf d042b92e7a Author: QMK Bot Date: Thu Jun 8 01:47:47 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit d042b92e7a78b0f5c2d39e51826df6417530a487 Author: NortonTech Date: Wed Jun 7 19:47:06 2023 -0600 Add NortonTech handwired keypad (NortonTechPad) (#21148) commit cc64247ebf6c675d50011b89695497098f707aa0 Merge: 90ea9e447a f136171753 Author: QMK Bot Date: Thu Jun 8 01:03:58 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit f136171753dbdf005cf8a75c01ac89772ffd5d8a Author: biuboom-jun <65760331+biuboom-jun@users.noreply.github.com> Date: Thu Jun 8 09:03:17 2023 +0800 add kibou/wendy (#21150) commit 90ea9e447adb16151974c8d29c18bbb140bde9dc Author: dexter93 Date: Thu Jun 8 04:01:45 2023 +0300 Reset `matrix_need_update` properly in eager debouncing algorithms (#21154) The `matrix_need_update` variable needs to be reset to `false` in `transfer_matrix_values()`, otherwise that function continues to be invoked for every scanning loop (forever with `sym_eager_pk` and `sym_eager_pk`, or until some key gets released with `asym_eager_defer_pk`), and the scanning rate gets much lower because of all that useless work. Co-authored-by: Sergey Vlasov commit a059d121fa17026ab55106fd9ee4b4ea8159a183 Merge: 3fa92a4e7e dffbe1e655 Author: QMK Bot Date: Wed Jun 7 23:57:41 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit dffbe1e655dff573547b8b0182ef489dc0d18f28 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 7 16:57:05 2023 -0700 monoflex60: fix LAYOUT_60_iso_tsangan implementation (#21158) commit 3fa92a4e7e0f1021c432ba52b3cbbe1089875d47 Merge: 542749433c 57c5f3e674 Author: QMK Bot Date: Wed Jun 7 23:56:53 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 57c5f3e6743789d8aeb4fb8a45a13e04ff8de31d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed Jun 7 16:55:49 2023 -0700 poker87d: correct layout data (#21159) commit 542749433c4143e7ffdcfbffb2954cec7ee079d8 Merge: fd1e638c28 ae0342c12a Author: QMK Bot Date: Wed Jun 7 23:00:02 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit ae0342c12a1d0a097efb848dd8f4cb726ef2697d Author: Pablo Martínez <58857054+elpekenin@users.noreply.github.com> Date: Thu Jun 8 00:59:13 2023 +0200 [Bugfix] LVGL bindings wrong offset math (#21147) commit fd1e638c28128601725e84eb4739128301ecfb3c Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Thu Jun 8 04:12:49 2023 +0800 Use unsigned integer for mousekey kinetic speed (#21151) commit a02230f6fc71cad91820a4754aae9223a5ccdf20 Merge: ff1d7d287c bb57aa28e5 Author: QMK Bot Date: Tue Jun 6 21:55:10 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit bb57aa28e511f069c7c6403d1582be828e4ac9f7 Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jun 6 14:54:31 2023 -0700 peej/tripel: correct layout data (#21145) Corrects the layout data for all three versions of the Peej Tripel. commit ff1d7d287c001557771f43a936362cebb24317ae Merge: 64eb9852d2 45d060805e Author: QMK Bot Date: Tue Jun 6 21:46:52 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 45d060805ecd53e92955bfaeccb7b135fb38387d Author: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue Jun 6 14:46:15 2023 -0700 xelus/rs108: correct layout data (#21146) commit 64eb9852d20409b1c0b09f57334ef8fe27678d20 Merge: 6c9c9489d2 dd9712c40e Author: QMK Bot Date: Tue Jun 6 07:04:38 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit dd9712c40e91396fb0efbf23360a2025c0a5893e Author: Travis Mick Date: Tue Jun 6 01:03:57 2023 -0600 [Keyboard] Add egg58 (#21021) commit 6c9c9489d27997f6dfc4705939a4edd7b2e949c2 Merge: f61abde116 97014f0722 Author: QMK Bot Date: Tue Jun 6 05:46:59 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 97014f07225a32185231d561b8c0795b50f8484d Author: Joe Scotto Date: Tue Jun 6 01:46:21 2023 -0400 [Keyboard] Add Scotto36 handwired keyboard (#21104) Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com> commit f61abde116f27c231f033b2cf19c0d8a1e8f87e6 Merge: 5b3e41c1ca eaef139fc3 Author: QMK Bot Date: Tue Jun 6 05:43:14 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit eaef139fc30852a2e7f2311c3ab7297e61fb5252 Author: Joe Scotto Date: Tue Jun 6 01:42:27 2023 -0400 [Keyboard] Add Scotto40 handwired keyboard (#21103) commit 5b3e41c1ca53b1ac155c551abadda3956d685412 Merge: b0c483bb87 e1c4b7ce30 Author: QMK Bot Date: Tue Jun 6 05:35:05 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit e1c4b7ce30fde339f0f3c284aa5142bee66a6a4e Author: Joe Scotto Date: Tue Jun 6 01:34:28 2023 -0400 [Keyboard] Add ScottoStarter handwired keyboard (#21101) commit b0c483bb87d78a71e9fe0facfbf0297a3cdffa3b Merge: 4c928b0680 43ce7b0df5 Author: QMK Bot Date: Tue Jun 6 05:18:16 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 43ce7b0df5dca3b0b9d2d87f91a2dea936250d0e Author: Albert Y <76888457+filterpaper@users.noreply.github.com> Date: Tue Jun 6 13:17:39 2023 +0800 [Docs] Highlight keymap name entry (#21138) commit 4c928b068049e3f0444828f5a34c48a0348485ac Merge: c9cf9712aa 9167e66ca7 Author: QMK Bot Date: Tue Jun 6 05:14:31 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 9167e66ca7a8293748df7349493ecc972ac6cb4b Author: FanXingStudio <133078117+FanXingStudio@users.noreply.github.com> Date: Tue Jun 6 13:13:47 2023 +0800 [Keyboard] add kibou/harbour (#21131) commit c9cf9712aaefc2356305cbc731d06f1b1948d8c1 Author: Ryan Date: Tue Jun 6 11:08:04 2023 +1000 Move `RGBLED_SPLIT` to data driven (#21113) Co-authored-by: Joel Challis commit f91ca76c783b10b5edc167efeb0825cf8249e097 Merge: 3617cbde7a 04812e9443 Author: QMK Bot Date: Mon Jun 5 20:43:42 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 04812e944314fb4d894aa9a53a366f32337fc4d6 Author: Jeayo Keh Date: Tue Jun 6 04:43:02 2023 +0800 [Keyboard] Add soda/mango (#21100) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Joel Challis commit 3617cbde7a0b762c3ef59edda2a70e204798ee32 Merge: 83a726c30e 8f108d1bbc Author: QMK Bot Date: Mon Jun 5 20:35:00 2023 +0000 Merge remote-tracking branch 'origin/master' into develop commit 8f108d1bbcdc60434b149cea3adb99b626c01348 Author: Will Hedges <36576135+will-hedges@users.noreply.github.com> Date: Mon Jun 5 15:34:22 2023 -0500 [Keyboard] Upddate bioi/G60BLE to use bluetooth (#21120) Co-authored-by: jack <0x6a73@protonmail.com> --- data/mappings/info_config.hjson | 1 + data/schemas/keyboard.jsonschema | 5 + docs/feature_layers.md | 2 +- docs/feature_rgblight.md | 31 - docs/newbs_building_firmware_configurator.md | 2 + docs/newbs_flashing.md | 4 +- keyboards/25keys/zinc/rev1/post_config.h | 1 - keyboards/25keys/zinc/reva/post_config.h | 1 - .../4pplet/waffling60/rev_d_iso/info.json | 313 ++++- .../rev_d_iso/keymaps/default/keymap.c | 4 +- .../waffling60/rev_d_iso/keymaps/via/keymap.c | 8 +- .../waffling60/rev_d_iso/matrix_diagram.md | 24 + keyboards/akko/5108/5108.c | 162 +++ keyboards/akko/5108/config.h | 54 + .../0xc_pad/0xc_pad.h => akko/5108/halconf.h} | 13 +- keyboards/akko/5108/info.json | 290 +++++ keyboards/akko/5108/keymaps/default/keymap.c | 79 ++ keyboards/akko/5108/keymaps/via/keymap.c | 79 ++ keyboards/akko/5108/keymaps/via/rules.mk | 1 + keyboards/akko/5108/mcuconf.h | 24 + keyboards/akko/5108/readme.md | 20 + keyboards/akko/5108/rules.mk | 2 + keyboards/akko/acr87/acr87.c | 217 ++++ keyboards/akko/acr87/config.h | 53 + keyboards/akko/acr87/halconf.h | 23 + keyboards/akko/acr87/info.json | 294 +++++ keyboards/akko/acr87/keymaps/default/keymap.c | 79 ++ keyboards/akko/acr87/keymaps/via/keymap.c | 79 ++ keyboards/akko/acr87/keymaps/via/rules.mk | 1 + keyboards/akko/acr87/mcuconf.h | 24 + keyboards/akko/acr87/readme.md | 19 + keyboards/akko/acr87/rules.mk | 3 + keyboards/akko/top40/config.h | 52 + keyboards/akko/top40/halconf.h | 23 + keyboards/akko/top40/info.json | 188 +++ keyboards/akko/top40/keymaps/default/keymap.c | 37 + keyboards/akko/top40/keymaps/via/keymap.c | 37 + keyboards/akko/top40/keymaps/via/rules.mk | 1 + keyboards/akko/top40/mcuconf.h | 24 + keyboards/akko/top40/readme.md | 19 + keyboards/akko/top40/rules.mk | 6 + keyboards/akko/top40/top40.c | 125 ++ keyboards/alas/info.json | 90 +- keyboards/alas/matrix_diagram.md | 24 + keyboards/aleblazer/zodiark/config.h | 1 - keyboards/artemis/paragon/hotswap/info.json | 6 + keyboards/artemis/paragon/hotswap/rules.mk | 1 + keyboards/artemis/paragon/info.json | 122 ++ .../artemis/paragon/keymaps/default/keymap.c | 33 + .../artemis/paragon/keymaps/default/rules.mk | 1 + .../artemis/paragon/keymaps/via/keymap.c | 33 + .../artemis/paragon/keymaps/via/rules.mk | 2 + keyboards/artemis/paragon/readme.md | 23 + keyboards/artemis/paragon/soldered/info.json | 6 + keyboards/artemis/paragon/soldered/rules.mk | 1 + keyboards/atreyu/rev1/info.json | 26 +- keyboards/atreyu/rev2/info.json | 28 +- keyboards/avalanche/v2/config.h | 1 - keyboards/avalanche/v3/config.h | 1 - keyboards/avalanche/v4/config.h | 30 +- keyboards/avalanche/v4/info.json | 1 + keyboards/barleycorn_smd/config.h | 1 - keyboards/barleycorn_smd/info.json | 3 + keyboards/bastardkb/tbk/config.h | 1 - keyboards/bluebell/swoop/config.h | 1 - keyboards/butterkeebs/pocketpad/info.json | 34 +- keyboards/cannonkeys/leviatan/info.json | 311 +++++ .../leviatan/keymaps/default/keymap.c | 45 + .../cannonkeys/leviatan/keymaps/iso/keymap.c | 45 + .../leviatan/keymaps/tsangan/keymap.c | 46 + .../cannonkeys/leviatan/keymaps/via/keymap.c | 45 + .../cannonkeys/leviatan/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/leviatan/readme.md | 25 + keyboards/cannonkeys/leviatan/rules.mk | 5 + keyboards/chlx/str_merro60/config.h | 1 - keyboards/cipulot/ec_alveus/1_0_0/config.h | 45 + .../ec_alveus/1_0_0/ec_switch_matrix.c | 183 +++ .../ec_alveus/1_0_0/ec_switch_matrix.h | 36 + keyboards/cipulot/ec_alveus/1_0_0/halconf.h | 21 + keyboards/cipulot/ec_alveus/1_0_0/info.json | 181 +++ .../ec_alveus/1_0_0/keymaps/default/keymap.c | 49 + .../ec_alveus/1_0_0/keymaps/via/config.h | 20 + .../ec_alveus/1_0_0/keymaps/via/keymap.c | 49 + .../ec_alveus/1_0_0/keymaps/via/rules.mk | 3 + .../ec_alveus/1_0_0/keymaps/via/via_apc.c | 156 +++ keyboards/cipulot/ec_alveus/1_0_0/matrix.c | 44 + keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h | 22 + keyboards/cipulot/ec_alveus/1_0_0/readme.md | 27 + keyboards/cipulot/ec_alveus/1_0_0/rules.mk | 3 + keyboards/cipulot/ec_alveus/1_2_0/config.h | 45 + .../ec_alveus/1_2_0/ec_switch_matrix.c | 183 +++ .../ec_alveus/1_2_0/ec_switch_matrix.h | 36 + keyboards/cipulot/ec_alveus/1_2_0/halconf.h | 21 + keyboards/cipulot/ec_alveus/1_2_0/info.json | 255 ++++ .../ec_alveus/1_2_0/keymaps/default/keymap.c | 49 + .../keymap.c | 49 + .../ec_alveus/1_2_0/keymaps/via/config.h | 20 + .../ec_alveus/1_2_0/keymaps/via/keymap.c | 49 + .../ec_alveus/1_2_0/keymaps/via/rules.mk | 3 + .../ec_alveus/1_2_0/keymaps/via/via_apc.c | 156 +++ keyboards/cipulot/ec_alveus/1_2_0/matrix.c | 44 + keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h | 22 + keyboards/cipulot/ec_alveus/1_2_0/readme.md | 27 + keyboards/cipulot/ec_alveus/1_2_0/rules.mk | 3 + keyboards/contender/config.h | 8 - keyboards/contender/info.json | 3 +- .../crkbd/keymaps/thunderbird2086/config.h | 76 +- .../crkbd/keymaps/thunderbird2086/keycodes.h | 5 +- .../crkbd/keymaps/thunderbird2086/keymap.c | 10 + .../keymaps/thunderbird2086/layers_block.h | 4 +- .../keymaps/thunderbird2086/process_records.c | 36 +- .../crkbd/keymaps/thunderbird2086/readme.md | 2 +- keyboards/crkbd/keymaps/thunderbird2086/rgb.c | 61 + .../crkbd/keymaps/thunderbird2086/rules.mk | 1 + keyboards/crkbd/rev1/config.h | 1 - keyboards/custommk/ergostrafer/config.h | 26 + keyboards/custommk/ergostrafer/halconf.h | 30 + keyboards/custommk/ergostrafer/info.json | 83 ++ .../ergostrafer/keymaps/default/keymap.c | 21 + .../ergostrafer/keymaps/default/rules.mk | 1 + .../custommk/ergostrafer/keymaps/via/config.h | 13 + .../custommk/ergostrafer/keymaps/via/keymap.c | 21 + .../custommk/ergostrafer/keymaps/via/rules.mk | 2 + keyboards/custommk/ergostrafer/mcuconf.h | 27 + keyboards/custommk/ergostrafer/readme.md | 27 + keyboards/custommk/ergostrafer/rules.mk | 3 + keyboards/doio/kb30/info.json | 42 +- keyboards/doio/kb30/keymaps/default/keymap.c | 74 +- keyboards/doio/kb30/keymaps/via/keymap.c | 63 +- keyboards/doio/kb30/readme.md | 27 + keyboards/doppelganger/config.h | 1 - keyboards/draculad/config.h | 1 - keyboards/draculad/info.json | 3 + keyboards/drop/thekey/v2/config.h | 5 - keyboards/drop/thekey/v2/info.json | 1 + keyboards/dztech/pluto/info.json | 191 +++ .../dztech/pluto/keymaps/default/keymap.c | 27 + keyboards/dztech/pluto/keymaps/via/keymap.c | 27 + keyboards/dztech/pluto/keymaps/via/rules.mk | 1 + keyboards/dztech/pluto/readme.md | 30 + keyboards/dztech/pluto/rules.mk | 1 + keyboards/ergodox_ez/ergodox_ez.h | 22 - keyboards/fjlabs/swordfish/info.json | 209 ++- .../fjlabs/swordfish/keymaps/default/keymap.c | 24 +- .../fjlabs/swordfish/keymaps/via/keymap.c | 48 +- keyboards/flashquark/horizon_z/config.h | 78 ++ keyboards/flashquark/horizon_z/horizon_z.c | 95 ++ keyboards/flashquark/horizon_z/info.json | 162 +++ .../horizon_z/keymaps/default/keymap.c | 35 + .../flashquark/horizon_z/keymaps/via/keymap.c | 35 + .../flashquark/horizon_z/keymaps/via/rules.mk | 2 + keyboards/flashquark/horizon_z/readme.md | 20 + keyboards/flashquark/horizon_z/rules.mk | 0 keyboards/flxlb/zplit/config.h | 2 - keyboards/flxlb/zplit/info.json | 1 + keyboards/giabalanai/config.h | 22 - keyboards/giabalanai/info.json | 3 +- .../keymaps/default_giabarinaix2/info.json | 146 --- .../keymaps/giabarinaix2led/info.json | 146 --- .../keymaps/via_giabarinaix2/info.json | 146 --- keyboards/halfcliff/config.h | 1 - keyboards/handwired/brain/config.h | 2 - keyboards/handwired/brain/info.json | 1 + .../4x6/keymaps/scheikled/keymap.c | 1 - .../4x6/keymaps/scheikled/rules.mk | 1 + .../handwired/dactyl_manuform/6x7/info.json | 22 +- .../6x7/keymaps/default/keymap.c | 6 +- .../6x7/keymaps/iso-de/keymap.c | 6 +- .../handwired/dactyl_manuform/6x7/rules.mk | 13 - keyboards/handwired/freoduo/config.h | 3 - keyboards/handwired/freoduo/info.json | 1 + keyboards/handwired/macroboard/config.h | 1 - keyboards/handwired/macroboard/info.json | 3 + .../handwired/scottokeebs/scotto9/info.json | 47 + .../scotto9/keymaps/default/keymap.c | 27 + .../handwired/scottokeebs/scotto9/readme.md | 27 + .../handwired/scottokeebs/scotto9/rules.mk | 1 + .../scottokeebs/scottofrog/info.json | 54 + .../scottofrog/keymaps/default/keymap.c | 28 + .../scottokeebs/scottofrog/readme.md | 27 + .../handwired/scottokeebs/scottofrog/rules.mk | 1 + .../scottokeebs/scottogame}/config.h | 7 +- .../scottokeebs/scottogame/info.json | 89 ++ .../scottogame/keymaps/default}/config.h | 11 +- .../scottogame/keymaps/default/keymap.c | 49 + .../scottogame/keymaps/scotto/config.h} | 13 +- .../scottogame/keymaps/scotto/keymap.c | 289 +++++ .../scottogame/keymaps/scotto/rules.mk | 2 + .../scottokeebs/scottogame/readme.md | 27 + .../handwired/scottokeebs/scottogame/rules.mk | 1 + .../scottokeebs/scottogame/scottogame.c | 34 + .../handwired/scottokeebs/scottonum/info.json | 56 + .../scottonum/keymaps/default/keymap.c | 29 + .../handwired/scottokeebs/scottonum/readme.md | 27 + .../handwired/scottokeebs/scottonum/rules.mk | 1 + .../scottokeebs/scottosplit/info.json | 78 ++ .../scottosplit/keymaps/default/config.h | 23 + .../scottosplit/keymaps/default/keymap.c | 45 + .../scottosplit/keymaps/scotto/config.h | 23 + .../scottosplit/keymaps/scotto/keymap.c | 174 +++ .../scottosplit/keymaps/scotto/rules.mk | 1 + .../scottokeebs/scottosplit/readme.md | 27 + .../scottokeebs/scottosplit/rules.mk | 1 + .../5x6_right/elite_c/config.h | 1 - .../tractyl_manuform/5x6_right/f303/config.h | 1 - .../tractyl_manuform/5x6_right/f411/config.h | 1 - .../5x6_right/teensy2pp/config.h | 1 - keyboards/handwired/tsubasa/config.h | 1 - keyboards/helix/rev3_4rows/config.h | 1 - keyboards/helix/rev3_5rows/config.h | 1 - keyboards/hidtech/bastyl/config.h | 1 - keyboards/hidtech/bastyl/info.json | 3 + keyboards/jaykeeb/orba/info.json | 109 ++ .../jaykeeb/orba/keymaps/default/keymap.c | 36 + keyboards/jaykeeb/orba/keymaps/via/keymap.c | 38 + keyboards/jaykeeb/orba/keymaps/via/rules.mk | 1 + keyboards/jaykeeb/orba/readme.md | 27 + keyboards/jaykeeb/orba/rules.mk | 1 + keyboards/jaykeeb/skyline/info.json | 563 ++++++++ .../jaykeeb/skyline/keymaps/default/keymap.c | 37 + .../jaykeeb/skyline/keymaps/via/keymap.c | 37 + .../jaykeeb/skyline/keymaps/via/rules.mk | 1 + keyboards/jaykeeb/skyline/matrix_diagram.md | 21 + keyboards/jaykeeb/skyline/readme.md | 27 + keyboards/jaykeeb/skyline/rules.mk | 1 + keyboards/jian/nsrev2/config.h | 1 - keyboards/jian/nsrev2/info.json | 3 + keyboards/jian/rev1/config.h | 1 - keyboards/jian/rev1/info.json | 3 + keyboards/jian/rev2/config.h | 1 - keyboards/jian/rev2/info.json | 3 + keyboards/jiran/rev2/config.h | 1 - keyboards/jones/v03_1/config.h | 1 - keyboards/jones/v03_1/info.json | 3 + keyboards/kagizaraya/scythe/config.h | 1 - keyboards/kagizaraya/scythe/info.json | 3 + keyboards/kapl/rev1/config.h | 1 - keyboards/keebio/foldkb/rev1/config.h | 1 - keyboards/keebio/foldkb/rev1/info.json | 1 + keyboards/keebio/kbo5000/rev1/config.h | 1 - keyboards/keebio/kbo5000/rev1/info.json | 1 + keyboards/keebio/quefrency/rev2/config.h | 1 - keyboards/keebio/quefrency/rev2/info.json | 1 + keyboards/keebio/quefrency/rev3/config.h | 1 - keyboards/keebio/quefrency/rev3/info.json | 1 + keyboards/keebio/quefrency/rev4/config.h | 1 - keyboards/keebio/quefrency/rev4/info.json | 1 + keyboards/keebio/quefrency/rev5/config.h | 1 - keyboards/keebio/quefrency/rev5/info.json | 1 + .../keebio/sinc/keymaps/default/keymap.c | 3 + keyboards/keebio/sinc/keymaps/iso/keymap.c | 3 + keyboards/keebio/sinc/keymaps/via/keymap.c | 3 + keyboards/keebio/sinc/rev1/config.h | 2 - keyboards/keebio/sinc/rev1/info.json | 1 + keyboards/keebio/sinc/rev2/config.h | 2 - keyboards/keebio/sinc/rev2/info.json | 1 + keyboards/keebio/sinc/rev4/config.h | 72 ++ keyboards/keebio/sinc/rev4/halconf.h | 8 + keyboards/keebio/sinc/rev4/info.json | 1146 +++++++++++++++++ keyboards/keebio/sinc/rev4/mcuconf.h | 9 + keyboards/keebio/sinc/rev4/rules.mk | 1 + keyboards/keycapsss/kimiko/rev1/config.h | 1 - keyboards/kibou/winter/info.json | 119 ++ .../kibou/winter/keymaps/default/keymap.c | 15 + keyboards/kibou/winter/keymaps/via/keymap.c | 15 + keyboards/kibou/winter/keymaps/via/rules.mk | 1 + keyboards/kibou/winter/readme.md | 23 + keyboards/kibou/winter/rules.mk | 1 + keyboards/lily58/glow_enc/config.h | 2 - keyboards/lily58/keymaps/gaston/keymap.c | 5 +- keyboards/lily58/keymaps/gaston/readme.md | 5 +- keyboards/lily58/light/config.h | 1 - keyboards/manta60/config.h | 1 - keyboards/matrix/cain_re/config.h | 1 - keyboards/matrix/cain_re/info.json | 3 + keyboards/mechwild/mokulua/mirrored/config.h | 1 - keyboards/mechwild/mokulua/standard/config.h | 1 - keyboards/merge/um70/config.h | 1 - keyboards/merge/um80/config.h | 1 - keyboards/meson/config.h | 1 - keyboards/mint60/config.h | 1 - keyboards/mint60/info.json | 3 + keyboards/mlego/m60_split/rev1/config.h | 1 - keyboards/mlego/m60_split/rev2/config.h | 1 - keyboards/mode/m75h/config.h | 32 +- keyboards/mode/m75h/halconf.h | 2 - keyboards/mode/m75h/info.json | 2 +- keyboards/mode/m75h/rules.mk | 9 +- keyboards/mode/m75s/config.h | 5 - keyboards/mokey/mokey12x2/info.json | 47 + .../mokey/mokey12x2/keymaps/default/keymap.c | 26 + .../mokey/mokey12x2/keymaps/via/keymap.c | 26 + .../mokey/mokey12x2/keymaps/via/rules.mk | 1 + keyboards/mokey/mokey12x2/readme.md | 23 + keyboards/mokey/mokey12x2/rules.mk | 1 + keyboards/moonlander/moonlander.h | 31 - keyboards/neito/config.h | 1 - keyboards/neito/info.json | 3 +- keyboards/nullbitsco/snap/config.h | 3 +- keyboards/nullbitsco/snap/info.json | 1 + keyboards/obosob/arch_36/config.h | 2 - keyboards/obosob/arch_36/info.json | 1 + keyboards/ogre/ergo_single/config.h | 1 - keyboards/ogre/ergo_single/info.json | 3 + keyboards/ogre/ergo_split/config.h | 1 - keyboards/ogre/ergo_split/info.json | 1 + keyboards/om60/config.h | 17 - keyboards/om60/info.json | 3 + keyboards/omkbd/ergodash/mini/config.h | 1 - keyboards/omkbd/ergodash/rev1/config.h | 5 - keyboards/omkbd/ergodash/rev1/info.json | 1 + keyboards/omkbd/runner3680/3x6/config.h | 1 - keyboards/omkbd/runner3680/3x7/config.h | 1 - keyboards/omkbd/runner3680/3x8/config.h | 1 - keyboards/omkbd/runner3680/4x6/config.h | 1 - keyboards/omkbd/runner3680/4x7/config.h | 1 - keyboards/omkbd/runner3680/4x8/config.h | 1 - keyboards/omkbd/runner3680/5x6/config.h | 1 - keyboards/omkbd/runner3680/5x6_5x8/config.h | 1 - keyboards/omkbd/runner3680/5x7/config.h | 1 - keyboards/omkbd/runner3680/5x8/config.h | 1 - keyboards/planck/rev7/readme.md | 4 +- keyboards/rainkeebs/trailmix/info.json | 96 ++ .../trailmix/keymaps/default/keymap.c | 66 + .../trailmix/keymaps/default/rules.mk | 1 + keyboards/rainkeebs/trailmix/readme.md | 28 + keyboards/rainkeebs/trailmix/rules.mk | 1 + keyboards/rainkeebs/trailmix/trailmix.c | 91 ++ keyboards/rate/pistachio/rev1/config.h | 1 - keyboards/rate/pistachio/rev2/config.h | 1 - keyboards/redox/rev1/config.h | 2 - keyboards/redox/rev1/info.json | 3 + keyboards/rura66/rev1/config.h | 1 - keyboards/s_ol/0xc_pad/0xc_pad.c | 2 +- keyboards/salicylic_acid3/7skb/rev1/config.h | 1 - keyboards/salicylic_acid3/7splus/config.h | 1 - keyboards/salicylic_acid3/ergoarrows/config.h | 1 - .../salicylic_acid3/jisplit89/rev1/config.h | 1 - .../salicylic_acid3/naked64/rev1/config.h | 1 - .../salicylic_acid3/naked64/rev1/info.json | 3 + keyboards/salicylic_acid3/nknl7en/config.h | 1 - keyboards/salicylic_acid3/nknl7jp/config.h | 1 - keyboards/scottokeebs/scotto34/info.json | 75 ++ .../scotto34/keymaps/default/config.h | 23 + .../scotto34/keymaps/default/keymap.c | 45 + .../scotto34/keymaps/scotto/config.h | 23 + .../scotto34/keymaps/scotto/keymap.c | 246 ++++ .../scotto34/keymaps/scotto/rules.mk | 1 + keyboards/scottokeebs/scotto34/readme.md | 29 + keyboards/scottokeebs/scotto34/rules.mk | 1 + keyboards/sets3n/kk980/config.h | 8 - keyboards/silverbullet44/config.h | 3 - keyboards/silverbullet44/info.json | 1 + keyboards/sofle/keyhive/config.h | 26 - keyboards/sofle/keyhive/info.json | 1 + .../sweep/keymaps/flinguenheld/.clang-format | 1 + .../sweep/keymaps/flinguenheld/config.h | 11 +- .../flinguenheld/features/auto_shift.c | 639 ++++++--- .../keymaps/flinguenheld/features/combo.c | 435 +++---- .../keymaps/flinguenheld/features/leader.c | 436 +++---- .../sweep/keymaps/flinguenheld/keycodes.h | 63 +- .../sweep/keymaps/flinguenheld/keymap.c | 44 +- .../keymaps/flinguenheld/oled/glcdfont.c | 304 ++--- .../sweep/keymaps/flinguenheld/oled/oled.c | 885 ++++++------- .../sweep/keymaps/flinguenheld/readme.md | 155 +-- .../sweep/keymaps/flinguenheld/rules.mk | 5 +- keyboards/star75/config.h | 1 - keyboards/taleguers/taleguers75/config.h | 1 - keyboards/taleguers/taleguers75/info.json | 3 + keyboards/toffee_studio/blueberry/config.h | 9 - keyboards/toffee_studio/blueberry/info.json | 3 +- keyboards/unison/v04/config.h | 1 - keyboards/unison/v04/info.json | 3 + keyboards/viktus/osav2_numpad_topre/ec.c | 181 +++ keyboards/viktus/osav2_numpad_topre/ec.h | 31 + keyboards/viktus/osav2_numpad_topre/info.json | 100 ++ .../keymaps/default/keymap.c | 27 + .../osav2_numpad_topre/keymaps/via/keymap.c | 27 + .../osav2_numpad_topre/keymaps/via/rules.mk | 1 + .../osav2_numpad_topre/osav2_numpad_topre.c | 49 + keyboards/viktus/osav2_numpad_topre/readme.md | 27 + keyboards/viktus/osav2_numpad_topre/rules.mk | 3 + keyboards/viktus/osav2_topre/ec.c | 205 +++ keyboards/viktus/osav2_topre/ec.h | 31 + keyboards/viktus/osav2_topre/info.json | 588 +++++++++ .../osav2_topre/keymaps/default/keymap.c | 34 + .../viktus/osav2_topre/keymaps/via/keymap.c | 34 + .../viktus/osav2_topre/keymaps/via/rules.mk | 1 + keyboards/viktus/osav2_topre/osav2_topre.c | 49 + keyboards/viktus/osav2_topre/readme.md | 25 + keyboards/viktus/osav2_topre/rules.mk | 3 + keyboards/viktus/sp_mini/config.h | 1 - keyboards/yoichiro/lunakey_mini/config.h | 3 - keyboards/yoichiro/lunakey_mini/info.json | 1 + keyboards/yoichiro/lunakey_pico/config.h | 3 - keyboards/yoichiro/lunakey_pico/info.json | 1 + keyboards/yushakobo/navpad/10/rev1/info.json | 3 + .../yushakobo/navpad/10_helix_r/config.h | 8 - .../yushakobo/navpad/10_helix_r/info.json | 1 + keyboards/yushakobo/quick17/config.h | 5 - keyboards/yushakobo/quick17/info.json | 3 +- quantum/dynamic_keymap.c | 15 +- .../rgb_matrix/animations/pixel_rain_anim.h | 10 +- 403 files changed, 13846 insertions(+), 2720 deletions(-) create mode 100644 keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md create mode 100644 keyboards/akko/5108/5108.c create mode 100644 keyboards/akko/5108/config.h rename keyboards/{s_ol/0xc_pad/0xc_pad.h => akko/5108/halconf.h} (63%) create mode 100644 keyboards/akko/5108/info.json create mode 100644 keyboards/akko/5108/keymaps/default/keymap.c create mode 100644 keyboards/akko/5108/keymaps/via/keymap.c create mode 100644 keyboards/akko/5108/keymaps/via/rules.mk create mode 100644 keyboards/akko/5108/mcuconf.h create mode 100644 keyboards/akko/5108/readme.md create mode 100644 keyboards/akko/5108/rules.mk create mode 100644 keyboards/akko/acr87/acr87.c create mode 100644 keyboards/akko/acr87/config.h create mode 100644 keyboards/akko/acr87/halconf.h create mode 100644 keyboards/akko/acr87/info.json create mode 100644 keyboards/akko/acr87/keymaps/default/keymap.c create mode 100644 keyboards/akko/acr87/keymaps/via/keymap.c create mode 100644 keyboards/akko/acr87/keymaps/via/rules.mk create mode 100644 keyboards/akko/acr87/mcuconf.h create mode 100644 keyboards/akko/acr87/readme.md create mode 100644 keyboards/akko/acr87/rules.mk create mode 100644 keyboards/akko/top40/config.h create mode 100644 keyboards/akko/top40/halconf.h create mode 100644 keyboards/akko/top40/info.json create mode 100644 keyboards/akko/top40/keymaps/default/keymap.c create mode 100644 keyboards/akko/top40/keymaps/via/keymap.c create mode 100644 keyboards/akko/top40/keymaps/via/rules.mk create mode 100644 keyboards/akko/top40/mcuconf.h create mode 100644 keyboards/akko/top40/readme.md create mode 100644 keyboards/akko/top40/rules.mk create mode 100644 keyboards/akko/top40/top40.c create mode 100644 keyboards/alas/matrix_diagram.md create mode 100644 keyboards/artemis/paragon/hotswap/info.json create mode 100644 keyboards/artemis/paragon/hotswap/rules.mk create mode 100644 keyboards/artemis/paragon/info.json create mode 100644 keyboards/artemis/paragon/keymaps/default/keymap.c create mode 100644 keyboards/artemis/paragon/keymaps/default/rules.mk create mode 100644 keyboards/artemis/paragon/keymaps/via/keymap.c create mode 100644 keyboards/artemis/paragon/keymaps/via/rules.mk create mode 100644 keyboards/artemis/paragon/readme.md create mode 100644 keyboards/artemis/paragon/soldered/info.json create mode 100644 keyboards/artemis/paragon/soldered/rules.mk create mode 100644 keyboards/cannonkeys/leviatan/info.json create mode 100644 keyboards/cannonkeys/leviatan/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c create mode 100644 keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c create mode 100644 keyboards/cannonkeys/leviatan/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/leviatan/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/leviatan/readme.md create mode 100644 keyboards/cannonkeys/leviatan/rules.mk create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/config.h create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/halconf.h create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/info.json create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/matrix.c create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/readme.md create mode 100644 keyboards/cipulot/ec_alveus/1_0_0/rules.mk create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/config.h create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/halconf.h create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/info.json create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/matrix.c create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/readme.md create mode 100644 keyboards/cipulot/ec_alveus/1_2_0/rules.mk create mode 100644 keyboards/crkbd/keymaps/thunderbird2086/rgb.c create mode 100644 keyboards/custommk/ergostrafer/config.h create mode 100644 keyboards/custommk/ergostrafer/halconf.h create mode 100644 keyboards/custommk/ergostrafer/info.json create mode 100644 keyboards/custommk/ergostrafer/keymaps/default/keymap.c create mode 100644 keyboards/custommk/ergostrafer/keymaps/default/rules.mk create mode 100644 keyboards/custommk/ergostrafer/keymaps/via/config.h create mode 100644 keyboards/custommk/ergostrafer/keymaps/via/keymap.c create mode 100644 keyboards/custommk/ergostrafer/keymaps/via/rules.mk create mode 100644 keyboards/custommk/ergostrafer/mcuconf.h create mode 100644 keyboards/custommk/ergostrafer/readme.md create mode 100644 keyboards/custommk/ergostrafer/rules.mk create mode 100644 keyboards/doio/kb30/readme.md delete mode 100644 keyboards/drop/thekey/v2/config.h create mode 100644 keyboards/dztech/pluto/info.json create mode 100644 keyboards/dztech/pluto/keymaps/default/keymap.c create mode 100644 keyboards/dztech/pluto/keymaps/via/keymap.c create mode 100644 keyboards/dztech/pluto/keymaps/via/rules.mk create mode 100644 keyboards/dztech/pluto/readme.md create mode 100644 keyboards/dztech/pluto/rules.mk create mode 100755 keyboards/flashquark/horizon_z/config.h create mode 100755 keyboards/flashquark/horizon_z/horizon_z.c create mode 100755 keyboards/flashquark/horizon_z/info.json create mode 100755 keyboards/flashquark/horizon_z/keymaps/default/keymap.c create mode 100755 keyboards/flashquark/horizon_z/keymaps/via/keymap.c create mode 100755 keyboards/flashquark/horizon_z/keymaps/via/rules.mk create mode 100755 keyboards/flashquark/horizon_z/readme.md create mode 100755 keyboards/flashquark/horizon_z/rules.mk delete mode 100644 keyboards/giabalanai/keymaps/default_giabarinaix2/info.json delete mode 100644 keyboards/giabalanai/keymaps/giabarinaix2led/info.json delete mode 100644 keyboards/giabalanai/keymaps/via_giabarinaix2/info.json create mode 100644 keyboards/handwired/scottokeebs/scotto9/info.json create mode 100644 keyboards/handwired/scottokeebs/scotto9/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scotto9/readme.md create mode 100644 keyboards/handwired/scottokeebs/scotto9/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottofrog/info.json create mode 100644 keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottofrog/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottofrog/rules.mk rename keyboards/{yushakobo/navpad/10/rev1 => handwired/scottokeebs/scottogame}/config.h (79%) create mode 100644 keyboards/handwired/scottokeebs/scottogame/info.json rename keyboards/handwired/{dactyl_manuform/6x7 => scottokeebs/scottogame/keymaps/default}/config.h (73%) create mode 100644 keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c rename keyboards/{mode/m75h/m75h.c => handwired/scottokeebs/scottogame/keymaps/scotto/config.h} (73%) create mode 100644 keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottogame/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottogame/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottogame/scottogame.c create mode 100644 keyboards/handwired/scottokeebs/scottonum/info.json create mode 100644 keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottonum/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottonum/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottosplit/info.json create mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h create mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h create mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c create mode 100644 keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk create mode 100644 keyboards/handwired/scottokeebs/scottosplit/readme.md create mode 100644 keyboards/handwired/scottokeebs/scottosplit/rules.mk create mode 100644 keyboards/jaykeeb/orba/info.json create mode 100644 keyboards/jaykeeb/orba/keymaps/default/keymap.c create mode 100644 keyboards/jaykeeb/orba/keymaps/via/keymap.c create mode 100644 keyboards/jaykeeb/orba/keymaps/via/rules.mk create mode 100644 keyboards/jaykeeb/orba/readme.md create mode 100644 keyboards/jaykeeb/orba/rules.mk create mode 100644 keyboards/jaykeeb/skyline/info.json create mode 100644 keyboards/jaykeeb/skyline/keymaps/default/keymap.c create mode 100644 keyboards/jaykeeb/skyline/keymaps/via/keymap.c create mode 100644 keyboards/jaykeeb/skyline/keymaps/via/rules.mk create mode 100644 keyboards/jaykeeb/skyline/matrix_diagram.md create mode 100644 keyboards/jaykeeb/skyline/readme.md create mode 100644 keyboards/jaykeeb/skyline/rules.mk create mode 100644 keyboards/keebio/sinc/rev4/config.h create mode 100644 keyboards/keebio/sinc/rev4/halconf.h create mode 100644 keyboards/keebio/sinc/rev4/info.json create mode 100644 keyboards/keebio/sinc/rev4/mcuconf.h create mode 100644 keyboards/keebio/sinc/rev4/rules.mk create mode 100644 keyboards/kibou/winter/info.json create mode 100644 keyboards/kibou/winter/keymaps/default/keymap.c create mode 100644 keyboards/kibou/winter/keymaps/via/keymap.c create mode 100644 keyboards/kibou/winter/keymaps/via/rules.mk create mode 100644 keyboards/kibou/winter/readme.md create mode 100644 keyboards/kibou/winter/rules.mk create mode 100644 keyboards/mokey/mokey12x2/info.json create mode 100644 keyboards/mokey/mokey12x2/keymaps/default/keymap.c create mode 100644 keyboards/mokey/mokey12x2/keymaps/via/keymap.c create mode 100644 keyboards/mokey/mokey12x2/keymaps/via/rules.mk create mode 100644 keyboards/mokey/mokey12x2/readme.md create mode 100644 keyboards/mokey/mokey12x2/rules.mk create mode 100644 keyboards/rainkeebs/trailmix/info.json create mode 100644 keyboards/rainkeebs/trailmix/keymaps/default/keymap.c create mode 100644 keyboards/rainkeebs/trailmix/keymaps/default/rules.mk create mode 100644 keyboards/rainkeebs/trailmix/readme.md create mode 100644 keyboards/rainkeebs/trailmix/rules.mk create mode 100644 keyboards/rainkeebs/trailmix/trailmix.c create mode 100644 keyboards/scottokeebs/scotto34/info.json create mode 100644 keyboards/scottokeebs/scotto34/keymaps/default/config.h create mode 100644 keyboards/scottokeebs/scotto34/keymaps/default/keymap.c create mode 100644 keyboards/scottokeebs/scotto34/keymaps/scotto/config.h create mode 100644 keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c create mode 100644 keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk create mode 100644 keyboards/scottokeebs/scotto34/readme.md create mode 100644 keyboards/scottokeebs/scotto34/rules.mk create mode 100644 keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format create mode 100644 keyboards/viktus/osav2_numpad_topre/ec.c create mode 100644 keyboards/viktus/osav2_numpad_topre/ec.h create mode 100644 keyboards/viktus/osav2_numpad_topre/info.json create mode 100644 keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c create mode 100644 keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c create mode 100644 keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk create mode 100644 keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c create mode 100644 keyboards/viktus/osav2_numpad_topre/readme.md create mode 100644 keyboards/viktus/osav2_numpad_topre/rules.mk create mode 100644 keyboards/viktus/osav2_topre/ec.c create mode 100644 keyboards/viktus/osav2_topre/ec.h create mode 100644 keyboards/viktus/osav2_topre/info.json create mode 100644 keyboards/viktus/osav2_topre/keymaps/default/keymap.c create mode 100644 keyboards/viktus/osav2_topre/keymaps/via/keymap.c create mode 100644 keyboards/viktus/osav2_topre/keymaps/via/rules.mk create mode 100644 keyboards/viktus/osav2_topre/osav2_topre.c create mode 100644 keyboards/viktus/osav2_topre/readme.md create mode 100644 keyboards/viktus/osav2_topre/rules.mk diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index e53d90da39b3..56d6216c421b 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -117,6 +117,7 @@ "RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"}, "RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"}, "RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"}, + "RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"}, "RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"}, "RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"}, "RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 2eac9136a506..1b799cbc1468 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -490,6 +490,11 @@ } }, "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "led_map": { + "type": "array", + "minItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} + }, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, "pin": { "$ref": "qmk.definitions.v1#/mcu_pin", diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 6456df5d897e..01bd15f85363 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -155,7 +155,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint8_t current_layer = get_highest_layer(layer_state); // Check if we are within the range, if not quit - if (curent_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { + if (current_layer > LAYER_CYCLE_END || current_layer < LAYER_CYCLE_START) { return false; } diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index 5131658ae158..7deda1f8d517 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -524,37 +524,6 @@ By defining `RGBLIGHT_LED_MAP` as in the example below, you can specify the LED ``` simple mapped -For keyboards that use the RGB LEDs as a backlight for each key, you can also define it as in the example below. - -```c -// config.h - -#define RGBLED_NUM 30 - -/* RGB LED Conversion macro from physical array to electric array */ -#define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, \ - L10, L11, L12, L13, L14, L15, \ - L20, L21, L22, L23, L24, L25, \ - L30, L31, L32, L33, L34, L35, \ - L40, L41, L42, L43, L44, L45 ) \ - { \ - L05, L04, L03, L02, L01, L00, \ - L10, L11, L12, L13, L14, L15, \ - L25, L24, L23, L22, L21, L20, \ - L30, L31, L32, L33, L34, L35, \ - L46, L45, L44, L43, L42, L41 \ - } - -/* RGB LED logical order map */ -/* Top->Bottom, Right->Left */ -#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 25, 20, 15, 10, 5, 0, \ - 26, 21, 16, 11, 6, 1, \ - 27, 22, 17, 12, 7, 2, \ - 28, 23, 18, 13, 8, 3, \ - 29, 24, 19, 14, 9, 4 ) - ``` ## Clipping Range diff --git a/docs/newbs_building_firmware_configurator.md b/docs/newbs_building_firmware_configurator.md index eae0cef2c280..20256e5f28fb 100644 --- a/docs/newbs_building_firmware_configurator.md +++ b/docs/newbs_building_firmware_configurator.md @@ -4,6 +4,8 @@ The [QMK Configurator](https://config.qmk.fm) is an online graphical user interface that generates QMK Firmware `.hex` or `.bin` files. +It should be noted that Configurator cannot produce firmwares for keyboards using a different controller than they were designed for, i.e. an RP2040 controller on a board designed for pro micro. You will have to use the command line [converters](https://docs.qmk.fm/#/feature_converters?id=supported-converters) for this. + Watch the [Video Tutorial](https://www.youtube.com/watch?v=-imgglzDMdY). Many people find that is enough information to start programming their own keyboard. The QMK Configurator works best with Chrome or Firefox. diff --git a/docs/newbs_flashing.md b/docs/newbs_flashing.md index 549ffcb2be60..c5ba897e17a2 100644 --- a/docs/newbs_flashing.md +++ b/docs/newbs_flashing.md @@ -15,7 +15,7 @@ Different keyboards have different ways to enter this special mode. If your PCB * Press the physical `RESET` button, usually located on the underside of the PCB * Locate header pins on the PCB labeled `RESET` and `GND`, and short them together while plugging your PCB in -If you've attempted all of the above to no avail, and the main chip on the board says `STM32` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along! +If you've attempted all of the above to no avail, and the main chip on the board says `STM32` or `RP2-B1` on it, this may be a bit more complicated. Generally your best bet is to ask on [Discord](https://discord.gg/Uq7gcHh) for assistance. It's likely some photos of the board will be asked for -- if you can get them ready beforehand it'll help move things along! Otherwise, you should see a message in yellow, similar to this in QMK Toolbox: @@ -31,6 +31,8 @@ The simplest way to flash your keyboard will be with the [QMK Toolbox](https://g However, the Toolbox is currently only available for Windows and macOS. If you're using Linux (or just wish to flash the firmware from the command line), skip to the [Flash your Keyboard from the Command Line](#flash-your-keyboard-from-the-command-line) section. +?> QMK Toolbox is not necessary for flashing [RP2040 devices](https://docs.qmk.fm/#/flashing?id=raspberry-pi-rp2040-uf2). + ### Load the File into QMK Toolbox Begin by opening the QMK Toolbox application. You'll want to locate the firmware file in Finder or Explorer. Your keyboard firmware may be in one of two formats- `.hex` or `.bin`. QMK tries to copy the appropriate one for your keyboard into the root `qmk_firmware` directory. diff --git a/keyboards/25keys/zinc/rev1/post_config.h b/keyboards/25keys/zinc/rev1/post_config.h index 15857d3b0b30..8588d07f025d 100644 --- a/keyboards/25keys/zinc/rev1/post_config.h +++ b/keyboards/25keys/zinc/rev1/post_config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #ifdef RGBLED_CONT #define RGBLED_NUM 60 #define RGBLED_SPLIT { 30, 30 } -// #define RGBLIGHT_LED_MAP {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,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} #else #define RGBLED_NUM 30 #endif diff --git a/keyboards/25keys/zinc/reva/post_config.h b/keyboards/25keys/zinc/reva/post_config.h index 15857d3b0b30..8588d07f025d 100644 --- a/keyboards/25keys/zinc/reva/post_config.h +++ b/keyboards/25keys/zinc/reva/post_config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #ifdef RGBLED_CONT #define RGBLED_NUM 60 #define RGBLED_SPLIT { 30, 30 } -// #define RGBLIGHT_LED_MAP {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,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} #else #define RGBLED_NUM 30 #endif diff --git a/keyboards/4pplet/waffling60/rev_d_iso/info.json b/keyboards/4pplet/waffling60/rev_d_iso/info.json index cab2fa1c0791..fdcf9d0bdee1 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/info.json +++ b/keyboards/4pplet/waffling60/rev_d_iso/info.json @@ -15,8 +15,11 @@ "diode_direction": "COL2ROW", "processor": "STM32F072", "bootloader": "stm32-dfu", + "layout_aliases": { + "LAYOUT": "LAYOUT_all" + }, "layouts": { - "LAYOUT": { + "LAYOUT_all": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, @@ -47,21 +50,21 @@ {"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": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [2, 12], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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}, @@ -88,6 +91,284 @@ {"matrix": [4, 12], "x": 12.5, "y": 4}, {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} ] + }, + "LAYOUT_60_iso_tsangan_split_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": [1, 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, "w": 1.75}, + {"matrix": [3, 13], "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, 6], "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": [1, 13], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "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, 6], "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_wkl_split_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": [1, 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, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_wkl_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": [1, 13], "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, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] } } } diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c index 563c3838d10f..7536b7f3a1a6 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c @@ -18,14 +18,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // main layer -[0] = LAYOUT( +[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_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_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_RCTL), // basic function layer -[1] = LAYOUT( +[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_DEL, 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_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUHS, KC_TRNS, diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c index 18c291226904..b6945a706d81 100644 --- a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c @@ -18,28 +18,28 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // main layer -[0] = LAYOUT( +[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_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_RCTL), // basic function layer -[1] = LAYOUT( +[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_DEL, 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_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), // extra layer for VIA -[2] = LAYOUT( +[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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // extra layer for VIA -[3] = LAYOUT( +[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, diff --git a/keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md new file mode 100644 index 000000000000..781000ec413f --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for 4pplet Waffling60 Rev D ISO + +``` + ┌───────┐ + 2u Backspace │1D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2D │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬───┬─┴───┤ +│40 │41 │42 │44 │46 │48 │4B │4C │4D │ +└─────┴───┴─────┴───────────┴───┴───────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬───────────────────────────────────────┬───┬─────┐ +│40 │41 │46 │4C │4D │ 10u Spacebar +└─────┴───┴───────────────────────────────────────┴───┴─────┘ +``` diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c new file mode 100644 index 000000000000..a14f02bc76e8 --- /dev/null +++ b/keyboards/akko/5108/5108.c @@ -0,0 +1,162 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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 + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + {1, D_11, E_11, F_11}, + {1, D_12, E_12, F_12}, + {1, D_13, E_13, F_13}, + {1, D_14, E_14, F_14}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1 }, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + {1, D_4, E_4, F_4}, + {1, D_5, E_5, F_5}, + {1, D_6, E_6, F_6}, + {1, D_7, E_7, F_7}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + {1, D_8, E_8, F_8}, + {1, D_9, E_9, F_9}, + {1, D_10, E_10, F_10}, + {1, G_7, H_7, I_7}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + {1, G_4, H_4, I_4}, + {1, G_5, H_5, I_5}, + {1, G_6, H_6, I_6}, + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + {1, J_7, K_7, L_7}, + {1, J_8, K_8, L_8}, + {1, J_9, K_9, L_9}, + {1, J_10, K_10, L_10}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + {1, J_5, K_5, L_5}, + {1, J_6, K_6, L_6}, + +}; +#endif + +void keyboard_pre_init_kb(void) { + setPinOutput(LED_WIN_LOCK_PIN); // LED3 Win Lock + writePinLow(LED_WIN_LOCK_PIN); + keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + writePin(LED_WIN_LOCK_PIN, keymap_config.no_gui); + } + return res; +} diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h new file mode 100644 index 000000000000..f56e825e0501 --- /dev/null +++ b/keyboards/akko/5108/config.h @@ -0,0 +1,54 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Use 5 dynamic keymap layers */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + +/* LED Indicators */ +#define LED_WIN_LOCK_PIN C11 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#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 I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 108 + +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.h b/keyboards/akko/5108/halconf.h similarity index 63% rename from keyboards/s_ol/0xc_pad/0xc_pad.h rename to keyboards/akko/5108/halconf.h index 013f4c89dcb9..2f64e65393a5 100644 --- a/keyboards/s_ol/0xc_pad/0xc_pad.h +++ b/keyboards/akko/5108/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 s-ol +/* Copyright (C) 2022 jonylee@hfd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,10 +15,9 @@ */ #pragma once -#include "quantum.h" +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD -#define LED_LAYOUT( \ - \ - k01, k05, k02, k06, k10, k03, k07, k11, k15, k08, k12, k16) \ - \ - { k01, k02, k03, k08, k07, k06, k05, k10, k11, k12, k16, k15, } +#include_next diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json new file mode 100644 index 000000000000..e9e99be69e3f --- /dev/null +++ b/keyboards/akko/5108/info.json @@ -0,0 +1,290 @@ +{ + "keyboard_name": "5108", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x000D", + "device_version": "1.0.3", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": [ "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14"], + "rows": ["B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "indicators": { + "num_lock": "A15", + "caps_lock": "C10" + }, + "rgb_matrix": { + "driver": "IS31FL3733", + "max_brightness": 180, + "animations": { + "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, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 30, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 50, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 70, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 80, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 90, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 100, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 110, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 120, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 130, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 140, "y": 0 }, + { "flags": 4, "matrix": [0, 14], "x": 156, "y": 0 }, + { "flags": 4, "matrix": [0, 15], "x": 166, "y": 0 }, + { "flags": 4, "matrix": [0, 16], "x": 176, "y": 0 }, + { "flags": 4, "matrix": [0, 17], "x": 194, "y": 0 }, + { "flags": 4, "matrix": [0, 18], "x": 204, "y": 0 }, + { "flags": 4, "matrix": [0, 19], "x": 214, "y": 0 }, + { "flags": 4, "matrix": [0, 20], "x": 224, "y": 0 }, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 13 }, + { "flags": 4, "matrix": [1, 1], "x": 10, "y": 13 }, + { "flags": 4, "matrix": [1, 2], "x": 20, "y": 13 }, + { "flags": 4, "matrix": [1, 3], "x": 30, "y": 13 }, + { "flags": 4, "matrix": [1, 4], "x": 40, "y": 13 }, + { "flags": 4, "matrix": [1, 5], "x": 50, "y": 13 }, + { "flags": 4, "matrix": [1, 6], "x": 60, "y": 13 }, + { "flags": 4, "matrix": [1, 7], "x": 70, "y": 13 }, + { "flags": 4, "matrix": [1, 8], "x": 80, "y": 13 }, + { "flags": 4, "matrix": [1, 9], "x": 90, "y": 13 }, + { "flags": 4, "matrix": [1, 10], "x": 100, "y": 13 }, + { "flags": 4, "matrix": [1, 11], "x": 110, "y": 13 }, + { "flags": 4, "matrix": [1, 12], "x": 120, "y": 13 }, + { "flags": 4, "matrix": [1, 13], "x": 140, "y": 13 }, + { "flags": 4, "matrix": [1, 14], "x": 156, "y": 13 }, + { "flags": 4, "matrix": [1, 15], "x": 166, "y": 13 }, + { "flags": 4, "matrix": [1, 16], "x": 176, "y": 13 }, + { "flags": 4, "matrix": [1, 17], "x": 194, "y": 13 }, + { "flags": 4, "matrix": [1, 18], "x": 204, "y": 13 }, + { "flags": 4, "matrix": [1, 19], "x": 214, "y": 13 }, + { "flags": 4, "matrix": [1, 20], "x": 224, "y": 13 }, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26 }, + { "flags": 4, "matrix": [2, 1], "x": 10, "y": 26 }, + { "flags": 4, "matrix": [2, 2], "x": 20, "y": 26 }, + { "flags": 4, "matrix": [2, 3], "x": 30, "y": 26 }, + { "flags": 4, "matrix": [2, 4], "x": 40, "y": 26 }, + { "flags": 4, "matrix": [2, 5], "x": 50, "y": 26 }, + { "flags": 4, "matrix": [2, 6], "x": 60, "y": 26 }, + { "flags": 4, "matrix": [2, 7], "x": 70, "y": 26 }, + { "flags": 4, "matrix": [2, 8], "x": 80, "y": 26 }, + { "flags": 4, "matrix": [2, 9], "x": 90, "y": 26 }, + { "flags": 4, "matrix": [2, 10], "x": 100, "y": 26 }, + { "flags": 4, "matrix": [2, 11], "x": 110, "y": 26 }, + { "flags": 4, "matrix": [2, 12], "x": 128, "y": 26 }, + { "flags": 4, "matrix": [2, 13], "x": 140, "y": 26 }, + { "flags": 4, "matrix": [2, 14], "x": 156, "y": 26 }, + { "flags": 4, "matrix": [2, 15], "x": 166, "y": 26 }, + { "flags": 4, "matrix": [2, 16], "x": 176, "y": 26 }, + { "flags": 4, "matrix": [2, 17], "x": 194, "y": 26 }, + { "flags": 4, "matrix": [2, 18], "x": 204, "y": 26 }, + { "flags": 4, "matrix": [2, 19], "x": 214, "y": 26 }, + { "flags": 4, "matrix": [2, 20], "x": 224, "y": 26 }, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38 }, + { "flags": 4, "matrix": [3, 1], "x": 10, "y": 38 }, + { "flags": 4, "matrix": [3, 2], "x": 20, "y": 38 }, + { "flags": 4, "matrix": [3, 3], "x": 30, "y": 38 }, + { "flags": 4, "matrix": [3, 4], "x": 40, "y": 38 }, + { "flags": 4, "matrix": [3, 5], "x": 50, "y": 38 }, + { "flags": 4, "matrix": [3, 6], "x": 60, "y": 38 }, + { "flags": 4, "matrix": [3, 7], "x": 70, "y": 38 }, + { "flags": 4, "matrix": [3, 8], "x": 80, "y": 38 }, + { "flags": 4, "matrix": [3, 9], "x": 90, "y": 38 }, + { "flags": 4, "matrix": [3, 10], "x": 100, "y": 38 }, + { "flags": 4, "matrix": [3, 11], "x": 110, "y": 38 }, + { "flags": 4, "matrix": [3, 13], "x": 135, "y": 38 }, + { "flags": 4, "matrix": [3, 17], "x": 194, "y": 38 }, + { "flags": 4, "matrix": [3, 18], "x": 204, "y": 38 }, + { "flags": 4, "matrix": [3, 19], "x": 214, "y": 38 }, + + { "flags": 4, "matrix": [4, 0], "x": 5, "y": 51 }, + { "flags": 4, "matrix": [4, 1], "x": 20, "y": 51 }, + { "flags": 4, "matrix": [4, 2], "x": 30, "y": 51 }, + { "flags": 4, "matrix": [4, 3], "x": 40, "y": 51 }, + { "flags": 4, "matrix": [4, 4], "x": 50, "y": 51 }, + { "flags": 4, "matrix": [4, 5], "x": 60, "y": 51 }, + { "flags": 4, "matrix": [4, 6], "x": 70, "y": 51 }, + { "flags": 4, "matrix": [4, 7], "x": 80, "y": 51 }, + { "flags": 4, "matrix": [4, 8], "x": 90, "y": 51 }, + { "flags": 4, "matrix": [4, 9], "x": 100, "y": 51 }, + { "flags": 4, "matrix": [4, 10], "x": 110, "y": 51 }, + { "flags": 4, "matrix": [4, 13], "x": 135, "y": 51 }, + { "flags": 4, "matrix": [4, 15], "x": 166, "y": 51 }, + { "flags": 4, "matrix": [4, 17], "x": 194, "y": 51 }, + { "flags": 4, "matrix": [4, 18], "x": 204, "y": 51 }, + { "flags": 4, "matrix": [4, 19], "x": 214, "y": 51 }, + { "flags": 4, "matrix": [4, 20], "x": 224, "y": 51 }, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [5, 1], "x": 10, "y": 64 }, + { "flags": 4, "matrix": [5, 2], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [5, 5], "x": 60, "y": 64 }, + { "flags": 4, "matrix": [5, 9], "x": 100, "y": 64 }, + { "flags": 4, "matrix": [5, 10], "x": 110, "y": 64 }, + { "flags": 4, "matrix": [5, 11], "x": 130, "y": 64 }, + { "flags": 4, "matrix": [5, 13], "x": 140, "y": 64 }, + { "flags": 4, "matrix": [5, 14], "x": 156, "y": 64 }, + { "flags": 4, "matrix": [5, 15], "x": 166, "y": 64 }, + { "flags": 4, "matrix": [5, 16], "x": 176, "y": 64 }, + { "flags": 4, "matrix": [5, 18], "x": 199, "y": 64 }, + { "flags": 4, "matrix": [5, 19], "x": 214, "y": 64 } + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + { "label": "Cal", "matrix": [0, 17], "x": 18.5, "y": 0 }, + { "label": "Mute", "matrix": [0, 18], "x": 19.5, "y": 0 }, + { "label": "Vold", "matrix": [0, 19], "x": 20.5, "y": 0 }, + { "label": "Volu", "matrix": [0, 20], "x": 21.5, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + { "label": "Num", "matrix": [1, 17], "x": 18.5, "y": 1.25 }, + { "label": "/", "matrix": [1, 18], "x": 19.5, "y": 1.25 }, + { "label": "*", "matrix": [1, 19], "x": 20.5, "y": 1.25 }, + { "label": "-", "matrix": [1, 20], "x": 21.5, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + { "label": "7", "matrix": [2, 17], "x": 18.5, "y": 2.25 }, + { "label": "8", "matrix": [2, 18], "x": 19.5, "y": 2.25 }, + { "label": "9", "matrix": [2, 19], "x": 20.5, "y": 2.25 }, + { "label": "+", "matrix": [2, 20], "x": 21.5, "y": 2.25, "h": 2 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + { "label": "4", "matrix": [3, 17], "x": 18.5, "y": 3.25 }, + { "label": "5", "matrix": [3, 18], "x": 19.5, "y": 3.25 }, + { "label": "6", "matrix": [3, 19], "x": 20.5, "y": 3.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + { "label": "1", "matrix": [4, 17], "x": 18.5, "y": 4.25 }, + { "label": "2", "matrix": [4, 18], "x": 19.5, "y": 4.25 }, + { "label": "3", "matrix": [4, 19], "x": 20.5, "y": 4.25 }, + { "label": "Enter", "matrix": [4, 20], "x": 21.5, "y": 4.25, "h": 2 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 }, + { "label": "0", "matrix": [5, 18], "x": 18.5, "y": 5.25, "w": 2 }, + { "label": ".", "matrix": [5, 19], "x": 20.5, "y": 5.25 } + ] + } + } +} diff --git a/keyboards/akko/5108/keymaps/default/keymap.c b/keyboards/akko/5108/keymaps/default/keymap.c new file mode 100644 index 000000000000..ef92432ff57f --- /dev/null +++ b/keyboards/akko/5108/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/akko/5108/keymaps/via/keymap.c b/keyboards/akko/5108/keymaps/via/keymap.c new file mode 100644 index 000000000000..ef92432ff57f --- /dev/null +++ b/keyboards/akko/5108/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______,_______,_______,_______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D, _______, _______), + + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______,_______,_______,_______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI, _______, _______) +}; +// clang-format on diff --git a/keyboards/akko/5108/keymaps/via/rules.mk b/keyboards/akko/5108/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/akko/5108/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/akko/5108/mcuconf.h b/keyboards/akko/5108/mcuconf.h new file mode 100644 index 000000000000..0d16f4f04e46 --- /dev/null +++ b/keyboards/akko/5108/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/akko/5108/readme.md b/keyboards/akko/5108/readme.md new file mode 100644 index 000000000000..c7140deb5c7a --- /dev/null +++ b/keyboards/akko/5108/readme.md @@ -0,0 +1,20 @@ +# 5108 + +A customizable 100% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: Akko 5108 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/5108:default + +Flashing example for this keyboard: + + make akko/5108:default:flash + +## Bootloader +**Reset Key**: Hold down the key located at *K000*, which 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/akko/5108/rules.mk b/keyboards/akko/5108/rules.mk new file mode 100644 index 000000000000..24d5f6f52ecc --- /dev/null +++ b/keyboards/akko/5108/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash diff --git a/keyboards/akko/acr87/acr87.c b/keyboards/akko/acr87/acr87.c new file mode 100644 index 000000000000..e175e21368ef --- /dev/null +++ b/keyboards/akko/acr87/acr87.c @@ -0,0 +1,217 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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 + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + /*row0*/ + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, A_4, B_4, C_4}, + {1, A_5, B_5, C_5}, + {1, A_6, B_6, C_6}, + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, A_9, B_9, C_9}, + {1, A_10, B_10, C_10}, + {1, A_11, B_11, C_11}, + {1, A_12, B_12, C_12}, + {1, A_13, B_13, C_13}, + {1, A_14, B_14, C_14}, + {1, A_15, B_15, C_15}, + {1, A_16, B_16, C_16}, + + /*row1*/ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + {0, A_13, B_13, C_13}, + {0, A_14, B_14, C_14}, + {1, D_1, E_1, F_1}, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + + /*row2*/ + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + {0, D_13, E_13, F_13}, + {0, D_14, E_14, F_14}, + {1, G_1, H_1, I_1}, + {1, G_2, H_2, I_2}, + {1, G_3, H_3, I_3}, + + /*row3*/ + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + {0, G_13, H_13, I_13}, + + /*row4*/ + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_4, K_4, L_4}, + {0, J_5, K_5, L_5}, + {0, J_6, K_6, L_6}, + {0, J_7, K_7, L_7}, + {0, J_8, K_8, L_8}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + {1, J_4, K_4, L_4}, + + /*row5*/ + {0, J_13, K_13, L_13}, + {0, J_14, K_14, L_14}, + {0, J_15, K_15, L_15}, + {0, J_16, K_16, L_16}, + {0, G_14, H_14, I_14}, + {0, G_15, H_15, I_15}, + {0, G_16, H_16, I_16}, + {0, D_15, E_15, F_15}, + {1, J_1, K_1, L_1}, + {1, J_2, K_2, L_2}, + {1, J_3, K_3, L_3}, + + {2, J_12, K_12, L_12}, + {2, J_11, K_11, L_11}, + {2, J_10, K_10, L_10}, + {2, J_9, K_9, L_9}, + {2, J_8, K_8, L_8}, + {2, J_7, K_7, L_7}, + {2, J_6, K_6, L_6}, + {2, J_5, K_5, L_5}, + {2, J_4, K_4, L_4}, + {2, J_3, K_3, L_3}, + {2, J_2, K_2, L_2}, + {2, J_1, K_1, L_1}, + {2, G_12, H_12, I_12}, + {2, G_11, H_11, I_11}, + {2, G_10, H_10, I_10}, + {2, G_9, H_9, I_9}, + + {2, A_1, B_1, C_1}, + {2, G_8, H_8, I_8}, + + {2, A_2, B_2, C_2}, + {2, G_7, H_7, I_7}, + + {2, A_3, B_3, C_3}, + {2, G_6, H_6, I_6}, + + {2, A_4, B_4, C_4}, + {2, G_5, H_5, I_5}, + + {2, A_5, B_5, C_5}, + {2, G_4, H_4, I_4}, + + {2, A_6, B_6, C_6}, + {2, G_3, H_3, I_3}, + + {2, A_7, B_7, C_7}, + {2, G_2, H_2, I_2}, + + {2, A_8, B_8, C_8}, + {2, A_9, B_9, C_9}, + {2, A_10, B_10, C_10}, + {2, A_11, B_11, C_11}, + {2, A_12, B_12, C_12}, + {2, D_1, E_1, F_1}, + {2, D_2, E_2, F_2}, + {2, D_3, E_3, F_3}, + {2, D_4, E_4, F_4}, + {2, D_5, E_5, F_5}, + {2, D_6, E_6, F_6}, + {2, D_7, E_7, F_7}, + {2, D_8, E_8, F_8}, + {2, D_9, E_9, F_9}, + {2, D_10, E_10, F_10}, + {2, D_11, E_11, F_11}, + {2, D_12, E_12, F_12}, + {2, G_1, H_1, I_1}, +}; + +// clang-format on +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(50, 255, 255, 255); + } + else + { + if (!rgb_matrix_get_flags()) + { + RGB_MATRIX_INDICATOR_SET_COLOR(50, 0, 0, 0); + } + } + if (keymap_config.no_gui) + { + RGB_MATRIX_INDICATOR_SET_COLOR(77, 255, 255, 255); + } + else + { + if (!rgb_matrix_get_flags()) + { + RGB_MATRIX_INDICATOR_SET_COLOR(77, 0, 0, 0); + } + } + + return true; +} + +#endif diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h new file mode 100644 index 000000000000..221cad86ad1c --- /dev/null +++ b/keyboards/akko/acr87/config.h @@ -0,0 +1,53 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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 */ +#define LOCKING_RESYNC_ENABLE + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#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 I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 135 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_TRIGGER_ON_KEYDOWN +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES diff --git a/keyboards/akko/acr87/halconf.h b/keyboards/akko/acr87/halconf.h new file mode 100644 index 000000000000..2f64e65393a5 --- /dev/null +++ b/keyboards/akko/acr87/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json new file mode 100644 index 000000000000..bcc6b23cb003 --- /dev/null +++ b/keyboards/akko/acr87/info.json @@ -0,0 +1,294 @@ +{ + "keyboard_name": "ACR87", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x0010", + "device_version": "1.0.1", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": [ "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4", "C5", "B0", "B1", "B2", "B10"], + "rows": [ "B15", "C6", "C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "driver": "IS31FL3733", + "max_brightness": 180, + "animations": { + "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, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 0}, + { "flags": 4, "matrix": [0, 2], "x": 38, "y": 0}, + { "flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, + { "flags": 4, "matrix": [0, 4], "x": 66, "y": 0}, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 0}, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 0}, + { "flags": 4, "matrix": [0, 7], "x":110, "y": 0}, + { "flags": 4, "matrix": [0, 8], "x":124, "y": 0}, + { "flags": 4, "matrix": [0, 9], "x":140, "y": 0}, + { "flags": 4, "matrix": [0, 10], "x":154, "y": 0}, + { "flags": 4, "matrix": [0, 11], "x":168, "y": 0}, + { "flags": 4, "matrix": [0, 12], "x":182, "y": 0}, + { "flags": 4, "matrix": [0, 14], "x":196, "y": 0}, + { "flags": 4, "matrix": [0, 15], "x":210, "y": 0}, + { "flags": 4, "matrix": [0, 16], "x":224, "y": 0}, + + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + { "flags": 4, "matrix": [1, 1], "x": 13, "y": 12}, + { "flags": 4, "matrix": [1, 2], "x": 26, "y": 12}, + { "flags": 4, "matrix": [1, 3], "x": 39, "y": 12}, + { "flags": 4, "matrix": [1, 4], "x": 52, "y": 12}, + { "flags": 4, "matrix": [1, 5], "x": 65, "y": 12}, + { "flags": 4, "matrix": [1, 6], "x": 79, "y": 12}, + { "flags": 4, "matrix": [1, 7], "x": 92, "y": 12}, + { "flags": 4, "matrix": [1, 8], "x":105, "y": 12}, + { "flags": 4, "matrix": [1, 9], "x":118, "y": 12}, + { "flags": 4, "matrix": [1, 10], "x":131, "y": 12}, + { "flags": 4, "matrix": [1, 11], "x":144, "y": 12}, + { "flags": 4, "matrix": [1, 12], "x":158, "y": 12}, + { "flags": 4, "matrix": [1, 13], "x":171, "y": 12}, + { "flags": 4, "matrix": [1, 14], "x":184, "y": 12}, + { "flags": 4, "matrix": [1, 15], "x":197, "y": 12}, + { "flags": 4, "matrix": [1, 16], "x":210, "y": 12}, + + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 26}, + { "flags": 4, "matrix": [2, 1], "x": 14, "y": 26}, + { "flags": 4, "matrix": [2, 2], "x": 28, "y": 26}, + { "flags": 4, "matrix": [2, 3], "x": 42, "y": 26}, + { "flags": 4, "matrix": [2, 4], "x": 56, "y": 26}, + { "flags": 4, "matrix": [2, 5], "x": 70, "y": 26}, + { "flags": 4, "matrix": [2, 6], "x": 84, "y": 26}, + { "flags": 4, "matrix": [2, 7], "x": 98, "y": 26}, + { "flags": 4, "matrix": [2, 8], "x":112, "y": 26}, + { "flags": 4, "matrix": [2, 9], "x":126, "y": 26}, + { "flags": 4, "matrix": [2, 10], "x":140, "y": 26}, + { "flags": 4, "matrix": [2, 11], "x":154, "y": 26}, + { "flags": 4, "matrix": [2, 12], "x":168, "y": 26}, + { "flags": 4, "matrix": [2, 13], "x":182, "y": 26}, + { "flags": 4, "matrix": [2, 14], "x":196, "y": 26}, + { "flags": 4, "matrix": [2, 15], "x":210, "y": 26}, + { "flags": 4, "matrix": [2, 16], "x":224, "y": 26}, + + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + { "flags": 4, "matrix": [3, 1], "x": 14, "y": 38}, + { "flags": 4, "matrix": [3, 2], "x": 28, "y": 38}, + { "flags": 4, "matrix": [3, 3], "x": 42, "y": 38}, + { "flags": 4, "matrix": [3, 4], "x": 56, "y": 38}, + { "flags": 4, "matrix": [3, 5], "x": 70, "y": 38}, + { "flags": 4, "matrix": [3, 6], "x": 84, "y": 38}, + { "flags": 4, "matrix": [3, 7], "x": 98, "y": 38}, + { "flags": 4, "matrix": [3, 8], "x":112, "y": 38}, + { "flags": 4, "matrix": [3, 9], "x":126, "y": 38}, + { "flags": 4, "matrix": [3, 10], "x":140, "y": 38}, + { "flags": 4, "matrix": [3, 11], "x":154, "y": 38}, + { "flags": 4, "matrix": [3, 13], "x":182, "y": 38}, + + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + { "flags": 4, "matrix": [4, 1], "x": 14, "y": 51}, + { "flags": 4, "matrix": [4, 2], "x": 28, "y": 51}, + { "flags": 4, "matrix": [4, 3], "x": 42, "y": 51}, + { "flags": 4, "matrix": [4, 4], "x": 56, "y": 51}, + { "flags": 4, "matrix": [4, 5], "x": 70, "y": 51}, + { "flags": 4, "matrix": [4, 6], "x": 84, "y": 51}, + { "flags": 4, "matrix": [4, 7], "x": 98, "y": 51}, + { "flags": 4, "matrix": [4, 8], "x":112, "y": 51}, + { "flags": 4, "matrix": [4, 9], "x":126, "y": 51}, + { "flags": 4, "matrix": [4, 10], "x":140, "y": 51}, + { "flags": 4, "matrix": [4, 13], "x":154, "y": 51}, + { "flags": 4, "matrix": [4, 15], "x":182, "y": 51}, + + { "flags": 4, "matrix": [5, 0], "x": 0, "y": 64}, + { "flags": 4, "matrix": [5, 1], "x": 14, "y": 64}, + { "flags": 4, "matrix": [5, 2], "x": 28, "y": 64}, + { "flags": 4, "matrix": [5, 5], "x": 70, "y": 64}, + { "flags": 4, "matrix": [5, 9], "x":126, "y": 64}, + { "flags": 4, "matrix": [5, 10], "x":140, "y": 64}, + { "flags": 4, "matrix": [5, 11], "x":154, "y": 64}, + { "flags": 4, "matrix": [5, 13], "x":182, "y": 64}, + { "flags": 4, "matrix": [5, 14], "x":196, "y": 64}, + { "flags": 4, "matrix": [5, 15], "x":210, "y": 64}, + { "flags": 4, "matrix": [5, 16], "x":224, "y": 64}, + + {"flags": 2, "x":13, "y":0}, + {"flags": 2, "x":24, "y":0}, + {"flags": 2, "x":38, "y":0}, + {"flags": 2, "x":52, "y":0}, + {"flags": 2, "x":66, "y":0}, + {"flags": 2, "x":82, "y":0}, + {"flags": 2, "x":96, "y":0}, + {"flags": 2, "x":110, "y":0}, + {"flags": 2, "x":124, "y":0}, + {"flags": 2, "x":140, "y":0}, + {"flags": 2, "x":154, "y":0}, + {"flags": 2, "x":168, "y":0}, + {"flags": 2, "x":182, "y":0}, + {"flags": 2, "x":196, "y":0}, + {"flags": 2, "x":210, "y":0}, + {"flags": 2, "x":224, "y":0}, + {"flags": 2, "x":0, "y":8}, + {"flags": 2, "x":224, "y":8}, + {"flags": 2, "x":0, "y":16}, + {"flags": 2, "x":224, "y":16}, + {"flags": 2, "x":0, "y":24}, + {"flags": 2, "x":224, "y":24}, + {"flags": 2, "x":0, "y":32}, + {"flags": 2, "x":224, "y":32}, + {"flags": 2, "x":0, "y":40}, + {"flags": 2, "x":224, "y":40}, + {"flags": 2, "x":0, "y":48}, + {"flags": 2, "x":224, "y":48}, + {"flags": 2, "x":0, "y":56}, + {"flags": 2, "x":224, "y":56}, + {"flags": 2, "x":0, "y":64}, + {"flags": 2, "x":13, "y":64}, + {"flags": 2, "x":25, "y":64}, + {"flags": 2, "x":37, "y":64}, + {"flags": 2, "x":49, "y":64}, + {"flags": 2, "x":61, "y":64}, + {"flags": 2, "x":73, "y":64}, + {"flags": 2, "x":85, "y":64}, + {"flags": 2, "x":97, "y":64}, + {"flags": 2, "x":109, "y":64}, + {"flags": 2, "x":121, "y":64}, + {"flags": 2, "x":133, "y":64}, + {"flags": 2, "x":145, "y":64}, + {"flags": 2, "x":157, "y":64}, + {"flags": 2, "x":170, "y":64}, + {"flags": 2, "x":196, "y":64}, + {"flags": 2, "x":210, "y":64}, + {"flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "F1", "matrix": [0, 1], "x": 2, "y": 0 }, + { "label": "F2", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "F3", "matrix": [0, 3], "x": 4, "y": 0 }, + { "label": "F4", "matrix": [0, 4], "x": 5, "y": 0 }, + { "label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0 }, + { "label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0 }, + { "label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0 }, + { "label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0 }, + { "label": "F9", "matrix": [0, 9], "x": 11, "y": 0 }, + { "label": "F10", "matrix": [0, 10], "x": 12, "y": 0 }, + { "label": "F11", "matrix": [0, 11], "x": 13, "y": 0 }, + { "label": "F12", "matrix": [0, 12], "x": 14, "y": 0 }, + { "label": "PrtSc", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "ScrLk", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0 }, + + { "label": "~", "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "label": "!", "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "label": "@", "matrix": [1, 2], "x": 2, "y": 1.25 }, + { "label": "#", "matrix": [1, 3], "x": 3, "y": 1.25 }, + { "label": "$", "matrix": [1, 4], "x": 4, "y": 1.25 }, + { "label": "%", "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "label": "^", "matrix": [1, 6], "x": 6, "y": 1.25 }, + { "label": "&", "matrix": [1, 7], "x": 7, "y": 1.25 }, + { "label": "*", "matrix": [1, 8], "x": 8, "y": 1.25 }, + { "label": "(", "matrix": [1, 9], "x": 9, "y": 1.25 }, + { "label": ")", "matrix": [1, 10], "x": 10, "y": 1.25 }, + { "label": "_", "matrix": [1, 11], "x": 11, "y": 1.25 }, + { "label": "+", "matrix": [1, 12], "x": 12, "y": 1.25 }, + { "label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2 }, + { "label": "Ins", "matrix": [1, 14], "x": 15.25, "y": 1.25 }, + { "label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "matrix": [1, 16], "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25 }, + { "label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25 }, + { "label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25 }, + { "label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25 }, + { "label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25 }, + { "label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25 }, + { "label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25 }, + { "label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25 }, + { "label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25 }, + { "label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25 }, + { "label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.25 }, + { "label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.25 }, + { "label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Del", "matrix": [2, 14], "x": 15.25, "y": 2.25 }, + { "label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "matrix": [2, 16], "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25 }, + { "label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25 }, + { "label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25 }, + { "label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25 }, + { "label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25 }, + { "label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25 }, + { "label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25 }, + { "label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25 }, + { "label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25 }, + { "label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.25 }, + { "label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25 }, + { "label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "label": "?", "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "Up", "matrix": [4, 15], "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "Space", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "Left", "matrix": [5, 14], "x": 15.25, "y": 5.25 }, + { "label": "Down", "matrix": [5, 15], "x": 16.25, "y": 5.25 }, + { "label": "Right", "matrix": [5, 16], "x": 17.25, "y": 5.25 } + + ] + } + } +} diff --git a/keyboards/akko/acr87/keymaps/default/keymap.c b/keyboards/akko/acr87/keymaps/default/keymap.c new file mode 100644 index 000000000000..88bfbc8e1fdc --- /dev/null +++ b/keyboards/akko/acr87/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/acr87/keymaps/via/keymap.c b/keyboards/akko/acr87/keymaps/via/keymap.c new file mode 100644 index 000000000000..88bfbc8e1fdc --- /dev/null +++ b/keyboards/akko/acr87/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +enum __layers { + WIN_B, + WIN_W, + WIN_FN, + MAC_B, + MAC_W, + MAC_FN +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [WIN_B] = LAYOUT( /* Base */ + 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, KC_RGUI, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [WIN_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(WIN_FN), _______, KC_A, KC_S, KC_D), + + + [WIN_FN] = LAYOUT( /* FN */ + _______, KC_MYCM, KC_MAIL, KC_WSCH, KC_WHOM, KC_MSEL, KC_MPLY, KC_MPRV, KC_MNXT, _______,_______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(WIN_W),_______, _______, _______, _______, _______, _______, DF(MAC_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI), + + [MAC_B] = LAYOUT( /* Base */ + KC_ESC, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + [MAC_W] = LAYOUT( /* Base */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_W, + _______, _______, _______, _______, _______, _______, MO(MAC_FN), _______, KC_A, KC_S, KC_D), + [MAC_FN] = LAYOUT( /* FN */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, + _______, _______,TG(MAC_W),_______, _______, _______, _______, _______, _______, DF(WIN_B),_______,_______, _______, RGB_MOD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_HUI, + _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_VAD, RGB_SAI) +}; +// clang-format on diff --git a/keyboards/akko/acr87/keymaps/via/rules.mk b/keyboards/akko/acr87/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/akko/acr87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/akko/acr87/mcuconf.h b/keyboards/akko/acr87/mcuconf.h new file mode 100644 index 000000000000..0d16f4f04e46 --- /dev/null +++ b/keyboards/akko/acr87/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/akko/acr87/readme.md b/keyboards/akko/acr87/readme.md new file mode 100644 index 000000000000..a4f400ce761c --- /dev/null +++ b/keyboards/akko/acr87/readme.md @@ -0,0 +1,19 @@ +# acr87 + +A customizable 80% encoder keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: acr87 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/acr87:default + +Flashing example for this keyboard: + + make akko/acr87:default:flash + +**Reset Key**: Hold down the key located at *K000*, which 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/akko/acr87/rules.mk b/keyboards/akko/acr87/rules.mk new file mode 100644 index 000000000000..0dc7a3314204 --- /dev/null +++ b/keyboards/akko/acr87/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h new file mode 100644 index 000000000000..bd849292e6af --- /dev/null +++ b/keyboards/akko/top40/config.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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 */ +#define LOCKING_RESYNC_ENABLE + +/* SPI Config for spi flash*/ +#define SPI_DRIVER SPIDQ +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 +#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 I2C1_SCL_PAL_MODE 4 +#define I2C1_OPMODE OPMODE_I2C +#define I2C1_CLOCK_SPEED 400000 /* 400000 */ + +#define RGB_MATRIX_LED_COUNT 76 + +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_KEYRELEASES +#define RGB_TRIGGER_ON_KEYDOWN + diff --git a/keyboards/akko/top40/halconf.h b/keyboards/akko/top40/halconf.h new file mode 100644 index 000000000000..2f64e65393a5 --- /dev/null +++ b/keyboards/akko/top40/halconf.h @@ -0,0 +1,23 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#include_next diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json new file mode 100644 index 000000000000..e7b3a5d01ff1 --- /dev/null +++ b/keyboards/akko/top40/info.json @@ -0,0 +1,188 @@ +{ + "keyboard_name": "TOP40", + "manufacturer": "Akko", + "url":"https://www.akkogear.com", + "maintainer": "jonylee@hfd", + "usb": { + "vid": "0xFFFE", + "pid": "0x000E", + "device_version": "1.0.2", + "suspend_wakeup_delay": 400, + "force_nkro": true + }, + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C4"], + "rows": ["C7", "C8", "C9", "A8"] + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "driver": "IS31FL3733", + "max_brightness": 180, + "animations": { + "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, + "raindrops": true, + "typing_heatmap": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "multisplash": true + }, + "layout":[ + { "flags": 4, "matrix": [0, 0], "x": 10, "y":10 }, + { "flags": 4, "matrix": [0, 1], "x": 20, "y":10 }, + { "flags": 4, "matrix": [0, 2], "x": 40, "y":10 }, + { "flags": 4, "matrix": [0, 3], "x": 60, "y":10 }, + { "flags": 4, "matrix": [0, 4], "x": 80, "y":10 }, + { "flags": 4, "matrix": [0, 5], "x":100 , "y":10 }, + { "flags": 4, "matrix": [0, 6], "x":120 , "y":10 }, + { "flags": 4, "matrix": [0, 7], "x":140 , "y":10 }, + { "flags": 4, "matrix": [0, 8], "x":160 , "y":10 }, + { "flags": 4, "matrix": [0, 9], "x":180 , "y":10 }, + { "flags": 4, "matrix": [0, 10], "x":200 , "y":10 }, + { "flags": 4, "matrix": [0, 11], "x":218 , "y":10 }, + + { "flags": 4, "matrix": [1, 0], "x": 10, "y":24 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y":24 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y":24 }, + { "flags": 4, "matrix": [1, 3], "x": 60, "y":24 }, + { "flags": 4, "matrix": [1, 4], "x": 80, "y":24 }, + { "flags": 4, "matrix": [1, 5], "x":100 , "y":24 }, + { "flags": 4, "matrix": [1, 6], "x":120 , "y":24 }, + { "flags": 4, "matrix": [1, 7], "x":140 , "y":24 }, + { "flags": 4, "matrix": [1, 8], "x":160 , "y":24 }, + { "flags": 4, "matrix": [1, 9], "x":180 , "y":24 }, + { "flags": 4, "matrix": [1, 10], "x":200 , "y":24 }, + { "flags": 4, "matrix": [1, 11], "x":218 , "y":24 }, + + { "flags": 4, "matrix": [2, 0], "x": 10, "y":39 }, + { "flags": 4, "matrix": [2, 1], "x": 20, "y":39 }, + { "flags": 4, "matrix": [2, 2], "x": 40, "y":39 }, + { "flags": 4, "matrix": [2, 3], "x": 60, "y":39 }, + { "flags": 4, "matrix": [2, 4], "x": 80, "y":39 }, + { "flags": 4, "matrix": [2, 5], "x":100 , "y":39 }, + { "flags": 4, "matrix": [2, 6], "x":120 , "y":39 }, + { "flags": 4, "matrix": [2, 7], "x":140 , "y":39 }, + { "flags": 4, "matrix": [2, 8], "x":160 , "y":39 }, + { "flags": 4, "matrix": [2, 9], "x":180 , "y":39 }, + { "flags": 4, "matrix": [2, 10], "x":200 , "y":39 }, + { "flags": 4, "matrix": [2, 11], "x":218 , "y":39 }, + + { "flags": 4, "matrix": [3, 0], "x": 10, "y":54 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y":54 }, + { "flags": 4, "matrix": [3, 2], "x": 40, "y":54 }, + { "flags": 4, "matrix": [3, 4], "x": 80, "y":54 }, + { "flags": 4, "matrix": [3, 6], "x":120 , "y":54 }, + { "flags": 4, "matrix": [3, 8], "x":160 , "y":54 }, + { "flags": 4, "matrix": [3, 9], "x":180 , "y":54 }, + { "flags": 4, "matrix": [3, 10], "x":200 , "y":54 }, + { "flags": 4, "matrix": [3, 11], "x":218 , "y":54 }, + + {"flags": 2, "x":0, "y":0}, + {"flags": 2, "x":15, "y":0}, + {"flags": 2, "x":25, "y":0}, + {"flags": 2, "x":45, "y":0}, + {"flags": 2, "x":65, "y":0}, + {"flags": 2, "x":85, "y":0}, + {"flags": 2, "x":105, "y":0}, + {"flags": 2, "x":125, "y":0}, + {"flags": 2, "x":145, "y":0}, + {"flags": 2, "x":165, "y":0}, + {"flags": 2, "x":185, "y":0}, + {"flags": 2, "x":205, "y":0}, + {"flags": 2, "x":224, "y":0}, + {"flags": 2, "x":0, "y":16}, + {"flags": 2, "x":224, "y":16}, + {"flags": 2, "x":0, "y":32}, + {"flags": 2, "x":224, "y":32}, + {"flags": 2, "x":0, "y":48}, + {"flags": 2, "x":224, "y":48}, + {"flags": 2, "x":0, "y":64}, + {"flags": 2, "x":15, "y":64}, + {"flags": 2, "x":40, "y":64}, + {"flags": 2, "x":62, "y":64}, + {"flags": 2, "x":80, "y":64}, + {"flags": 2, "x":100, "y":64}, + {"flags": 2, "x":125, "y":64}, + {"flags": 2, "x":145, "y":64}, + {"flags": 2, "x":165, "y":64}, + {"flags": 2, "x":185, "y":64}, + {"flags": 2, "x":205, "y":64}, + {"flags": 2, "x":224, "y":64} + ] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Ese", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "Q", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "W", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "E", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "R", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "T", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "Y", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "U", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "I", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "O", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "P", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "BackSpace", "matrix": [0, 11], "x": 11, "y": 0 , "w": 1.75}, + + { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25 }, + { "label": "A", "matrix": [1, 1], "x": 1.25, "y": 1 }, + { "label": "S", "matrix": [1, 2], "x": 2.25, "y": 1 }, + { "label": "D", "matrix": [1, 3], "x": 3.25, "y": 1 }, + { "label": "F", "matrix": [1, 4], "x": 4.25, "y": 1 }, + { "label": "G", "matrix": [1, 5], "x": 5.25, "y": 1 }, + { "label": "H", "matrix": [1, 6], "x": 6.25, "y": 1 }, + { "label": "J", "matrix": [1, 7], "x": 7.25, "y": 1 }, + { "label": "K", "matrix": [1, 8], "x": 8.25, "y": 1 }, + { "label": "L", "matrix": [1, 9], "x": 9.25, "y": 1 }, + { "label": ":", "matrix": [1, 10], "x": 10.25, "y": 1 }, + { "label": "Enter", "matrix": [1, 11], "x": 11.25, "y": 1, "w": 1.5 }, + + { "label": "Shift", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 }, + { "label": "Z", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "X", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "C", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "V", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "B", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "N", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "M", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "<", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": ">", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "Up", "matrix": [2, 10], "x": 10.75, "y": 2}, + { "label": "Shift", "matrix": [2, 11], "x": 11.75, "y": 2 }, + + { "label": "Ctrl", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 }, + { "label": "Win", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1.25 }, + { "label": "Alt", "matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.25 }, + { "label": "Space", "matrix": [3, 4], "x": 3.75, "y": 3, "w": 6.25 }, + { "label": "Space", "matrix": [3, 6], "x": 6, "y": 3, "w": 2.75 }, + { "label": "Fn", "matrix": [3, 8], "x": 8.75, "y": 3, "w": 1.25 }, + { "label": "Left", "matrix": [3, 9], "x": 9.75, "y": 3 }, + { "label": "Down", "matrix": [3, 10], "x": 10.75, "y": 3 }, + { "label": "Right", "matrix": [3, 11], "x": 11.75, "y": 3 } + ] + } + } +} diff --git a/keyboards/akko/top40/keymaps/default/keymap.c b/keyboards/akko/top40/keymaps/default/keymap.c new file mode 100644 index 000000000000..fb9df1623552 --- /dev/null +++ b/keyboards/akko/top40/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + _Base, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_Base] = LAYOUT( /* Base */ + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT( /* Fn */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) +}; diff --git a/keyboards/akko/top40/keymaps/via/keymap.c b/keyboards/akko/top40/keymaps/via/keymap.c new file mode 100644 index 000000000000..fb9df1623552 --- /dev/null +++ b/keyboards/akko/top40/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright (C) 2023 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +// clang-format off +enum __layers { + _Base, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_Base] = LAYOUT( /* Base */ + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, MO(_FN),KC_LEFT, KC_DOWN, KC_RGHT), + + [_FN] = LAYOUT( /* Fn */ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, RGB_TOG, RGB_MOD, + _______, _______, _______, KC_CALC, _______, AG_TOGG, _______, KC_MUTE, KC_VOLD, KC_VOLU, RGB_VAI, _______, + _______, GU_TOGG, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SAI) +}; diff --git a/keyboards/akko/top40/keymaps/via/rules.mk b/keyboards/akko/top40/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/akko/top40/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/akko/top40/mcuconf.h b/keyboards/akko/top40/mcuconf.h new file mode 100644 index 000000000000..0d16f4f04e46 --- /dev/null +++ b/keyboards/akko/top40/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef WB32_SPI_USE_QSPI +#define WB32_SPI_USE_QSPI TRUE + +#undef WB32_I2C_USE_I2C1 +#define WB32_I2C_USE_I2C1 TRUE diff --git a/keyboards/akko/top40/readme.md b/keyboards/akko/top40/readme.md new file mode 100644 index 000000000000..87a2287b934f --- /dev/null +++ b/keyboards/akko/top40/readme.md @@ -0,0 +1,19 @@ +# top40 + +A customizable 40% keyboard. + +* Keyboard Maintainer: [jonylee@hfd](https://github.com/jonylee1986) +* Hardware Supported: top40 +* Hardware Availability: [akko](https://www.akkogear.com/) + +Make example for this keyboard (after setting up your build environment): + + make akko/top40:default + +Flashing example for this keyboard: + + make akko/top40:default:flash + +**Reset Key**: Hold down the key located at *K01*, which 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/akko/top40/rules.mk b/keyboards/akko/top40/rules.mk new file mode 100644 index 000000000000..b753f0682e56 --- /dev/null +++ b/keyboards/akko/top40/rules.mk @@ -0,0 +1,6 @@ +# Build Options +# change yes to no to disable +# +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c new file mode 100644 index 000000000000..7fe193447dc6 --- /dev/null +++ b/keyboards/akko/top40/top40.c @@ -0,0 +1,125 @@ +/* Copyright (C) 2022 jonylee@hfd + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#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 + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, A_1, B_1, C_1}, + {0, A_2, B_2, C_2}, + {0, A_3, B_3, C_3}, + {0, A_4, B_4, C_4}, + {0, A_5, B_5, C_5}, + {0, A_6, B_6, C_6}, + {0, A_7, B_7, C_7}, + {0, A_8, B_8, C_8}, + {0, A_9, B_9, C_9}, + {0, A_10, B_10, C_10}, + {0, A_11, B_11, C_11}, + {0, A_12, B_12, C_12}, + + {0, D_1, E_1, F_1}, + {0, D_2, E_2, F_2}, + {0, D_3, E_3, F_3}, + {0, D_4, E_4, F_4}, + {0, D_5, E_5, F_5}, + {0, D_6, E_6, F_6}, + {0, D_7, E_7, F_7}, + {0, D_8, E_8, F_8}, + {0, D_9, E_9, F_9}, + {0, D_10, E_10, F_10}, + {0, D_11, E_11, F_11}, + {0, D_12, E_12, F_12}, + + {0, G_1, H_1, I_1}, + {0, G_2, H_2, I_2}, + {0, G_3, H_3, I_3}, + {0, G_4, H_4, I_4}, + {0, G_5, H_5, I_5}, + {0, G_6, H_6, I_6}, + {0, G_7, H_7, I_7}, + {0, G_8, H_8, I_8}, + {0, G_9, H_9, I_9}, + {0, G_10, H_10, I_10}, + {0, G_11, H_11, I_11}, + {0, G_12, H_12, I_12}, + + {0, J_1, K_1, L_1}, + {0, J_2, K_2, L_2}, + {0, J_3, K_3, L_3}, + {0, J_5, K_5, L_5}, + {0, J_7, K_7, L_7}, + {0, J_9, K_9, L_9}, + {0, J_10, K_10, L_10}, + {0, J_11, K_11, L_11}, + {0, J_12, K_12, L_12}, + + {1, A_1, B_1, C_1}, + {1, A_2, B_2, C_2}, + {1, A_3, B_3, C_3}, + {1, J_7, K_7, L_7}, + {1, J_6, K_6, L_6}, + {1, J_5, K_5, L_5}, + {1, J_4, K_4, L_4}, + {1, J_3, K_3, L_3}, + {1, J_2, K_2, L_2}, + {1, J_1, K_1, L_1}, + {1, G_8, H_8, I_8}, + {1, G_7, H_7, I_7}, + {1, G_6, H_6, I_6}, + + {1, A_4, B_4, C_4}, + {1, G_5, H_5, I_5}, + + {1, A_5, B_5, C_5}, + {1, G_4, H_4, I_4}, + + {1, A_6, B_6, C_6}, + {1, G_3, H_3, I_3}, + + {1, A_7, B_7, C_7}, + {1, A_8, B_8, C_8}, + {1, D_1, E_1, F_1}, + {1, D_2, E_2, F_2}, + {1, D_3, E_3, F_3}, + {1, D_4, E_4, F_4}, + {1, D_5, E_5, F_5}, + {1, D_6, E_6, F_6}, + {1, D_7, E_7, F_7}, + {1, D_8, E_8, F_8}, + {1, G_2, H_2, I_2}, + {1, G_1, H_1, I_1}, + +}; + +// clang-format on +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 (keymap_config.no_gui) { + rgb_matrix_set_color(37, 200, 200, 200); + } + return true; +} + +#endif \ No newline at end of file diff --git a/keyboards/alas/info.json b/keyboards/alas/info.json index b3db25d2d815..6c2beff27ebf 100755 --- a/keyboards/alas/info.json +++ b/keyboards/alas/info.json @@ -326,21 +326,21 @@ {"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": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [1, 13], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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": [1, 13], "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}, @@ -397,21 +397,21 @@ {"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": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [1, 13], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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": [1, 13], "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}, @@ -468,21 +468,21 @@ {"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": 13.75, "y": 1, "w": 1.25, "h": 2}, - - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 6.75, "y": 2}, - {"matrix": [2, 8], "x": 7.75, "y": 2}, - {"matrix": [2, 9], "x": 8.75, "y": 2}, - {"matrix": [2, 10], "x": 9.75, "y": 2}, - {"matrix": [2, 11], "x": 10.75, "y": 2}, - {"matrix": [1, 13], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2}, + + {"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": [1, 13], "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}, diff --git a/keyboards/alas/matrix_diagram.md b/keyboards/alas/matrix_diagram.md new file mode 100644 index 000000000000..87e5844f55af --- /dev/null +++ b/keyboards/alas/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Yiancar-Designs Alas + +``` + ┌───────┐ + 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 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift 2.75u RShift │3C │ +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h index 05e593fa260c..c36702bbff77 100644 --- a/keyboards/aleblazer/zodiark/config.h +++ b/keyboards/aleblazer/zodiark/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE #define RGBLED_NUM 68 -#define RGBLIGHT_SPLIT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/artemis/paragon/hotswap/info.json b/keyboards/artemis/paragon/hotswap/info.json new file mode 100644 index 000000000000..c57b49a047d4 --- /dev/null +++ b/keyboards/artemis/paragon/hotswap/info.json @@ -0,0 +1,6 @@ +{ + "matrix_pins": { + "cols": ["F7", "F6", "F5", "F4", "F1", "F0", "C7", "E6", "B0", "B3", "B6", "B5", "B4", "D7", "D4", "D6"], + "rows": ["D2", "D1", "D0", "B2", "B1", "C6"] + } +} diff --git a/keyboards/artemis/paragon/hotswap/rules.mk b/keyboards/artemis/paragon/hotswap/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/artemis/paragon/hotswap/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/artemis/paragon/info.json b/keyboards/artemis/paragon/info.json new file mode 100644 index 000000000000..2a2cf046a85a --- /dev/null +++ b/keyboards/artemis/paragon/info.json @@ -0,0 +1,122 @@ +{ + "manufacturer": "Artemis", + "keyboard_name": "Paragon", + "maintainer": "Sleepdealr", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true + }, + "build": { + "lto": true + }, + "processor": "atmega32u4", + "url": "", + "encoder": { + "rotary": [ + { "pin_a": "D3", "pin_b": "D5" } + ] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x3449", + "vid": "0x8C27" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 2], "x": 1.5, "y": 0 }, + { "matrix": [0, 3], "x": 2.5, "y": 0 }, + { "matrix": [0, 4], "x": 3.5, "y": 0 }, + { "matrix": [0, 5], "x": 4.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.5, "y": 0 }, + { "matrix": [0, 11], "x": 11.5, "y": 0 }, + { "matrix": [0, 12], "x": 12.5, "y": 0 }, + { "matrix": [0, 13], "x": 13.5, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.5 }, + { "matrix": [1, 1], "x": 1, "y": 1.5 }, + { "matrix": [1, 2], "x": 2, "y": 1.5 }, + { "matrix": [1, 3], "x": 3, "y": 1.5 }, + { "matrix": [1, 4], "x": 4, "y": 1.5 }, + { "matrix": [1, 5], "x": 5, "y": 1.5 }, + { "matrix": [1, 6], "x": 6, "y": 1.5 }, + { "matrix": [1, 7], "x": 7, "y": 1.5 }, + { "matrix": [1, 8], "x": 8, "y": 1.5 }, + { "matrix": [1, 9], "x": 9, "y": 1.5 }, + { "matrix": [1, 10], "x": 10, "y": 1.5 }, + { "matrix": [1, 11], "x": 11, "y": 1.5 }, + { "matrix": [1, 12], "x": 12, "y": 1.5 }, + { "matrix": [1, 13], "x": 13, "y": 1.5 }, + { "matrix": [1, 14], "x": 14, "y": 1.5 }, + { "matrix": [1, 15], "x": 15, "y": 1.5 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.5 }, + { "matrix": [2, 1], "x": 1.5, "y": 2.5 }, + { "matrix": [2, 2], "x": 2.5, "y": 2.5 }, + { "matrix": [2, 3], "x": 3.5, "y": 2.5 }, + { "matrix": [2, 4], "x": 4.5, "y": 2.5 }, + { "matrix": [2, 5], "x": 5.5, "y": 2.5 }, + { "matrix": [2, 6], "x": 6.5, "y": 2.5 }, + { "matrix": [2, 7], "x": 7.5, "y": 2.5 }, + { "matrix": [2, 8], "x": 8.5, "y": 2.5 }, + { "matrix": [2, 9], "x": 9.5, "y": 2.5 }, + { "matrix": [2, 10], "x": 10.5, "y": 2.5 }, + { "matrix": [2, 11], "x": 11.5, "y": 2.5 }, + { "matrix": [2, 12], "x": 12.5, "y": 2.5 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.5 }, + { "matrix": [2, 15], "x": 15, "y": 2.5 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.5 }, + { "matrix": [3, 1], "x": 1.75, "y": 3.5 }, + { "matrix": [3, 2], "x": 2.75, "y": 3.5 }, + { "matrix": [3, 3], "x": 3.75, "y": 3.5 }, + { "matrix": [3, 4], "x": 4.75, "y": 3.5 }, + { "matrix": [3, 5], "x": 5.75, "y": 3.5 }, + { "matrix": [3, 6], "x": 6.75, "y": 3.5 }, + { "matrix": [3, 7], "x": 7.75, "y": 3.5 }, + { "matrix": [3, 8], "x": 8.75, "y": 3.5 }, + { "matrix": [3, 9], "x": 9.75, "y": 3.5 }, + { "matrix": [3, 10], "x": 10.75, "y": 3.5 }, + { "matrix": [3, 11], "x": 11.75, "y": 3.5 }, + { "matrix": [3, 12], "x": 12.75, "y": 3.5 }, + { "matrix": [3, 13], "w": 1.25, "x": 13.75, "y": 3.5 }, + { "matrix": [3, 15], "x": 15, "y": 3.5 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4.5 }, + { "matrix": [4, 1], "x": 1.25, "y": 4.5 }, + { "matrix": [4, 2], "x": 2.25, "y": 4.5 }, + { "matrix": [4, 3], "x": 3.25, "y": 4.5 }, + { "matrix": [4, 4], "x": 4.25, "y": 4.5 }, + { "matrix": [4, 5], "x": 5.25, "y": 4.5 }, + { "matrix": [4, 6], "x": 6.25, "y": 4.5 }, + { "matrix": [4, 7], "x": 7.25, "y": 4.5 }, + { "matrix": [4, 8], "x": 8.25, "y": 4.5 }, + { "matrix": [4, 9], "x": 9.25, "y": 4.5 }, + { "matrix": [4, 10], "x": 10.25, "y": 4.5 }, + { "matrix": [4, 11], "x": 11.25, "y": 4.5 }, + { "matrix": [4, 12], "w": 1.75, "x": 12.25, "y": 4.5 }, + { "matrix": [4, 13], "x": 14, "y": 4.5 }, + { "matrix": [4, 15], "x": 15, "y": 4.5 }, + { "matrix": [5, 0], "w": 1.25, "x": 0, "y": 5.5 }, + { "matrix": [5, 2], "w": 1.25, "x": 1.25, "y": 5.5 }, + { "matrix": [5, 3], "w": 1.25, "x": 2.5, "y": 5.5 }, + { "matrix": [5, 4], "w": 2.25, "x": 3.75, "y": 5.5 }, + { "matrix": [5, 6], "w": 1.25, "x": 6, "y": 5.5 }, + { "matrix": [5, 8], "w": 2.75, "x": 7.25, "y": 5.5 }, + { "matrix": [5, 10], "w": 1.5, "x": 10, "y": 5.5 }, + { "matrix": [5, 11], "w": 1.5, "x": 11.5, "y": 5.5 }, + { "matrix": [5, 12], "x": 13, "y": 5.5 }, + { "matrix": [5, 13], "x": 14, "y": 5.5 }, + { "matrix": [5, 15], "x": 15, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/artemis/paragon/keymaps/default/keymap.c b/keyboards/artemis/paragon/keymaps/default/keymap.c new file mode 100644 index 000000000000..d980180a347b --- /dev/null +++ b/keyboards/artemis/paragon/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 Sleepdealer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [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_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_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_NUBS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUHS, 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_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } +}; +#endif diff --git a/keyboards/artemis/paragon/keymaps/default/rules.mk b/keyboards/artemis/paragon/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/artemis/paragon/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/artemis/paragon/keymaps/via/keymap.c b/keyboards/artemis/paragon/keymaps/via/keymap.c new file mode 100644 index 000000000000..84f5735d97b4 --- /dev/null +++ b/keyboards/artemis/paragon/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 Sleepdealer +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [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_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_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_NUBS, KC_ENT, KC_PGDN, + KC_LSFT, KC_NUHS, 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_SPC, KC_SPC, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) } +}; +#endif diff --git a/keyboards/artemis/paragon/keymaps/via/rules.mk b/keyboards/artemis/paragon/keymaps/via/rules.mk new file mode 100644 index 000000000000..f1adcab005e8 --- /dev/null +++ b/keyboards/artemis/paragon/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/artemis/paragon/readme.md b/keyboards/artemis/paragon/readme.md new file mode 100644 index 000000000000..287d141ccc67 --- /dev/null +++ b/keyboards/artemis/paragon/readme.md @@ -0,0 +1,23 @@ +# Artemis/Paragon + +* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr) +* Hardware Supported: Paragon PCB +* Hardware Availability: GB + +Make example for this keyboard (after setting up your build environment): + + make artemis/paragon/hotswap:default + +Flashing example for this keyboard: + + make artemis/paragon/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). + +## 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/artemis/paragon/soldered/info.json b/keyboards/artemis/paragon/soldered/info.json new file mode 100644 index 000000000000..5158add71e2b --- /dev/null +++ b/keyboards/artemis/paragon/soldered/info.json @@ -0,0 +1,6 @@ +{ + "matrix_pins": { + "cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "B3", "D0", "D1", "D2", "D3", "D7", "D5"], + "rows": ["B2", "C7", "C6", "B6", "B5", "B4"] + } +} diff --git a/keyboards/artemis/paragon/soldered/rules.mk b/keyboards/artemis/paragon/soldered/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/artemis/paragon/soldered/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/atreyu/rev1/info.json b/keyboards/atreyu/rev1/info.json index a4e12a71fb1b..8a38baabf812 100644 --- a/keyboards/atreyu/rev1/info.json +++ b/keyboards/atreyu/rev1/info.json @@ -81,21 +81,21 @@ {"matrix": [3, 4], "x": 4, "y": 3.125}, {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [7, 5], "x": 6, "y": 2.75}, - {"matrix": [7, 4], "x": 9.5, "y": 2.75}, - {"matrix": [7, 3], "x": 10.5, "y": 3.25}, - {"matrix": [7, 2], "x": 11.5, "y": 3.125}, - {"matrix": [7, 1], "x": 12.5, "y": 3}, - {"matrix": [7, 0], "x": 13.5, "y": 3.125}, + {"matrix": [7, 5], "x": 10.5, "y": 3.25}, + {"matrix": [7, 4], "x": 11.5, "y": 3.125}, + {"matrix": [7, 3], "x": 12.5, "y": 3}, + {"matrix": [7, 2], "x": 13.5, "y": 3.125}, + {"matrix": [7, 1], "x": 14.5, "y": 3.375}, + {"matrix": [7, 0], "x": 15.5, "y": 3.5}, - {"matrix": [8, 0], "x": 14.5, "y": 3.375}, - {"matrix": [8, 1], "x": 15.5, "y": 3.5}, - {"matrix": [8, 2], "x": 0, "y": 4.5}, - {"matrix": [8, 3], "x": 2.5, "y": 4.125}, - {"matrix": [8, 4], "x": 3.5, "y": 4.15}, - {"matrix": [8, 5], "x": 4.5, "y": 4.25}, + {"matrix": [8, 0], "x": 0, "y": 4.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4.125}, + {"matrix": [8, 2], "x": 3.5, "y": 4.15}, + {"matrix": [8, 3], "x": 4.5, "y": 4.25}, + {"matrix": [8, 4], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [8, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.25}, {"matrix": [9, 3], "x": 11, "y": 4.25}, {"matrix": [9, 2], "x": 12, "y": 4.15}, diff --git a/keyboards/atreyu/rev2/info.json b/keyboards/atreyu/rev2/info.json index fd40f9fcb844..6fcfd64d1fff 100644 --- a/keyboards/atreyu/rev2/info.json +++ b/keyboards/atreyu/rev2/info.json @@ -73,26 +73,26 @@ {"matrix": [3, 4], "x": 4, "y": 3.125}, {"matrix": [3, 5], "x": 5, "y": 3.25}, - {"matrix": [7, 5], "x": 6, "y": 2.75}, - {"matrix": [7, 4], "x": 9.5, "y": 2.75}, - {"matrix": [7, 3], "x": 10.5, "y": 3.25}, - {"matrix": [7, 2], "x": 11.5, "y": 3.125}, - {"matrix": [7, 1], "x": 12.5, "y": 3}, - {"matrix": [7, 0], "x": 13.5, "y": 3.125}, + {"matrix": [7, 5], "x": 10.5, "y": 3.25}, + {"matrix": [7, 4], "x": 11.5, "y": 3.125}, + {"matrix": [7, 3], "x": 12.5, "y": 3}, + {"matrix": [7, 2], "x": 13.5, "y": 3.125}, + {"matrix": [7, 1], "x": 14.5, "y": 3.375}, + {"matrix": [7, 0], "x": 15.5, "y": 3.5}, - {"matrix": [8, 0], "x": 14.5, "y": 3.375}, - {"matrix": [8, 1], "x": 15.5, "y": 3.5}, - {"matrix": [8, 2], "x": 0, "y": 4.5}, - {"matrix": [8, 3], "x": 2.5, "y": 4.125}, - {"matrix": [8, 4], "x": 3.5, "y": 4.15}, - {"matrix": [8, 5], "x": 4.5, "y": 4.25}, + {"matrix": [8, 0], "x": 0, "y": 4.5}, + {"matrix": [8, 1], "x": 2.5, "y": 4.125}, + {"matrix": [8, 2], "x": 3.5, "y": 4.15}, + {"matrix": [8, 3], "x": 4.5, "y": 4.25}, + {"matrix": [8, 4], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [8, 5], "x": 6, "y": 2.75}, - {"matrix": [9, 5], "x": 6, "y": 4.25, "h": 1.25}, + {"matrix": [9, 5], "x": 9.5, "y": 2.75}, {"matrix": [9, 4], "x": 9.5, "y": 4.25, "h": 1.25}, {"matrix": [9, 3], "x": 11, "y": 4.25}, {"matrix": [9, 2], "x": 12, "y": 4.15}, {"matrix": [9, 1], "x": 13, "y": 4.125}, - {"matrix": [9, 0], "x": 14.5, "y": 4.5} + {"matrix": [9, 0], "x": 15.5, "y": 4.5} ] } } diff --git a/keyboards/avalanche/v2/config.h b/keyboards/avalanche/v2/config.h index e460f21459b2..24c2465bff53 100644 --- a/keyboards/avalanche/v2/config.h +++ b/keyboards/avalanche/v2/config.h @@ -4,4 +4,3 @@ #pragma once #define RGBLED_NUM 12 -#define RGBLIGHT_SPLIT diff --git a/keyboards/avalanche/v3/config.h b/keyboards/avalanche/v3/config.h index e460f21459b2..24c2465bff53 100644 --- a/keyboards/avalanche/v3/config.h +++ b/keyboards/avalanche/v3/config.h @@ -4,4 +4,3 @@ #pragma once #define RGBLED_NUM 12 -#define RGBLIGHT_SPLIT diff --git a/keyboards/avalanche/v4/config.h b/keyboards/avalanche/v4/config.h index d60748d9bcdd..693f4d3761d8 100644 --- a/keyboards/avalanche/v4/config.h +++ b/keyboards/avalanche/v4/config.h @@ -5,10 +5,9 @@ #ifdef RGBLIGHT_ENABLE # define RGBLED_NUM 64 -# define RGBLIGHT_SPLIT -# define RGBLIGHT_HUE_STEP 10 -# define RGBLIGHT_SAT_STEP 17 -# define RGBLIGHT_VAL_STEP 17 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL+2 @@ -21,29 +20,6 @@ # define RGBLIGHT_EFFECT_KNIGHT # define RGBLIGHT_EFFECT_SNAKE # define RGBLIGHT_EFFECT_CHRISTMAS - - -// RGB LED Conversion macro from physical array to electric array. This results in better looking animated effects. -# define LED_LAYOUT( \ - /* LED matrix */ \ - L01, L02, L03, L04, L05, L06, L011, L012, L013, L014, L015, L016, \ - L11, L12, L13, L14, L15, L16, L111, L112, L113, L114, L115, L116, \ - L20, L21, L22, L23, L24, L25, L26, L211, L212, L213, L214, L215, L216, L217, \ - L31, L32, L33, L34, L35, L36, L37, L38, L39, L310, L311, L312, L313, L314, L315, L316, \ - L44, L45, L46, L47, L48, L49, L410, L411, L412, L413 )\ - { \ - /* left half - electrical wiring order */ \ - L47,L48,L38,L37,L36,L26,L16,L06,L05,L15,L25,L35,L46,L45,L34,L24,L14,L04,L03,L13,L23,L33,L44,L32,L22,L12,L02,L01,L11,L21,L31,L20, \ - /* right half - electrical wiring order */ \ - L410,L49,L39,L310,L311,L211,L111,L011,L012,L112,L212,L312,L411,L412,L313,L213,L113,L013,L014,L114,L214,L314,L413,L315,L215,L115,L015,L016,L116,L216,L316,L217 \ - } -# define RGBLIGHT_LED_MAP LED_LAYOUT( \ - /* animation order. */ \ - 4, 8, 12, 17, 22, 27, 40, 45, 50, 54, 58, 62, \ - 3, 7, 11, 16, 21, 26, 39, 44, 49, 53, 57, 61, \ - 0, 2, 6, 10, 15, 20, 25, 38, 43, 48, 52, 56, 60, 63, \ - 1, 5, 9, 14, 19, 24, 29, 31, 33, 35, 37, 42, 47, 51, 55, 59, \ - 13, 18, 23, 28, 30, 32, 34, 36, 41, 46 ) #endif #ifdef OLED_ENABLE diff --git a/keyboards/avalanche/v4/info.json b/keyboards/avalanche/v4/info.json index 399ebb82a344..10591c3129e2 100644 --- a/keyboards/avalanche/v4/info.json +++ b/keyboards/avalanche/v4/info.json @@ -26,6 +26,7 @@ }, "rgblight": { "max_brightness": 100, + "led_map": [28, 30, 31, 29, 24, 25, 26, 27, 22, 21, 20, 19, 23, 18, 14, 15, 16, 17, 12, 11, 10, 9, 13, 5, 6, 7, 8, 4, 3, 2, 1, 0, 34, 32, 33, 35, 37, 38, 39, 40, 45, 44, 43, 42, 36, 41, 47, 48, 49, 50, 54, 53, 52, 51, 46, 55, 56, 57, 58, 62, 61, 60, 59, 63], "split_count": [32, 32] }, "processor": "atmega32u4", diff --git a/keyboards/barleycorn_smd/config.h b/keyboards/barleycorn_smd/config.h index 167c3b5c87c4..52681e9a0b06 100644 --- a/keyboards/barleycorn_smd/config.h +++ b/keyboards/barleycorn_smd/config.h @@ -49,7 +49,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_RGB_TEST #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 } /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/barleycorn_smd/info.json b/keyboards/barleycorn_smd/info.json index 0f759e5f4d53..471369812c2d 100644 --- a/keyboards/barleycorn_smd/info.json +++ b/keyboards/barleycorn_smd/info.json @@ -12,6 +12,9 @@ "caps_lock": "B2", "num_lock": "B3" }, + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5] + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/bastardkb/tbk/config.h b/keyboards/bastardkb/tbk/config.h index c5dd67e1053e..1bea55ef8e0d 100644 --- a/keyboards/bastardkb/tbk/config.h +++ b/keyboards/bastardkb/tbk/config.h @@ -18,7 +18,6 @@ #pragma once #define RGBLED_NUM 38 -#define RGBLIGHT_SPLIT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/bluebell/swoop/config.h b/keyboards/bluebell/swoop/config.h index a502e8b62bbb..1637f368a089 100644 --- a/keyboards/bluebell/swoop/config.h +++ b/keyboards/bluebell/swoop/config.h @@ -29,7 +29,6 @@ #define RGBLIGHT_EFFECT_STATIC_GRADIENT #define RGBLIGHT_EFFECT_BREATHING #define RGBLED_NUM 36 - #define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/butterkeebs/pocketpad/info.json b/keyboards/butterkeebs/pocketpad/info.json index db5258283043..0b42d5fb17ec 100644 --- a/keyboards/butterkeebs/pocketpad/info.json +++ b/keyboards/butterkeebs/pocketpad/info.json @@ -25,28 +25,28 @@ "layouts": { "LAYOUT": { "layout": [ - {"x": 0, "y": 0, "matrix": [0, 0]}, - {"x": 1, "y": 0, "matrix": [0, 1]}, - {"x": 2, "y": 0, "matrix": [0, 2]}, - {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 1, "y": 0, "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": 0, "y": 1, "matrix": [1, 0]}, - {"x": 1, "y": 1, "matrix": [1, 1]}, - {"x": 2, "y": 1, "matrix": [1, 2]}, - {"x": 3, "y": 1, "matrix": [1, 3]}, + {"x": 1, "y": 1, "matrix": [1, 0]}, + {"x": 2, "y": 1, "matrix": [1, 1]}, + {"x": 3, "y": 1, "matrix": [1, 2]}, + {"x": 4, "y": 1.5, "matrix": [1, 3]}, - {"x": 0, "y": 2, "matrix": [2, 0]}, - {"x": 1, "y": 2, "matrix": [2, 1]}, - {"x": 2, "y": 2, "matrix": [2, 2]}, - {"x": 3, "y": 2, "matrix": [2, 3]}, + {"x": 1, "y": 2, "matrix": [2, 0]}, + {"x": 2, "y": 2, "matrix": [2, 1]}, + {"x": 3, "y": 2, "matrix": [2, 2]}, + {"x": 4, "y": 3.5, "matrix": [2, 3]}, - {"x": 0, "y": 3, "matrix": [3, 0]}, - {"x": 1, "y": 3, "matrix": [3, 1]}, - {"x": 2, "y": 3, "matrix": [3, 2]}, - {"x": 3, "y": 3, "matrix": [3, 3]}, + {"x": 1, "y": 3, "matrix": [3, 0]}, + {"x": 2, "y": 3, "matrix": [3, 1]}, + {"x": 3, "y": 3, "matrix": [3, 2]}, + {"x": 3, "y": 4, "matrix": [3, 3]}, {"x": 0, "y": 4, "matrix": [4, 0]}, - {"x": 1, "y": 4, "matrix": [4, 1]} + {"x": 1.5, "y": 4, "matrix": [4, 1]} ] } } diff --git a/keyboards/cannonkeys/leviatan/info.json b/keyboards/cannonkeys/leviatan/info.json new file mode 100644 index 000000000000..7e8d6c6fdd12 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/info.json @@ -0,0 +1,311 @@ +{ + "manufacturer": "CannonKeys", + "url": "https://cannonkeys.com", + "maintainer": "awkannan", + "keyboard_name": "Leviatan", + "usb": { + "vid": "0xCA04", + "pid": "0x0024", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "A9", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15"], + "rows": ["B1", "B0", "A7", "A5", "A4"] + }, + "diode_direction": "COL2ROW", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "community_layouts": ["60_ansi", "60_tsangan_hhkb", "60_iso"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "w": 2, "matrix": [0, 13]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + {"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "w": 2.25, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 2.25, "matrix": [3, 0]}, + {"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]}, + {"x": 12.25, "y": 3, "w": 2.75, "matrix": [3, 12]}, + + {"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]}, + {"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]}, + {"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]}, + {"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, 12]}, + {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "matrix": [0, 13]}, + {"x": 14, "y": 0, "matrix": [0, 14]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + {"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "w": 2.25, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 2.25, "matrix": [3, 0]}, + {"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]}, + {"x": 12.25, "y": 3, "w": 1.75, "matrix": [3, 12]}, + {"x": 14, "y": 3, "matrix": [3, 14]}, + + {"x": 0, "y": 4, "w": 1.5, "matrix": [4, 0]}, + {"x": 1.5, "y": 4, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.5, "matrix": [4, 2]}, + {"x": 4, "y": 4, "w": 7, "matrix": [4, 6]}, + {"x": 11, "y": 4, "w": 1.5, "matrix": [4, 11]}, + {"x": 12.5, "y": 4, "matrix": [4, 12]}, + {"x": 13.5, "y": 4, "w": 1.5, "matrix": [4, 14]} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "w": 2, "matrix": [0, 13]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "matrix": [2, 12]}, + {"x": 13.75, "y": 1, "w": 1.25, "h": 2, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 1.25, "matrix": [3, 0]}, + {"x": 1.25, "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]}, + {"x": 12.25, "y": 3, "w": 2.75, "matrix": [3, 12]}, + + {"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]}, + {"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]}, + {"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]}, + {"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, 12]}, + {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} + ] + }, + "LAYOUT_all": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]}, + {"x": 1, "y": 0, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0, "matrix": [0, 3]}, + {"x": 4, "y": 0, "matrix": [0, 4]}, + {"x": 5, "y": 0, "matrix": [0, 5]}, + {"x": 6, "y": 0, "matrix": [0, 6]}, + {"x": 7, "y": 0, "matrix": [0, 7]}, + {"x": 8, "y": 0, "matrix": [0, 8]}, + {"x": 9, "y": 0, "matrix": [0, 9]}, + {"x": 10, "y": 0, "matrix": [0, 10]}, + {"x": 11, "y": 0, "matrix": [0, 11]}, + {"x": 12, "y": 0, "matrix": [0, 12]}, + {"x": 13, "y": 0, "matrix": [0, 13]}, + {"x": 14, "y": 0, "matrix": [0, 14]}, + + {"x": 0, "y": 1, "w": 1.5, "matrix": [1, 0]}, + {"x": 1.5, "y": 1, "matrix": [1, 1]}, + {"x": 2.5, "y": 1, "matrix": [1, 2]}, + {"x": 3.5, "y": 1, "matrix": [1, 3]}, + {"x": 4.5, "y": 1, "matrix": [1, 4]}, + {"x": 5.5, "y": 1, "matrix": [1, 5]}, + {"x": 6.5, "y": 1, "matrix": [1, 6]}, + {"x": 7.5, "y": 1, "matrix": [1, 7]}, + {"x": 8.5, "y": 1, "matrix": [1, 8]}, + {"x": 9.5, "y": 1, "matrix": [1, 9]}, + {"x": 10.5, "y": 1, "matrix": [1, 10]}, + {"x": 11.5, "y": 1, "matrix": [1, 11]}, + {"x": 12.5, "y": 1, "matrix": [1, 12]}, + {"x": 13.5, "y": 1, "w": 1.5, "matrix": [1, 14]}, + + {"x": 0, "y": 2, "w": 1.75, "matrix": [2, 0]}, + {"x": 1.75, "y": 2, "matrix": [2, 1]}, + {"x": 2.75, "y": 2, "matrix": [2, 2]}, + {"x": 3.75, "y": 2, "matrix": [2, 3]}, + {"x": 4.75, "y": 2, "matrix": [2, 4]}, + {"x": 5.75, "y": 2, "matrix": [2, 5]}, + {"x": 6.75, "y": 2, "matrix": [2, 6]}, + {"x": 7.75, "y": 2, "matrix": [2, 7]}, + {"x": 8.75, "y": 2, "matrix": [2, 8]}, + {"x": 9.75, "y": 2, "matrix": [2, 9]}, + {"x": 10.75, "y": 2, "matrix": [2, 10]}, + {"x": 11.75, "y": 2, "matrix": [2, 11]}, + {"x": 12.75, "y": 2, "matrix": [2, 12]}, + {"x": 13.75, "y": 2, "w": 1.25, "matrix": [2, 14]}, + + {"x": 0, "y": 3, "w": 1.25, "matrix": [3, 0]}, + {"x": 1.25, "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]}, + {"x": 12.25, "y": 3, "w": 1.75, "matrix": [3, 12]}, + {"x": 14, "y": 3, "matrix": [3, 14]}, + + {"x": 0, "y": 4, "w": 1.25, "matrix": [4, 0]}, + {"x": 1.25, "y": 4, "w": 1.25, "matrix": [4, 1]}, + {"x": 2.5, "y": 4, "w": 1.25, "matrix": [4, 2]}, + {"x": 3.75, "y": 4, "w": 6.25, "matrix": [4, 6]}, + {"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, 12]}, + {"x": 13.75, "y": 4, "w": 1.25, "matrix": [4, 14]} + ] + } + } +} diff --git a/keyboards/cannonkeys/leviatan/keymaps/default/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/default/keymap.c new file mode 100644 index 000000000000..317eeab093dc --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_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, + _FN1 +}; + +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_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, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_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_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c new file mode 100644 index 000000000000..a0cacca0f5ca --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/iso/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_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, + _FN1 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = LAYOUT_60_iso( + 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, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_GRV, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c new file mode 100644 index 000000000000..d280f72d1ecd --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/tsangan/keymap.c @@ -0,0 +1,46 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_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, + _FN1 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_60_tsangan_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_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_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = LAYOUT_60_tsangan_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, _______, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c b/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c new file mode 100644 index 000000000000..b3b684cf198f --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include QMK_KEYBOARD_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, + _FN1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = 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_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(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL + ), + + [_FN1] = 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_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_UP, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, QK_BOOT + ) +}; diff --git a/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk b/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/leviatan/readme.md b/keyboards/cannonkeys/leviatan/readme.md new file mode 100644 index 000000000000..70b90e95516c --- /dev/null +++ b/keyboards/cannonkeys/leviatan/readme.md @@ -0,0 +1,25 @@ +# CannonKeys Leviatan for LaminarDesigns + +Leviatan Keyboard + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 (or equivalent) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/leviatan:default + + +Flashing example for this keyboard: + + make cannonkeys/leviatan: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**: Toggle the switch on the back of the pcb to "0" and briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/leviatan/rules.mk b/keyboards/cannonkeys/leviatan/rules.mk new file mode 100644 index 000000000000..2a5031cd3205 --- /dev/null +++ b/keyboards/cannonkeys/leviatan/rules.mk @@ -0,0 +1,5 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/chlx/str_merro60/config.h b/keyboards/chlx/str_merro60/config.h index 62b31cf95bf4..a16b45e8d7cd 100644 --- a/keyboards/chlx/str_merro60/config.h +++ b/keyboards/chlx/str_merro60/config.h @@ -29,7 +29,6 @@ along with this program. If not, see . # define RGBLIGHT_EFFECT_TWINKLE # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 # define RGBLED_NUM 12 -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/cipulot/ec_alveus/1_0_0/config.h b/keyboards/cipulot/ec_alveus/1_0_0/config.h new file mode 100644 index 000000000000..1947c308026d --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Custom matrix pins and port select array */ +#define MATRIX_ROW_PINS \ + { A14, B3, A15, B5, B4 } +#define MATRIX_COL_CHANNELS \ + { 3, 0, 1, 2, 6, 5, 7, 4 } +#define MUX_SEL_PINS \ + { B7, B8, B9 } + +/* Hardware peripherals pins */ +#define APLEX_EN_PIN_0 C13 +#define APLEX_EN_PIN_1 C14 +#define DISCHARGE_PIN B1 +#define ANALOG_PORT A3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define DEFAULT_ACTUATION_LEVEL 550 +#define DEFAULT_RELEASE_LEVEL 500 + +#define DISCHARGE_TIME 10 diff --git a/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c new file mode 100644 index 000000000000..783c00457c78 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.c @@ -0,0 +1,183 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec_switch_matrix.h" +#include "analog.h" +#include "atomic_util.h" +#include "print.h" +#include "wait.h" + +/* Pin and port array */ +const uint32_t row_pins[] = MATRIX_ROW_PINS; +const uint8_t col_channels[] = MATRIX_COL_CHANNELS; +const uint32_t mux_sel_pins[] = MUX_SEL_PINS; + +static ecsm_config_t config; +static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static adc_mux adcMux; + +static inline void discharge_capacitor(void) { + writePinLow(DISCHARGE_PIN); +} +static inline void charge_capacitor(uint8_t row) { + writePinHigh(DISCHARGE_PIN); + writePinHigh(row_pins[row]); +} + +static inline void init_mux_sel(void) { + for (int idx = 0; idx < 3; idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +static inline void select_mux(uint8_t col) { + uint8_t ch = col_channels[col]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +static inline void init_row(void) { + for (int idx = 0; idx < MATRIX_ROWS; idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +/* Initialize the peripherals pins */ +int ecsm_init(ecsm_config_t const* const ecsm_config) { + // Initialize config + config = *ecsm_config; + + palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG); + adcMux = pinToMux(ANALOG_PORT); + + // Dummy call to make sure that adcStart() has been called in the appropriate state + adc_read(adcMux); + + // Initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutputOpenDrain(DISCHARGE_PIN); + + // Initialize drive lines + init_row(); + + // Initialize multiplexer select pin + init_mux_sel(); + + // Enable AMUX + setPinOutput(APLEX_EN_PIN_0); + writePinLow(APLEX_EN_PIN_0); + setPinOutput(APLEX_EN_PIN_1); + writePinLow(APLEX_EN_PIN_1); + + return 0; +} + +int ecsm_update(ecsm_config_t const* const ecsm_config) { + // Save config + config = *ecsm_config; + return 0; +} + +// Read the capacitive sensor value +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + // Select the multiplexer + if (channel == 0) { + writePinHigh(APLEX_EN_PIN_0); + select_mux(col); + writePinLow(APLEX_EN_PIN_0); + } else { + writePinHigh(APLEX_EN_PIN_1); + select_mux(col); + writePinLow(APLEX_EN_PIN_1); + } + + // Set strobe pins to low state + writePinLow(row_pins[row]); + ATOMIC_BLOCK_FORCEON { + // Set the row pin to high state and have capacitor charge + charge_capacitor(row); + // Read the ADC value + sw_value = adc_read(adcMux); + } + // Discharge peak hold capacitor + discharge_capacitor(); + // Waiting for the ghost capacitor to discharge fully + wait_us(DISCHARGE_TIME); + + return sw_value; +} + +// Update press/release state of key +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { + bool current_state = (*current_row >> col) & 1; + + // Press to release + if (current_state && sw_value < config.ecsm_actuation_threshold) { + *current_row &= ~(1 << col); + return true; + } + + // Release to press + if ((!current_state) && sw_value > config.ecsm_release_threshold) { + *current_row |= (1 << col); + return true; + } + + return false; +} + +// Scan key values and update matrix state +bool ecsm_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_1); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]); + } + } + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_0); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]); + } + } + return updated; +} + +// Debug print key values +void ecsm_print_matrix(void) { + for (int row = 0; row < MATRIX_ROWS; row++) { + for (int col = 0; col < MATRIX_COLS; col++) { + uprintf("%4d", ecsm_sw_value[row][col]); + if (col < (MATRIX_COLS - 1)) { + print(","); + } + } + print("\n"); + } + print("\n"); +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h new file mode 100644 index 000000000000..9dcb216caa3f --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/ec_switch_matrix.h @@ -0,0 +1,36 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t ecsm_actuation_threshold; // threshold for key release + uint16_t ecsm_release_threshold; // threshold for key press +} ecsm_config_t; + +ecsm_config_t ecsm_config; + +int ecsm_init(ecsm_config_t const* const ecsm_config); +int ecsm_update(ecsm_config_t const* const ecsm_config); +bool ecsm_matrix_scan(matrix_row_t current_matrix[]); +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col); +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value); +void ecsm_print_matrix(void); diff --git a/keyboards/cipulot/ec_alveus/1_0_0/halconf.h b/keyboards/cipulot/ec_alveus/1_0_0/halconf.h new file mode 100644 index 000000000000..5b71acecbbc8 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_alveus/1_0_0/info.json b/keyboards/cipulot/ec_alveus/1_0_0/info.json new file mode 100644 index 000000000000..3e1954608917 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/info.json @@ -0,0 +1,181 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Alveus 1.0.0", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": false + }, + "mouse_key": { + "enabled": true + }, + "processor": "STM32F401", + "usb": { + "device_version": "1.0.0", + "pid": "0x6BA4", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "1,13", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,13", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,12", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_wkl": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "w": 2, "x": 13, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "1,13", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,13", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c new file mode 100644 index 000000000000..d111c6a6853f --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_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_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, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + 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, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h new file mode 100644 index 000000000000..ebf954d07aca --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// This is the size of the EEPROM for the custom VIA-specific data +#define EECONFIG_USER_DATA_SIZE 4 diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c new file mode 100644 index 000000000000..5fc6c4d94e08 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [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, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk new file mode 100644 index 000000000000..520b11f20312 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +SRC += via_apc.c diff --git a/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c new file mode 100644 index 000000000000..5ea77af44c8b --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/keymaps/via/via_apc.c @@ -0,0 +1,156 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec_switch_matrix.h" +#include "action.h" +#include "via.h" + +void apc_init_thresholds(void); +void apc_set_threshold(bool is_for_actuation); + +// Declaring an _apc_config_t struct that will store our data +typedef struct _apc_config_t { + uint16_t actuation_threshold; + uint16_t release_threshold; +} apc_config; + +// Check if the size of the reserved persistent memory is the same as the size of struct apc_config +_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data"); + +// Declaring a new variable apc of type apc_config +apc_config apc; + +// Declaring enums for VIA config menu +enum via_apc_enums { + // clang-format off + id_apc_actuation_threshold = 1, + id_apc_release_threshold = 2 + // clang-format on +}; + +// Initializing persistent memory configuration: default values are declared and stored in PMEM +void eeconfig_init_user(void) { + // Default values + apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL; + apc.release_threshold = DEFAULT_RELEASE_LEVEL; + // Write default value to EEPROM now + eeconfig_update_user_datablock(&apc); +} + +// On Keyboard startup +void keyboard_post_init_user(void) { + // Read custom menu variables from memory + eeconfig_read_user_datablock(&apc); + apc_init_thresholds(); +} + +// Handle the data received by the keyboard from the VIA menus +void apc_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + apc.actuation_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(true); + break; + } + case id_apc_release_threshold: { + apc.release_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(false); + break; + } + } +} + +// Handle the data sent by the keyboard to the VIA menus +void apc_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + value_data[0] = apc.actuation_threshold >> 8; + value_data[1] = apc.actuation_threshold & 0xFF; + break; + } + case id_apc_release_threshold: { + value_data[0] = apc.release_threshold >> 8; + value_data[1] = apc.release_threshold & 0xFF; + break; + } + } +} + +// Save the data to persistent memory after changes are made +void apc_config_save(void) { + eeconfig_update_user_datablock(&apc); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + apc_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + apc_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + apc_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + *command_id = id_unhandled; +} + +// Initialize the thresholds +void apc_init_thresholds(void) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + ecsm_config.ecsm_release_threshold = apc.release_threshold; + + // Update the ecsm_config + ecsm_update(&ecsm_config); +} + +// Set the thresholds +void apc_set_threshold(bool is_for_actuation) { + if (is_for_actuation) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + + } else { + ecsm_config.ecsm_release_threshold = apc.release_threshold; + } + // Update the ecsm_config + ecsm_update(&ecsm_config); +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/matrix.c b/keyboards/cipulot/ec_alveus/1_0_0/matrix.c new file mode 100644 index 000000000000..1850acf26414 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/matrix.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec_switch_matrix.h" +#include "matrix.h" + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +void matrix_init_custom(void) { + // Default values, overwritten by VIA if enabled later + ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL; + ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL; + + ecsm_init(&ecsm_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ecsm_matrix_scan(current_matrix); + +// RAW matrix values on console +#ifdef CONSOLE_ENABLE + static int cnt = 0; + if (cnt++ == 350) { + cnt = 0; + ecsm_print_matrix(); + } +#endif + return updated; +} diff --git a/keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h b/keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h new file mode 100644 index 000000000000..d91f576bd48b --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_alveus/1_0_0/readme.md b/keyboards/cipulot/ec_alveus/1_0_0/readme.md new file mode 100644 index 000000000000..01e82a88055d --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/readme.md @@ -0,0 +1,27 @@ +# EC Alveus + +![EC Alveus](https://i.imgur.com/J31LzzOh.jpg) + +EC FRL TKL keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Alveus 1.0.0 +* Hardware Availability: Raffle Sale from [Densus](https://www.instagram.com/densusdesign/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_alveus/1_0_0:default + +Flashing example for this keyboard: + + make cipulot/ec_alveus/1_0_0: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**: Long short the exposed pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk new file mode 100644 index 000000000000..b8929fa590d7 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += matrix.c ec_switch_matrix.c diff --git a/keyboards/cipulot/ec_alveus/1_2_0/config.h b/keyboards/cipulot/ec_alveus/1_2_0/config.h new file mode 100644 index 000000000000..1947c308026d --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/config.h @@ -0,0 +1,45 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +/* Custom matrix pins and port select array */ +#define MATRIX_ROW_PINS \ + { A14, B3, A15, B5, B4 } +#define MATRIX_COL_CHANNELS \ + { 3, 0, 1, 2, 6, 5, 7, 4 } +#define MUX_SEL_PINS \ + { B7, B8, B9 } + +/* Hardware peripherals pins */ +#define APLEX_EN_PIN_0 C13 +#define APLEX_EN_PIN_1 C14 +#define DISCHARGE_PIN B1 +#define ANALOG_PORT A3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define DEFAULT_ACTUATION_LEVEL 550 +#define DEFAULT_RELEASE_LEVEL 500 + +#define DISCHARGE_TIME 10 diff --git a/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c new file mode 100644 index 000000000000..783c00457c78 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.c @@ -0,0 +1,183 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec_switch_matrix.h" +#include "analog.h" +#include "atomic_util.h" +#include "print.h" +#include "wait.h" + +/* Pin and port array */ +const uint32_t row_pins[] = MATRIX_ROW_PINS; +const uint8_t col_channels[] = MATRIX_COL_CHANNELS; +const uint32_t mux_sel_pins[] = MUX_SEL_PINS; + +static ecsm_config_t config; +static uint16_t ecsm_sw_value[MATRIX_ROWS][MATRIX_COLS]; + +static adc_mux adcMux; + +static inline void discharge_capacitor(void) { + writePinLow(DISCHARGE_PIN); +} +static inline void charge_capacitor(uint8_t row) { + writePinHigh(DISCHARGE_PIN); + writePinHigh(row_pins[row]); +} + +static inline void init_mux_sel(void) { + for (int idx = 0; idx < 3; idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +static inline void select_mux(uint8_t col) { + uint8_t ch = col_channels[col]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +static inline void init_row(void) { + for (int idx = 0; idx < MATRIX_ROWS; idx++) { + setPinOutput(row_pins[idx]); + writePinLow(row_pins[idx]); + } +} + +/* Initialize the peripherals pins */ +int ecsm_init(ecsm_config_t const* const ecsm_config) { + // Initialize config + config = *ecsm_config; + + palSetLineMode(ANALOG_PORT, PAL_MODE_INPUT_ANALOG); + adcMux = pinToMux(ANALOG_PORT); + + // Dummy call to make sure that adcStart() has been called in the appropriate state + adc_read(adcMux); + + // Initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutputOpenDrain(DISCHARGE_PIN); + + // Initialize drive lines + init_row(); + + // Initialize multiplexer select pin + init_mux_sel(); + + // Enable AMUX + setPinOutput(APLEX_EN_PIN_0); + writePinLow(APLEX_EN_PIN_0); + setPinOutput(APLEX_EN_PIN_1); + writePinLow(APLEX_EN_PIN_1); + + return 0; +} + +int ecsm_update(ecsm_config_t const* const ecsm_config) { + // Save config + config = *ecsm_config; + return 0; +} + +// Read the capacitive sensor value +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col) { + uint16_t sw_value = 0; + + // Select the multiplexer + if (channel == 0) { + writePinHigh(APLEX_EN_PIN_0); + select_mux(col); + writePinLow(APLEX_EN_PIN_0); + } else { + writePinHigh(APLEX_EN_PIN_1); + select_mux(col); + writePinLow(APLEX_EN_PIN_1); + } + + // Set strobe pins to low state + writePinLow(row_pins[row]); + ATOMIC_BLOCK_FORCEON { + // Set the row pin to high state and have capacitor charge + charge_capacitor(row); + // Read the ADC value + sw_value = adc_read(adcMux); + } + // Discharge peak hold capacitor + discharge_capacitor(); + // Waiting for the ghost capacitor to discharge fully + wait_us(DISCHARGE_TIME); + + return sw_value; +} + +// Update press/release state of key +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value) { + bool current_state = (*current_row >> col) & 1; + + // Press to release + if (current_state && sw_value < config.ecsm_actuation_threshold) { + *current_row &= ~(1 << col); + return true; + } + + // Release to press + if ((!current_state) && sw_value > config.ecsm_release_threshold) { + *current_row |= (1 << col); + return true; + } + + return false; +} + +// Scan key values and update matrix state +bool ecsm_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_1); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col] = ecsm_readkey_raw(0, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col, ecsm_sw_value[row][col]); + } + } + + // Disable AMUX of channel 1 + writePinHigh(APLEX_EN_PIN_0); + for (int col = 0; col < sizeof(col_channels); col++) { + for (int row = 0; row < MATRIX_ROWS; row++) { + ecsm_sw_value[row][col + 8] = ecsm_readkey_raw(1, row, col); + updated |= ecsm_update_key(¤t_matrix[row], row, col + 8, ecsm_sw_value[row][col + 8]); + } + } + return updated; +} + +// Debug print key values +void ecsm_print_matrix(void) { + for (int row = 0; row < MATRIX_ROWS; row++) { + for (int col = 0; col < MATRIX_COLS; col++) { + uprintf("%4d", ecsm_sw_value[row][col]); + if (col < (MATRIX_COLS - 1)) { + print(","); + } + } + print("\n"); + } + print("\n"); +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h new file mode 100644 index 000000000000..9dcb216caa3f --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/ec_switch_matrix.h @@ -0,0 +1,36 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t ecsm_actuation_threshold; // threshold for key release + uint16_t ecsm_release_threshold; // threshold for key press +} ecsm_config_t; + +ecsm_config_t ecsm_config; + +int ecsm_init(ecsm_config_t const* const ecsm_config); +int ecsm_update(ecsm_config_t const* const ecsm_config); +bool ecsm_matrix_scan(matrix_row_t current_matrix[]); +uint16_t ecsm_readkey_raw(uint8_t channel, uint8_t row, uint8_t col); +bool ecsm_update_key(matrix_row_t* current_row, uint8_t row, uint8_t col, uint16_t sw_value); +void ecsm_print_matrix(void); diff --git a/keyboards/cipulot/ec_alveus/1_2_0/halconf.h b/keyboards/cipulot/ec_alveus/1_2_0/halconf.h new file mode 100644 index 000000000000..5b71acecbbc8 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_ADC TRUE + +#include_next diff --git a/keyboards/cipulot/ec_alveus/1_2_0/info.json b/keyboards/cipulot/ec_alveus/1_2_0/info.json new file mode 100644 index 000000000000..65af74e99bad --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/info.json @@ -0,0 +1,255 @@ +{ + "manufacturer": "Cipulot", + "keyboard_name": "EC Alveus 1.2.0", + "maintainer": "Cipulot", + "bootloader": "stm32-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": false + }, + "mouse_key": { + "enabled": true + }, + "processor": "STM32F401", + "usb": { + "device_version": "1.2.0", + "pid": "0x6B90", + "shared_endpoint": { + "keyboard": true + }, + "vid": "0x6369" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "1,13", "matrix": [1, 13], "x": 14, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,1", "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,12", "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_wkl": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "1,13", "matrix": [1, 13], "w": 2, "x": 13, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs": { + "layout": [ + { "label": "0,0", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "0,1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "0,2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "0,3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "0,4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "0,5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "0,6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "0,7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "0,8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "0,9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0,10", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "0,11", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "0,12", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "0,13", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "1,13", "matrix": [1, 13], "x": 14, "y": 0 }, + { "label": "0,14", "matrix": [0, 14], "x": 15.25, "y": 0 }, + { "label": "0,15", "matrix": [0, 15], "x": 16.25, "y": 0 }, + { "label": "1,15", "matrix": [1, 15], "x": 17.25, "y": 0 }, + { "label": "1,0", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "1,1", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "1,2", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "1,3", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "1,4", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "1,5", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "1,6", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "1,7", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "1,8", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "1,9", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "1,10", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "1,11", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "1,12", "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "label": "2,13", "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "1,14", "matrix": [1, 14], "x": 15.25, "y": 1 }, + { "label": "2,14", "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "label": "2,15", "matrix": [2, 15], "x": 17.25, "y": 1 }, + { "label": "2,0", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "2,1", "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "label": "2,2", "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "label": "2,3", "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "label": "2,4", "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "label": "2,5", "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "label": "2,6", "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "label": "2,7", "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "label": "2,8", "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "label": "2,9", "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "label": "2,10", "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "label": "2,11", "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "label": "2,12", "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "3,0", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "3,1", "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "label": "3,2", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "3,3", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "3,4", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "3,5", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "3,6", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "3,7", "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "label": "3,8", "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "label": "3,9", "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "label": "3,10", "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "label": "3,13", "matrix": [3, 13], "w": 2.75, "x": 12.25, "y": 3 }, + { "label": "3,14", "matrix": [3, 14], "x": 16.25, "y": 3 }, + { "label": "4,0", "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "label": "4,2", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "label": "4,5", "matrix": [4, 5], "w": 7, "x": 4, "y": 4 }, + { "label": "4,11", "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "label": "4,13", "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "label": "4,14", "matrix": [4, 14], "x": 15.25, "y": 4 }, + { "label": "4,15", "matrix": [4, 15], "x": 16.25, "y": 4 }, + { "label": "3,15", "matrix": [3, 15], "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c new file mode 100644 index 000000000000..d111c6a6853f --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_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_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, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + 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, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c new file mode 100644 index 000000000000..4552cd64575a --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/tkl_nofrow_ansi_tsangan_wkl_split_bs/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [0] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_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_BSPC, 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_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, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [1] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs( + 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_tkl_nofrow_ansi_tsangan_wkl_split_bs( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h new file mode 100644 index 000000000000..ebf954d07aca --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +// This is the size of the EEPROM for the custom VIA-specific data +#define EECONFIG_USER_DATA_SIZE 4 diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c new file mode 100644 index 000000000000..54a8f3b4f00b --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // clang-format off + [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_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_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, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + + [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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [2] = LAYOUT_all( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + // clang-format on +}; diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk new file mode 100644 index 000000000000..520b11f20312 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes + +SRC += via_apc.c diff --git a/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c new file mode 100644 index 000000000000..5ea77af44c8b --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/keymaps/via/via_apc.c @@ -0,0 +1,156 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec_switch_matrix.h" +#include "action.h" +#include "via.h" + +void apc_init_thresholds(void); +void apc_set_threshold(bool is_for_actuation); + +// Declaring an _apc_config_t struct that will store our data +typedef struct _apc_config_t { + uint16_t actuation_threshold; + uint16_t release_threshold; +} apc_config; + +// Check if the size of the reserved persistent memory is the same as the size of struct apc_config +_Static_assert(sizeof(apc_config) == EECONFIG_USER_DATA_SIZE, "Mismatch in keyboard EECONFIG stored data"); + +// Declaring a new variable apc of type apc_config +apc_config apc; + +// Declaring enums for VIA config menu +enum via_apc_enums { + // clang-format off + id_apc_actuation_threshold = 1, + id_apc_release_threshold = 2 + // clang-format on +}; + +// Initializing persistent memory configuration: default values are declared and stored in PMEM +void eeconfig_init_user(void) { + // Default values + apc.actuation_threshold = DEFAULT_ACTUATION_LEVEL; + apc.release_threshold = DEFAULT_RELEASE_LEVEL; + // Write default value to EEPROM now + eeconfig_update_user_datablock(&apc); +} + +// On Keyboard startup +void keyboard_post_init_user(void) { + // Read custom menu variables from memory + eeconfig_read_user_datablock(&apc); + apc_init_thresholds(); +} + +// Handle the data received by the keyboard from the VIA menus +void apc_config_set_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + apc.actuation_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(true); + break; + } + case id_apc_release_threshold: { + apc.release_threshold = value_data[1] | (value_data[0] << 8); + apc_set_threshold(false); + break; + } + } +} + +// Handle the data sent by the keyboard to the VIA menus +void apc_config_get_value(uint8_t *data) { + // data = [ value_id, value_data ] + uint8_t *value_id = &(data[0]); + uint8_t *value_data = &(data[1]); + + switch (*value_id) { + case id_apc_actuation_threshold: { + value_data[0] = apc.actuation_threshold >> 8; + value_data[1] = apc.actuation_threshold & 0xFF; + break; + } + case id_apc_release_threshold: { + value_data[0] = apc.release_threshold >> 8; + value_data[1] = apc.release_threshold & 0xFF; + break; + } + } +} + +// Save the data to persistent memory after changes are made +void apc_config_save(void) { + eeconfig_update_user_datablock(&apc); +} + +void via_custom_value_command_kb(uint8_t *data, uint8_t length) { + // data = [ command_id, channel_id, value_id, value_data ] + uint8_t *command_id = &(data[0]); + uint8_t *channel_id = &(data[1]); + uint8_t *value_id_and_data = &(data[2]); + + if (*channel_id == id_custom_channel) { + switch (*command_id) { + case id_custom_set_value: { + apc_config_set_value(value_id_and_data); + break; + } + case id_custom_get_value: { + apc_config_get_value(value_id_and_data); + break; + } + case id_custom_save: { + apc_config_save(); + break; + } + default: { + // Unhandled message. + *command_id = id_unhandled; + break; + } + } + return; + } + + *command_id = id_unhandled; +} + +// Initialize the thresholds +void apc_init_thresholds(void) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + ecsm_config.ecsm_release_threshold = apc.release_threshold; + + // Update the ecsm_config + ecsm_update(&ecsm_config); +} + +// Set the thresholds +void apc_set_threshold(bool is_for_actuation) { + if (is_for_actuation) { + ecsm_config.ecsm_actuation_threshold = apc.actuation_threshold; + + } else { + ecsm_config.ecsm_release_threshold = apc.release_threshold; + } + // Update the ecsm_config + ecsm_update(&ecsm_config); +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/matrix.c b/keyboards/cipulot/ec_alveus/1_2_0/matrix.c new file mode 100644 index 000000000000..1850acf26414 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/matrix.c @@ -0,0 +1,44 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "ec_switch_matrix.h" +#include "matrix.h" + +/* matrix state(1:on, 0:off) */ +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values + +void matrix_init_custom(void) { + // Default values, overwritten by VIA if enabled later + ecsm_config.ecsm_actuation_threshold = DEFAULT_ACTUATION_LEVEL; + ecsm_config.ecsm_release_threshold = DEFAULT_RELEASE_LEVEL; + + ecsm_init(&ecsm_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ecsm_matrix_scan(current_matrix); + +// RAW matrix values on console +#ifdef CONSOLE_ENABLE + static int cnt = 0; + if (cnt++ == 350) { + cnt = 0; + ecsm_print_matrix(); + } +#endif + return updated; +} diff --git a/keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h b/keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h new file mode 100644 index 000000000000..d91f576bd48b --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/cipulot/ec_alveus/1_2_0/readme.md b/keyboards/cipulot/ec_alveus/1_2_0/readme.md new file mode 100644 index 000000000000..e4c3ef86c3f4 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/readme.md @@ -0,0 +1,27 @@ +# EC Alveus + +![EC Alveus](https://i.imgur.com/J31LzzOh.jpg) + +EC FRL TKL keyboard. + +* Keyboard Maintainer: [cipulot](https://github.com/cipulot) +* Hardware Supported: EC Alveus 1.2.0 +* Hardware Availability: Raffle Sale from [Densus](https://www.instagram.com/densusdesign/) + +Make example for this keyboard (after setting up your build environment): + + make cipulot/ec_alveus/1_2_0:default + +Flashing example for this keyboard: + + make cipulot/ec_alveus/1_2_0: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**: Long short the exposed pads on the top of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk new file mode 100644 index 000000000000..b8929fa590d7 --- /dev/null +++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += matrix.c ec_switch_matrix.c diff --git a/keyboards/contender/config.h b/keyboards/contender/config.h index 971253f396aa..ef0a28061108 100644 --- a/keyboards/contender/config.h +++ b/keyboards/contender/config.h @@ -18,14 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 33 -#define RGBLIGHT_LED_MAP { \ - 0, 1, 2, 3, \ - 7, 6, 5, 4, \ - 8, 9, 10, 11, \ - 15, 14, 13, 12, \ - 16, 17, 18, 19, \ - 22, 21, 20, \ - 25, 24, 23, 26, 27, 28, 29, 30, 31, 32 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/contender/info.json b/keyboards/contender/info.json index 8a81ae164d7a..3eaaf23cd41d 100644 --- a/keyboards/contender/info.json +++ b/keyboards/contender/info.json @@ -12,7 +12,8 @@ "pin": "C6" }, "rgblight": { - "max_brightness": 32 + "max_brightness": 32, + "led_map": [0, 1, 2, 3, 7, 6, 5, 4, 8, 9, 10, 11, 15, 14, 13, 12, 16, 17, 18, 19, 22, 21, 20, 25, 24, 23, 26, 27, 28, 29, 30, 31, 32] }, "matrix_pins": { "cols": ["C7", "D6", "B3", "B0", "B1"], diff --git a/keyboards/crkbd/keymaps/thunderbird2086/config.h b/keyboards/crkbd/keymaps/thunderbird2086/config.h index ad2bfcabc7c7..8251bc9b8fc2 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/config.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/config.h @@ -14,6 +14,7 @@ # undef TAPPING_TERM #endif #define TAPPING_TERM 200 +#define VER_NEWLINE_WAIT 200 // in milliseconds #define NO_ACTION_ONESHOT @@ -32,63 +33,80 @@ #define RGBLIGHT_SLEEP #if defined(RGBLIGHT_ENABLE) +# define RGBLIGHT_LAYERS # define RGBLIGHT_LIMIT_VAL 150 # define RGBLIGHT_HUE_STEP 16 # define RGBLIGHT_SAT_STEP 32 # define RGBLIGHT_VAL_STEP 32 +# define RGBLIGHT_EFFECT_ALTERING +# 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_KNIGHT +# define RGBLIGHT_EFFECT_RGB_TEST +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_TWINKLE #endif #if defined(RGB_MATRIX_ENABLE) -# define RGB_MATRIX_KEYPRESSES // reacts to keypresses -# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 +# define SPLIT_LAYER_STATE_ENABLE +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# 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 32 -# define RGB_MATRIX_SAT_STEP 64 -# define RGB_MATRIX_VAL_STEP 64 -# define RGB_MATRIX_SPD_STEP 20 -# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR +# define RGB_MATRIX_HUE_STEP 32 +# define RGB_MATRIX_SAT_STEP 64 +# define RGB_MATRIX_VAL_STEP 64 +# define RGB_MATRIX_SPD_STEP 20 +# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR /* 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 +# define ENABLE_RGB_MATRIX_ALPHAS_MODS # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_BREATHING +# 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 -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# undef ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT # undef 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 -# define 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_DUAL_BEACON +# define 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_FRACTAL +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# undef ENABLE_RGB_MATRIX_PIXEL_RAIN # 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 -# 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 +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN + +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# undef ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# undef ENABLE_RGB_MATRIX_SOLID_SPLASH +# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h index cb10a3ac0748..90b26b88a4e0 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/keycodes.h @@ -5,12 +5,15 @@ enum custom_keycodes { // Layer Macros - COLEMAK = SAFE_RANGE, + COLEMAK = QK_USER, QWERTY, FUNCTION, CODE, ADJUST, +# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) RGBRST, +# endif + VRSN, // Secret Macros M_XXX1, M_XXX2, diff --git a/keyboards/crkbd/keymaps/thunderbird2086/keymap.c b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c index 7bc23db8aa78..69c5d25fd445 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/keymap.c +++ b/keyboards/crkbd/keymaps/thunderbird2086/keymap.c @@ -80,6 +80,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format off +#if defined(RGBLIGHT_ENABLE) +__attribute__((weak)) +void set_rgb_by_layer(layer_state_t state) { + return; +} +#endif + layer_state_t layer_state_set_user(layer_state_t state) { +# if defined(RGBLIGHT_ENABLE) + set_rgb_by_layer(state); +# endif return update_tri_layer_state(state, _FUNCTION, _ADJUST, _SECRET); } diff --git a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h index ba41cd922349..db47ea65ed6d 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h +++ b/keyboards/crkbd/keymaps/thunderbird2086/layers_block.h @@ -48,10 +48,10 @@ #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) # define ________________________ADJUST_L2________________________ RGBRST , XXXXXXX , RGB_SPI , RGB_SAI , RGB_HUI , RGB_VAI -# define ________________________ADJUST_L3________________________ EE_CLR , XXXXXXX , RGB_SPD , RGB_SAD , RGB_HUD , RGB_VAD +# define ________________________ADJUST_L3________________________ EE_CLR , VRSN , RGB_SPD , RGB_SAD , RGB_HUD , RGB_VAD #else # define ________________________ADJUST_L2________________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX -# define ________________________ADJUST_L3________________________ EE_CLR , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX +# define ________________________ADJUST_L3________________________ EE_CLR , VRSN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX #endif #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/process_records.c b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c index 381cf281e5cc..46b9126677f3 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/process_records.c +++ b/keyboards/crkbd/keymaps/thunderbird2086/process_records.c @@ -4,6 +4,7 @@ #include QMK_KEYBOARD_H #include "keycodes.h" +#include "version.h" __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { @@ -23,18 +24,31 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) { #endif bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); + if (record->event.pressed) { + switch (keycode) { + case COLEMAK: + set_single_persistent_default_layer(_COLEMAK); + break; + case QWERTY: + set_single_persistent_default_layer(_QWERTY); + break; +# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) + case RGBRST: +# if defined(RGBLIGHT_ENABLE) + eeconfig_update_rgblight_default(); + rgblight_enable(); +# else + eeconfig_update_rgb_matrix_default(); +# endif + break; +# endif + case VRSN: + send_string( + "# qmk " QMK_VERSION "\n" SS_DELAY(VER_NEWLINE_WAIT) + "# " QMK_KEYBOARD "/" QMK_KEYMAP "\n" SS_DELAY(VER_NEWLINE_WAIT) + "# built on: " QMK_BUILDDATE "\n"); + break; } - break; } return process_record_keymap(keycode, record) && process_record_secrets(keycode, record) diff --git a/keyboards/crkbd/keymaps/thunderbird2086/readme.md b/keyboards/crkbd/keymaps/thunderbird2086/readme.md index 6400309fe8d7..cb57f20aecbd 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/readme.md +++ b/keyboards/crkbd/keymaps/thunderbird2086/readme.md @@ -54,7 +54,7 @@ The concept is Mac and **baby finger** friendly keymap. | --- | --- | --- | | ESC | Caps lock | | -- ADJUST: RGB control, Power control, default layer setting and reset +- ADJUST: RGB control, Power control, default layer setting, QMK version and reset ![adjust](https://i.imgur.com/uDIhigd.png) - SECRET: hold `ADJUST` and `FUNCTION` to activate diff --git a/keyboards/crkbd/keymaps/thunderbird2086/rgb.c b/keyboards/crkbd/keymaps/thunderbird2086/rgb.c new file mode 100644 index 000000000000..d9b0003c8817 --- /dev/null +++ b/keyboards/crkbd/keymaps/thunderbird2086/rgb.c @@ -0,0 +1,61 @@ +// Copyright 2023 Allen Choi (@thunderbird2086) +// SPDX-License-Identifier: GPL-2.0-or-later + +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) +# include QMK_KEYBOARD_H + +# include "keycodes.h" + +# ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM _rgb_layer_0[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 56, HSV_BLUE} +); +const rgblight_segment_t PROGMEM _rgb_layer_1[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 56, HSV_GREEN} +); +const rgblight_segment_t PROGMEM _rgb_layer_2[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 56, HSV_YELLOW} +); + +const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST( + _rgb_layer_0, + _rgb_layer_1, + _rgb_layer_2 +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = _rgb_layers; +} + +void set_rgb_by_layer(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, _CODE)); + rgblight_set_layer_state(1, layer_state_cmp(state, _FUNCTION)); + rgblight_set_layer_state(2, layer_state_cmp(state, _ADJUST)); +} + +# else + +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + for (uint8_t i = led_min; i < led_max; i++) { + switch(get_highest_layer(layer_state|default_layer_state)) { + case _CODE: + rgb_matrix_set_color(i, RGB_BLUE); + break; + case _FUNCTION: + rgb_matrix_set_color(i, RGB_GREEN); + break; + case _ADJUST: + rgb_matrix_set_color(i, RGB_YELLOW); + // RGB_WHITE caused crash + break; + default: + break; + } + } + return false; +} + +# endif +#endif diff --git a/keyboards/crkbd/keymaps/thunderbird2086/rules.mk b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk index 4da48db08e39..adc61ea60d3d 100644 --- a/keyboards/crkbd/keymaps/thunderbird2086/rules.mk +++ b/keyboards/crkbd/keymaps/thunderbird2086/rules.mk @@ -11,6 +11,7 @@ TAP_DANCE_ENABLE = yes SRC += oled.c SRC += process_records.c +SRC += rgb.c SRC += tap_dances.c ifneq ("$(wildcard keyboards/crkbd/keymaps/thunderbird2086/secrets.c)","") diff --git a/keyboards/crkbd/rev1/config.h b/keyboards/crkbd/rev1/config.h index f3e3bc4c51d4..422f5eb5cd39 100644 --- a/keyboards/crkbd/rev1/config.h +++ b/keyboards/crkbd/rev1/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE # define RGBLED_NUM 54 // Number of LEDs -# define RGBLIGHT_SPLIT #endif #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/custommk/ergostrafer/config.h b/keyboards/custommk/ergostrafer/config.h new file mode 100644 index 000000000000..c5a0ec75b575 --- /dev/null +++ b/keyboards/custommk/ergostrafer/config.h @@ -0,0 +1,26 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// FRAM configuration +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN B5 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN B4 +#define SPI_MISO_PAL_MODE 5 + +#define TAP_CODE_DELAY 10 + +// Audio configuration +#define AUDIO_PIN B8 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD5 \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/halconf.h b/keyboards/custommk/ergostrafer/halconf.h new file mode 100644 index 000000000000..aed037ba2a49 --- /dev/null +++ b/keyboards/custommk/ergostrafer/halconf.h @@ -0,0 +1,30 @@ +/* Copyright 2023 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#define SERIAL_BUFFERS_SIZE 256 + +// This enables interrupt-driven mode +#define SPI_USE_WAIT TRUE + +#include_next diff --git a/keyboards/custommk/ergostrafer/info.json b/keyboards/custommk/ergostrafer/info.json new file mode 100644 index 000000000000..66f1562fd986 --- /dev/null +++ b/keyboards/custommk/ergostrafer/info.json @@ -0,0 +1,83 @@ +{ + "manufacturer": "customMK", + "keyboard_name": "ErgoStrafer", + "maintainer": "customMK", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "audio": true + }, + "matrix_pins": { + "cols": ["B0", "A1", "A2", "A3", "A6", "B6", "B10"], + "rows": ["C13", "C14", "C15", "B1", "A7", "A5"] + }, + "processor": "STM32F411", + "url": "https://shop.custommk.com/collections/ergostrafer/products/ergostrafer", + "usb": { + "device_version": "1.0.0", + "pid": "0xFAB8", + "vid": "0xF35B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "label":"F9", "x":7.5, "y":0 }, + { "matrix": [0, 1], "label":"7", "x":1.5, "y":1.25 }, + { "matrix": [0, 2], "label":"8", "x":2.5, "y":1.25 }, + { "matrix": [0, 3], "label":"9", "x":3.5, "y":1.25 }, + { "matrix": [0, 4], "label":"0", "x":4.5, "y":1.25 }, + { "matrix": [0, 5], "label":"-", "x":5.5, "y":1.25 }, + { "matrix": [0, 6], "label":"T", "x":7.25, "y":3.25, "w":1.5 }, + + { "matrix": [1, 0], "label":"PrtScr", "x":7.5, "y":1 }, + { "matrix": [1, 1], "label":"1", "x":1, "y":2.25 }, + { "matrix": [1, 2], "label":"2", "x":2, "y":2.25 }, + { "matrix": [1, 3], "label":"3", "x":3, "y":2.25 }, + { "matrix": [1, 4], "label":"5", "x":5, "y":2.25 }, + { "matrix": [1, 5], "label":"6", "x":6, "y":2.25 }, + { "matrix": [1, 6], "label":"G", "x":7.25, "y":4.25, "w":1.5 }, + + { "matrix": [2, 0], "label":"F5", "x":7.5, "y":2 }, + { "matrix": [2, 1], "label":"Tab", "x":1, "y":3.5 }, + { "matrix": [2, 2], "label":"Q", "x":2.5, "y":3.4 }, + { "matrix": [2, 3], "label":"4", "x":4, "y":2.25 }, + { "matrix": [2, 4], "label":"E", "x":4.5, "y":3.4 }, + { "matrix": [2, 5], "label":"R", "x":6, "y":3.3 }, + { "matrix": [2, 6], "label":"B", "x":6.5, "y":5.75, "w":1.5 }, + + { "matrix": [3, 0], "label":"Caps Lock", "x":0, "y":3.5 }, + { "matrix": [3, 1], "label":"L Alt", "x":0.25, "y":4.75, "w":1.5 }, + { "matrix": [3, 2], "label":"A", "x":2.5, "y":4.5 }, + { "matrix": [3, 3], "label":"W", "x":3.5, "y":3.4 }, + { "matrix": [3, 4], "label":"D", "x":4.5, "y":4.5 }, + { "matrix": [3, 5], "label":"F", "x":6, "y":4.3 }, + { "matrix": [3, 6], "label":"P", "x":8, "y":5.75 }, + + { "matrix": [4, 1], "label":"L Shift", "x":0.25, "y":5.75, "w":1.5 }, + { "matrix": [4, 2], "label":"Z", "x":2.5, "y":5.6 }, + { "matrix": [4, 3], "label":"S", "x":3.5, "y":4.5 }, + { "matrix": [4, 5], "label":"V", "x":5, "y":5.75, "w":1.5 }, + { "matrix": [4, 6], "label":"Space", "x":6.5, "y":6.85, "w":1.75 } + + { "matrix": [5, 1], "label":"L Ctrl Duck", "x":0.25, "y":6.75, "w":1.5 }, + { "matrix": [5, 3], "label":"X", "x":3.5, "y":5.6 }, + { "matrix": [5, 5], "label":"C", "x":4.75, "y":6.85, "w":1.75 }, + { "matrix": [5, 6], "label":"L Ctrl", "x":9.5, "y":5.75 } + ] + } + }, + "encoder": { + "rotary": [ + { "pin_a": "A8", "pin_b": "A4"}, + { "pin_a": "B12", "pin_b": "B14"}, + { "pin_a": "B15", "pin_b": "A15"} + ] + } +} \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/default/keymap.c b/keyboards/custommk/ergostrafer/keymaps/default/keymap.c new file mode 100644 index 000000000000..31ceb4f1e698 --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T, + KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G, + KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B, + KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P, + KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC, + KC_LCTL, KC_X, KC_C, KC_LCTL + ) +}; + +#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_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/default/rules.mk b/keyboards/custommk/ergostrafer/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/via/config.h b/keyboards/custommk/ergostrafer/keymaps/via/config.h new file mode 100644 index 000000000000..81f399d46ba6 --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/via/config.h @@ -0,0 +1,13 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// With 8k FRAM, max out dynamic keymap layers and macros +// 7x6 matrix (84 bytes) and three encoders (12 bytes) consume 96 bytes per layer +// 32 layers consumes 3072 bytes +#define DYNAMIC_KEYMAP_LAYER_COUNT 32 + +// Most of the remaining space can be used for macros +// QMK Macro keycode range allows up to 128 macros +#define DYNAMIC_KEYMAP_MACRO_COUNT 128 diff --git a/keyboards/custommk/ergostrafer/keymaps/via/keymap.c b/keyboards/custommk/ergostrafer/keymaps/via/keymap.c new file mode 100644 index 000000000000..68f1df1c26d3 --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2023 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T, + KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G, + KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B, + KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P, + KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC, + KC_LCTL, KC_X, KC_C, KC_LCTL + ) +}; + +//#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_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +//#endif \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/keymaps/via/rules.mk b/keyboards/custommk/ergostrafer/keymaps/via/rules.mk new file mode 100644 index 000000000000..4253f570f0bb --- /dev/null +++ b/keyboards/custommk/ergostrafer/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/mcuconf.h b/keyboards/custommk/ergostrafer/mcuconf.h new file mode 100644 index 000000000000..160b94f786ec --- /dev/null +++ b/keyboards/custommk/ergostrafer/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2023 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +// Used for audio +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +// Used for FRAM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer/readme.md b/keyboards/custommk/ergostrafer/readme.md new file mode 100644 index 000000000000..dab089647ffc --- /dev/null +++ b/keyboards/custommk/ergostrafer/readme.md @@ -0,0 +1,27 @@ +# ergostrafer + +![ergostrafer](https://i.imgur.com/ncJgD3jh.jpeg) + +ErgoStrafer is a gaming mechanical keyboard that reproduces the layout of the discontinued SteelSeries Merc Stealth a.k.a. Zboard. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: ErgoStrafer +* Hardware Availability: [customMK](https://shop.custommk.com/collections/ergostrafer/products/ergostrafer) + +Make example for this keyboard (after setting up your build environment): + + make custommk/ergostrafer:default + +Flashing example for this keyboard: + + make custommk/ergostrafer: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 (the "Load" key in the top right corner) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/custommk/ergostrafer/rules.mk b/keyboards/custommk/ergostrafer/rules.mk new file mode 100644 index 000000000000..ee519ea8b55b --- /dev/null +++ b/keyboards/custommk/ergostrafer/rules.mk @@ -0,0 +1,3 @@ +EEPROM_DRIVER = spi + +AUDIO_DRIVER = pwm_hardware diff --git a/keyboards/doio/kb30/info.json b/keyboards/doio/kb30/info.json index 3f3fa1c33270..71a300b9cd81 100644 --- a/keyboards/doio/kb30/info.json +++ b/keyboards/doio/kb30/info.json @@ -2,7 +2,7 @@ "keyboard_name": "KB30-01", "manufacturer": "DOIO", "url": "", - "maintainer": "Alice", + "maintainer": "DOIO2022", "usb": { "vid": "0xD010", "pid": "0x3001", @@ -49,33 +49,31 @@ {"matrix": [1, 5], "x": 5.25, "y": 1}, {"matrix": [1, 6], "x": 6.25, "y": 1}, - {"matrix": [2, 0], "x": 8.25, "y": 2}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 1], "x": 0, "y": 2}, - {"matrix": [2, 2], "x": 1, "y": 2}, - {"matrix": [2, 3], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 4.25, "y": 2}, + {"matrix": [2, 4], "x": 5.25, "y": 2}, + {"matrix": [2, 5], "x": 6.25, "y": 2}, - {"matrix": [2, 4], "x": 4.25, "y": 2}, - {"matrix": [2, 5], "x": 5.25, "y": 2}, - {"matrix": [3, 0], "x": 6.25, "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, "h": 2}, - {"matrix": [3, 1], "x": 11, "y": 2}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, - {"matrix": [3, 2], "x": 0, "y": 3}, - {"matrix": [3, 3], "x": 1, "y": 3}, - {"matrix": [3, 5], "x": 2, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 1], "x": 2, "y": 4}, - {"matrix": [4, 0], "x": 4.25, "y": 3, "h": 2}, - {"matrix": [4, 1], "x": 5.25, "y": 3}, + {"matrix": [4, 2], "x": 4.25, "y": 4}, + {"matrix": [4, 3], "x": 5.25, "y": 4}, + {"matrix": [4, 4], "x": 6.25, "y": 4}, - {"matrix": [4, 2], "x": 9, "y": 4}, - - {"matrix": [4, 3], "x": 0, "y": 4, "w": 2}, - {"matrix": [4, 4], "x": 2, "y": 4}, - - {"matrix": [5, 4], "x": 4.25, "y": 4}, - {"matrix": [5, 5], "x": 5.25, "y": 4}, - {"matrix": [5, 6], "x": 6.25, "y": 4} + {"matrix": [5, 4], "x": 7.75, "y": 1}, + {"matrix": [5, 5], "x": 9.75, "y": 1}, + {"matrix": [5, 6], "x": 7.75, "y": 2, "w": 3, "h": 3} ] } } diff --git a/keyboards/doio/kb30/keymaps/default/keymap.c b/keyboards/doio/kb30/keymaps/default/keymap.c index fb06acfd8034..2e385d24e308 100644 --- a/keyboards/doio/kb30/keymaps/default/keymap.c +++ b/keyboards/doio/kb30/keymaps/default/keymap.c @@ -15,65 +15,47 @@ * along with this program. If not, see . */ - #include QMK_KEYBOARD_H - enum layer_names { -_LAY0, -_LAY1, -_LAY2, -_LAY3 + _LAY0, + _LAY1, + _LAY2, + _LAY3 }; - - - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, - KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, - KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, - KC_MPLY, TO(1), KC_TRNS), + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUS, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), [_LAY1] = 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, TO(2), KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(2), KC_TRNS), [_LAY2] = 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, 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, TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, - KC_TRNS, TO(0), KC_TRNS) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) }; - - - - - - - - - - - - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, diff --git a/keyboards/doio/kb30/keymaps/via/keymap.c b/keyboards/doio/kb30/keymaps/via/keymap.c index 2890fe604a1c..2e385d24e308 100644 --- a/keyboards/doio/kb30/keymaps/via/keymap.c +++ b/keyboards/doio/kb30/keymaps/via/keymap.c @@ -15,54 +15,47 @@ * along with this program. If not, see . */ - #include QMK_KEYBOARD_H - enum layer_names { -_LAY0, -_LAY1, -_LAY2, -_LAY3 + _LAY0, + _LAY1, + _LAY2, + _LAY3 }; - - - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAY0] = LAYOUT( - KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUSE, - KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, - KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, - KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, - KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, - KC_MPLY, TO(1), KC_TRNS), + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_SCRL, KC_PAUS, + KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP, + KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, + KC_P1, KC_P2, KC_P3, LT(3,KC_PENT), KC_UP, + KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, + KC_MPLY, TO(1), KC_TRNS), [_LAY1] = 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, TO(2), KC_TRNS), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(2), KC_TRNS), [_LAY2] = 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, 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, TO(3), KC_TRNS), [_LAY3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, - KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, - KC_TRNS, TO(0), KC_TRNS) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_SPI, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, RGB_VAD, RGB_TOG, RGB_VAI, + KC_TRNS, TO(0), KC_TRNS) }; - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAY0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, diff --git a/keyboards/doio/kb30/readme.md b/keyboards/doio/kb30/readme.md new file mode 100644 index 000000000000..9e66c8993fa1 --- /dev/null +++ b/keyboards/doio/kb30/readme.md @@ -0,0 +1,27 @@ +# Megalodon DOIO 30% Designer Keyboard + +![Megalodon DOIO 30% Designer Keyboard](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/doio/kb30/KB30-01-_0000_778b3a43-228a-433d-94ae-9129f20b2ede_1024xc.jpg) + +A hotswappable 30-key macropad with 3 rotary encoders (2 are clickable), an OLED screen, and RGB lighting. + +* Keyboard Maintainer: [DOIO2022](https://github.com/DOIO2022) +* Hardware Supported: Megalodon DOIO 30% Designer Keyboard with STM32F103 +* Hardware Availability: [KeebMonkey](https://www.keebmonkey.com/products/megalodon-doio-30-designer-keyboard) + +Make example for this keyboard (after setting up your build environment): + + make doio/kb30:default + +## Accessing Bootloader Mode and Flashing + +To access Bootloader Mode, do one of the following: + +* **Bootmagic reset**: Hold the top left key of the keyboard while connecting the USB cable. +* **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. + +Flashing example for this keyboard: + + make doio/kb30: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/doppelganger/config.h b/keyboards/doppelganger/config.h index b61d89058394..35608a3323c2 100644 --- a/keyboards/doppelganger/config.h +++ b/keyboards/doppelganger/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . // #define USE_I2C #define RGBLED_NUM 2 -#define RGBLIGHT_SPLIT /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/draculad/config.h b/keyboards/draculad/config.h index a9f78283d0c8..312d3c290be1 100644 --- a/keyboards/draculad/config.h +++ b/keyboards/draculad/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_STATIC_GRADIENT #define RGBLIGHT_EFFECT_BREATHING #define RGBLED_NUM 10 -#define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/draculad/info.json b/keyboards/draculad/info.json index 57250d57efed..87eff3a3280f 100644 --- a/keyboards/draculad/info.json +++ b/keyboards/draculad/info.json @@ -8,6 +8,9 @@ "pid": "0x1B1E", "device_version": "0.0.1" }, + "rgblight": { + "split": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/drop/thekey/v2/config.h b/keyboards/drop/thekey/v2/config.h deleted file mode 100644 index ca6944c2c9a0..000000000000 --- a/keyboards/drop/thekey/v2/config.h +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2023 Massdrop, Inc. -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#define RGBLIGHT_LED_MAP {4, 0, 1, 2, 3} diff --git a/keyboards/drop/thekey/v2/info.json b/keyboards/drop/thekey/v2/info.json index 7870599fe181..ced9901bea0b 100644 --- a/keyboards/drop/thekey/v2/info.json +++ b/keyboards/drop/thekey/v2/info.json @@ -25,6 +25,7 @@ "diode_direction": "ROW2COL", "rgblight": { "led_count": 5, + "led_map": [4, 0, 1, 2, 3], "sleep": true, "animations": { "alternating": true, diff --git a/keyboards/dztech/pluto/info.json b/keyboards/dztech/pluto/info.json new file mode 100644 index 000000000000..ab201befa314 --- /dev/null +++ b/keyboards/dztech/pluto/info.json @@ -0,0 +1,191 @@ +{ + "manufacturer": "DZTECH", + "keyboard_name": "PLUTO", + "maintainer": "moyi4681", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP16", "GP15", "GP14", "GP13", "GP0"], + "rows": ["GP1", "GP18", "GP17", "GP12", "GP11"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0006", + "vid": "0x445A" + }, + "layouts": { + "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": [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": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15.25, "y": 0 }, + { "matrix": [2, 12], "x": 16.25, "y": 0 }, + { "matrix": [2, 13], "x": 17.25, "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], "x": 12.75, "y": 2 }, + { "matrix": [1, 15], "x": 15.25, "y": 1 }, + { "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "matrix": [2, 15], "x": 17.25, "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": [1, 14], "w": 1.25, "x": 12.75, "y": 1 }, + + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "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], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 15.25, "y": 3 }, + { "matrix": [3, 14], "x": 16.25, "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, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }, + { "matrix": [3, 15], "x": 15.25, "y": 4 }, + { "matrix": [4, 14], "x": 16.25, "y": 4 }, + { "matrix": [4, 15], "x": 17.25, "y": 4 } + ] + }, + "LAYOUT_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 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15.25, "y": 0 }, + { "matrix": [2, 12], "x": 16.25, "y": 0 }, + { "matrix": [2, 13], "x": 17.25, "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 }, + { "h": 2, "matrix": [1, 14], "w": 1.25, "x": 13.75, "y": 1 }, + { "matrix": [1, 15], "x": 15.25, "y": 1 }, + { "matrix": [2, 14], "x": 16.25, "y": 1 }, + { "matrix": [2, 15], "x": 17.25, "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": [1, 13], "x": 12.75, "y": 2 }, + + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "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], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 15.25, "y": 3 }, + { "matrix": [3, 14], "x": 16.25, "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, 7], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 }, + { "matrix": [3, 15], "x": 15.25, "y": 4 }, + { "matrix": [4, 14], "x": 16.25, "y": 4 }, + { "matrix": [4, 15], "x": 17.25, "y": 4 } + ] + } + } +} diff --git a/keyboards/dztech/pluto/keymaps/default/keymap.c b/keyboards/dztech/pluto/keymaps/default/keymap.c new file mode 100644 index 000000000000..9edd2f178f05 --- /dev/null +++ b/keyboards/dztech/pluto/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + 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_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_NUHS, 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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/dztech/pluto/keymaps/via/keymap.c b/keyboards/dztech/pluto/keymaps/via/keymap.c new file mode 100644 index 000000000000..9edd2f178f05 --- /dev/null +++ b/keyboards/dztech/pluto/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 DZTECH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + 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_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_NUHS, 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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/dztech/pluto/keymaps/via/rules.mk b/keyboards/dztech/pluto/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/dztech/pluto/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dztech/pluto/readme.md b/keyboards/dztech/pluto/readme.md new file mode 100644 index 000000000000..e4db0deb39fe --- /dev/null +++ b/keyboards/dztech/pluto/readme.md @@ -0,0 +1,30 @@ +# PLUTO + +![PLUTO](https://i.imgur.com/BWVvKMO.jpg) + +The main purpose of this board is to introduce more people to the best layout. +This board was originally designed to be O-ring gasket mount only, Top mount was added to make the board whole. +Sticking with a mimal design, the engraving of planets was replaced with the Logo surrounding with pluto moons and planets. +Pluto now also features an accent Piece with an engraving of Pluto Symbol below the nav cluster. + +* Keyboard Maintainer: [DZTECH](https://github.com/moyi4681) +* Hardware Supported: DZTECH +* Hardware Availability: KBDFANS + +Make example for this keyboard (after setting up your build environment): + + make dztech/pluto:default + +Flashing example for this keyboard: + + make dztech/pluto: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/dztech/pluto/rules.mk b/keyboards/dztech/pluto/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/dztech/pluto/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h index 0c23a1296901..befc1146177e 100644 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -139,25 +139,3 @@ typedef union { } keyboard_config_t; extern keyboard_config_t keyboard_config; - -/* ---- LEFT HAND ---- ---- RIGHT HAND ---- */ -#define LED_LAYOUT_ergodox_pretty( \ - L01,L02,L03,L04,L05, R01,R02,R03,R04,R05, \ - 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 ) \ - \ - /* matrix positions */ \ - { R01, R02, R03, R04, R05, \ - R11, R12, R13, R14, R15, \ - R21, R22, R23, R24, R25, \ - R31, R32, R33, R34, R35, \ - R42, R43, R44, R45, \ - \ - L05, L04, L03, L02, L01, \ - L15, L14, L13, L12, L11, \ - L25, L24, L23, L22, L21, \ - L35, L34, L33, L32, L31, \ - L44, L43, L42, L41 \ - } diff --git a/keyboards/fjlabs/swordfish/info.json b/keyboards/fjlabs/swordfish/info.json index 98fb7f6f493c..733be971de65 100644 --- a/keyboards/fjlabs/swordfish/info.json +++ b/keyboards/fjlabs/swordfish/info.json @@ -19,82 +19,159 @@ "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { - "LAYOUT_alice_all": { + "LAYOUT_2u_bs": { "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": 8.5, "y": 0}, - {"matrix": [0, 8], "x": 9.5, "y": 0}, - {"matrix": [0, 9], "x": 10.5, "y": 0}, - {"matrix": [0, 10], "x": 11.5, "y": 0}, - {"matrix": [0, 11], "x": 12.5, "y": 0}, - {"matrix": [0, 12], "x": 13.5, "y": 0}, - {"matrix": [0, 13], "x": 14.5, "y": 0}, - {"matrix": [0, 14], "x": 15.5, "y": 0}, - {"matrix": [1, 0], "x": 16.75, "y": 0}, + {"matrix": [1, 5], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 9, "y": 0}, + {"matrix": [0, 7], "x": 10, "y": 0}, + {"matrix": [0, 8], "x": 11, "y": 0}, + {"matrix": [0, 9], "x": 12, "y": 0}, + {"matrix": [0, 10], "x": 13, "y": 0}, + {"matrix": [0, 11], "x": 14, "y": 0}, + {"matrix": [0, 12], "x": 15, "y": 0, "w": 2}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, - {"matrix": [1, 1], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 1.5, "y": 1}, - {"matrix": [1, 3], "x": 2.5, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1}, - {"matrix": [1, 5], "x": 4.5, "y": 1}, - {"matrix": [1, 6], "x": 5.5, "y": 1}, - {"matrix": [1, 7], "x": 8, "y": 1}, - {"matrix": [1, 8], "x": 9, "y": 1}, - {"matrix": [1, 9], "x": 10, "y": 1}, - {"matrix": [1, 10], "x": 11, "y": 1}, - {"matrix": [1, 11], "x": 12, "y": 1}, - {"matrix": [1, 12], "x": 13, "y": 1}, - {"matrix": [1, 13], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [2, 0], "x": 16.75, "y": 1}, + {"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": [2, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 8.5, "y": 1}, + {"matrix": [1, 7], "x": 9.5, "y": 1}, + {"matrix": [1, 8], "x": 10.5, "y": 1}, + {"matrix": [1, 9], "x": 11.5, "y": 1}, + {"matrix": [1, 10], "x": 12.5, "y": 1}, + {"matrix": [1, 11], "x": 13.5, "y": 1}, + {"matrix": [1, 12], "x": 14.5, "y": 1}, + {"matrix": [1, 13], "x": 15.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 17.25, "y": 1}, - {"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 1.75, "y": 2}, - {"matrix": [2, 3], "x": 2.75, "y": 2}, - {"matrix": [2, 4], "x": 3.75, "y": 2}, - {"matrix": [2, 5], "x": 4.75, "y": 2}, - {"matrix": [2, 6], "x": 5.75, "y": 2}, - {"matrix": [2, 7], "x": 8.25, "y": 2}, - {"matrix": [2, 8], "x": 9.25, "y": 2}, - {"matrix": [2, 9], "x": 10.25, "y": 2}, - {"matrix": [2, 10], "x": 11.25, "y": 2}, - {"matrix": [2, 11], "x": 12.25, "y": 2}, - {"matrix": [2, 13], "x": 13.25, "y": 2}, - {"matrix": [2, 14], "x": 14.25, "y": 2, "w": 2.25}, - {"matrix": [3, 0], "x": 16.75, "y": 2}, + {"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": [3, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 8.75, "y": 2}, + {"matrix": [2, 7], "x": 9.75, "y": 2}, + {"matrix": [2, 8], "x": 10.75, "y": 2}, + {"matrix": [2, 9], "x": 11.75, "y": 2}, + {"matrix": [2, 10], "x": 12.75, "y": 2}, + {"matrix": [2, 11], "x": 13.75, "y": 2}, + {"matrix": [2, 13], "x": 14.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 17.25, "y": 2}, - {"matrix": [3, 1], "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": 8, "y": 3}, - {"matrix": [3, 8], "x": 9, "y": 3}, - {"matrix": [3, 9], "x": 10, "y": 3}, - {"matrix": [3, 10], "x": 11, "y": 3}, - {"matrix": [3, 11], "x": 12, "y": 3}, - {"matrix": [3, 12], "x": 13, "y": 3}, - {"matrix": [3, 13], "x": 14, "y": 3, "w": 1.5}, - {"matrix": [4, 0], "x": 15.75, "y": 3.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": [4, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 8.25, "y": 3}, + {"matrix": [3, 7], "x": 9.25, "y": 3}, + {"matrix": [3, 8], "x": 10.25, "y": 3}, + {"matrix": [3, 9], "x": 11.25, "y": 3}, + {"matrix": [3, 10], "x": 12.25, "y": 3}, + {"matrix": [3, 11], "x": 13.25, "y": 3}, + {"matrix": [3, 12], "x": 14.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 16.25, "y": 3.25}, - {"matrix": [4, 1], "x": 0, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 4], "x": 3.25, "y": 4, "w": 1.25}, - {"matrix": [4, 5], "x": 4.5, "y": 4, "w": 2.75}, - {"matrix": [4, 7], "x": 8, "y": 4, "w": 2.25}, - {"matrix": [4, 8], "x": 10.25, "y": 4, "w": 1.25}, - {"matrix": [4, 10], "x": 12, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 13.25, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 14.75, "y": 4.25}, - {"matrix": [4, 13], "x": 15.75, "y": 4.25}, - {"matrix": [4, 14], "x": 16.75, "y": 4.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": 3.25, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4.5, "y": 4, "w": 2.75}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 2.25}, + {"matrix": [4, 8], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 15.25, "y": 4.25}, + {"matrix": [4, 13], "x": 16.25, "y": 4.25}, + {"matrix": [4, 14], "x": 17.25, "y": 4.25} + ] + }, + "LAYOUT_split_bs": { + "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": [1, 5], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 9, "y": 0}, + {"matrix": [0, 7], "x": 10, "y": 0}, + {"matrix": [0, 8], "x": 11, "y": 0}, + {"matrix": [0, 9], "x": 12, "y": 0}, + {"matrix": [0, 10], "x": 13, "y": 0}, + {"matrix": [0, 11], "x": 14, "y": 0}, + {"matrix": [0, 12], "x": 15, "y": 0}, + {"matrix": [0, 13], "x": 16, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "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": [2, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 8.5, "y": 1}, + {"matrix": [1, 7], "x": 9.5, "y": 1}, + {"matrix": [1, 8], "x": 10.5, "y": 1}, + {"matrix": [1, 9], "x": 11.5, "y": 1}, + {"matrix": [1, 10], "x": 12.5, "y": 1}, + {"matrix": [1, 11], "x": 13.5, "y": 1}, + {"matrix": [1, 12], "x": 14.5, "y": 1}, + {"matrix": [1, 13], "x": 15.5, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 17.25, "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": [3, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 8.75, "y": 2}, + {"matrix": [2, 7], "x": 9.75, "y": 2}, + {"matrix": [2, 8], "x": 10.75, "y": 2}, + {"matrix": [2, 9], "x": 11.75, "y": 2}, + {"matrix": [2, 10], "x": 12.75, "y": 2}, + {"matrix": [2, 11], "x": 13.75, "y": 2}, + {"matrix": [2, 13], "x": 14.75, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 17.25, "y": 2}, + + {"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": [4, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 8.25, "y": 3}, + {"matrix": [3, 7], "x": 9.25, "y": 3}, + {"matrix": [3, 8], "x": 10.25, "y": 3}, + {"matrix": [3, 9], "x": 11.25, "y": 3}, + {"matrix": [3, 10], "x": 12.25, "y": 3}, + {"matrix": [3, 11], "x": 13.25, "y": 3}, + {"matrix": [3, 12], "x": 14.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 16.25, "y": 3.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": 3.25, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4.5, "y": 4, "w": 2.75}, + {"matrix": [4, 7], "x": 8.25, "y": 4, "w": 2.25}, + {"matrix": [4, 8], "x": 10.5, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 12.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 13.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 15.25, "y": 4.25}, + {"matrix": [4, 13], "x": 16.25, "y": 4.25}, + {"matrix": [4, 14], "x": 17.25, "y": 4.25} ] } } diff --git a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c index ecce4f1a7bfb..2b2c8cf19f78 100644 --- a/keyboards/fjlabs/swordfish/keymaps/default/keymap.c +++ b/keyboards/fjlabs/swordfish/keymaps/default/keymap.c @@ -21,19 +21,19 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_alice_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_MPLY, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_G, 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_B, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_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_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_BSPC, KC_VOLU, + 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_VOLD, + 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_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT_alice_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, RGB_MOD, RGB_RMOD, RGB_TOG, - 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, RGB_VAI, - 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, 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_PGUP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + [_LAYER1] = LAYOUT_split_bs( + KC_TRNS, 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_MOD, RGB_RMOD, RGB_TOG, + 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, RGB_VAI, + 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, 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_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ) }; diff --git a/keyboards/fjlabs/swordfish/keymaps/via/keymap.c b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c index 50ade4767ec1..7428985841b7 100644 --- a/keyboards/fjlabs/swordfish/keymaps/via/keymap.c +++ b/keyboards/fjlabs/swordfish/keymaps/via/keymap.c @@ -23,35 +23,35 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_alice_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_MPLY, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_VOLU, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_VOLD, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_G, 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_B, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_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_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_BSPC, KC_VOLU, + 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_VOLD, + 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_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT_alice_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, RGB_MOD, RGB_RMOD, RGB_TOG, - 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, RGB_VAI, - 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, 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_PGUP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END + [_LAYER1] = LAYOUT_split_bs( + KC_TRNS, 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_MOD, RGB_RMOD, RGB_TOG, + 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, RGB_VAI, + 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, 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_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END ), - [_LAYER2] = LAYOUT_alice_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER2] = LAYOUT_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_LAYER3] = LAYOUT_alice_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER3] = LAYOUT_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h new file mode 100755 index 000000000000..8828834d740c --- /dev/null +++ b/keyboards/flashquark/horizon_z/config.h @@ -0,0 +1,78 @@ +/* Copyright 2023 Flashquark + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#pragma once + + + +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +// 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 DRIVER_ADDR_1 0b1010000 +# define DRIVER_COUNT 1 +# 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 new file mode 100755 index 000000000000..da62deaf29bf --- /dev/null +++ b/keyboards/flashquark/horizon_z/horizon_z.c @@ -0,0 +1,95 @@ +/* Copyright 2023 Flashquark + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_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, B_13, A_13, C_13}, + {0, B_14, A_14, C_14}, + {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, E_13, D_13, F_13}, + {0, E_14, D_14, F_14}, + {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, H_13, G_13, I_13}, + {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_7, J_7, L_7}, + {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_14, J_14, L_14}, + {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}, + {0, K_15, J_15, L_15}, + {0, K_12, J_12, L_12}, + {0, K_13, J_13, L_13}, + {0, H_14, G_14, I_14}, +}; + + +#endif + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); + } + return true; +} diff --git a/keyboards/flashquark/horizon_z/info.json b/keyboards/flashquark/horizon_z/info.json new file mode 100755 index 000000000000..3e299442c542 --- /dev/null +++ b/keyboards/flashquark/horizon_z/info.json @@ -0,0 +1,162 @@ +{ + "manufacturer": "FLASHQUARK", + "keyboard_name": "Horizon_Z", + "maintainer": "FLASHQUARK", + "bootloader": "atmel-dfu", + "debounce": 3, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5"], + "rows": ["F0", "F1", "F4", "F5", "B4"] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "driver": "IS31FL3733", + "layout": [ + { "flags": 1, "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": 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": [0, 9], "x": 144, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 160, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 176, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 192, "y": 0 }, + { "flags": 1, "matrix": [0, 13], "x": 216, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 4, "y": 16 }, + { "flags": 4, "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": 72, "y": 16 }, + { "flags": 4, "matrix": [1, 5], "x": 88, "y": 16 }, + { "flags": 4, "matrix": [1, 6], "x": 104, "y": 16 }, + { "flags": 4, "matrix": [1, 7], "x": 120, "y": 16 }, + { "flags": 4, "matrix": [1, 8], "x": 136, "y": 16 }, + { "flags": 4, "matrix": [1, 9], "x": 152, "y": 16 }, + { "flags": 4, "matrix": [1, 10], "x": 168, "y": 16 }, + { "flags": 4, "matrix": [1, 11], "x": 184, "y": 16 }, + { "flags": 4, "matrix": [1, 12], "x": 200, "y": 16 }, + { "flags": 4, "matrix": [1, 13], "x": 220, "y": 16 }, + { "flags": 4, "matrix": [2, 0], "x": 6, "y": 32 }, + { "flags": 4, "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": 76, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 92, "y": 32 }, + { "flags": 4, "matrix": [2, 6], "x": 108, "y": 32 }, + { "flags": 4, "matrix": [2, 7], "x": 124, "y": 32 }, + { "flags": 4, "matrix": [2, 8], "x": 140, "y": 32 }, + { "flags": 4, "matrix": [2, 9], "x": 156, "y": 32 }, + { "flags": 4, "matrix": [2, 10], "x": 172, "y": 32 }, + { "flags": 4, "matrix": [2, 11], "x": 188, "y": 32 }, + { "flags": 1, "matrix": [2, 13], "x": 204, "y": 32 }, + { "flags": 1, "matrix": [3, 0], "x": 10, "y": 48 }, + { "flags": 4, "matrix": [3, 1], "x": 20, "y": 48 }, + { "flags": 4, "matrix": [3, 2], "x": 52, "y": 48 }, + { "flags": 4, "matrix": [3, 3], "x": 68, "y": 48 }, + { "flags": 4, "matrix": [3, 4], "x": 84, "y": 48 }, + { "flags": 4, "matrix": [3, 5], "x": 100, "y": 48 }, + { "flags": 4, "matrix": [3, 6], "x": 116, "y": 48 }, + { "flags": 4, "matrix": [3, 7], "x": 132, "y": 48 }, + { "flags": 4, "matrix": [3, 8], "x": 148, "y": 48 }, + { "flags": 4, "matrix": [3, 9], "x": 164, "y": 48 }, + { "flags": 4, "matrix": [3, 10], "x": 180, "y": 48 }, + { "flags": 1, "matrix": [3, 13], "x": 210, "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, 5], "x": 102, "y": 64 }, + { "flags": 1, "matrix": [4, 9], "x": 162, "y": 64 }, + { "flags": 1, "matrix": [4, 10], "x": 182, "y": 64 }, + { "flags": 1, "matrix": [4, 12], "x": 202, "y": 64 }, + { "flags": 1, "matrix": [4, 13], "x": 222, "y": 64 } + ] + }, + "url": "https://flashquark.com/product/flashquark-horizon-z-qmk-edition-custom-kit/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0223", + "vid": "0x4B42" + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_60_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": [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": [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, 13], "w": 2.25, "x": 12.75, "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, 13], "w": 2.75, "x": 12.25, "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, 5], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c new file mode 100755 index 000000000000..1ab95c54a562 --- /dev/null +++ b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 Flashquark + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +enum layers { + _LAYER0, + _LAYER1, +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT_60_ansi( /* Base */ + 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_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), + [_LAYER1] = LAYOUT_60_ansi( /* FN */ + 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_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, + 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/flashquark/horizon_z/keymaps/via/keymap.c b/keyboards/flashquark/horizon_z/keymaps/via/keymap.c new file mode 100755 index 000000000000..1ab95c54a562 --- /dev/null +++ b/keyboards/flashquark/horizon_z/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 Flashquark + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H +enum layers { + _LAYER0, + _LAYER1, +}; +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT_60_ansi( /* Base */ + 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_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL), + [_LAYER1] = LAYOUT_60_ansi( /* FN */ + 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_TRNS, RGB_TOG, KC_UP, RGB_MOD, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT , + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, MAGIC_TOGGLE_NKRO, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, + 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/flashquark/horizon_z/keymaps/via/rules.mk b/keyboards/flashquark/horizon_z/keymaps/via/rules.mk new file mode 100755 index 000000000000..bfbf8681c994 --- /dev/null +++ b/keyboards/flashquark/horizon_z/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/flashquark/horizon_z/readme.md b/keyboards/flashquark/horizon_z/readme.md new file mode 100755 index 000000000000..0c4e8d574570 --- /dev/null +++ b/keyboards/flashquark/horizon_z/readme.md @@ -0,0 +1,20 @@ +# Horizon Z QMK Edition + +A hotswap 60% keyboard by Flashquark + +* Keyboard Maintainer: [Flashquark](https://flashquark.com) +* Hardware Supported: Horizon Z QMK +* Hardware Availability: [Horizon Z QMK Edition](https://flashquark.com/product/flashquark-horizon-z-qmk-edition-custom-kit/) + + +## Build + +Make example for this keyboard (after setting up your build environment): + + make flashquark/horizon_z: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 + +Press reset button on the back of keyboard. \ No newline at end of file diff --git a/keyboards/flashquark/horizon_z/rules.mk b/keyboards/flashquark/horizon_z/rules.mk new file mode 100755 index 000000000000..e69de29bb2d1 diff --git a/keyboards/flxlb/zplit/config.h b/keyboards/flxlb/zplit/config.h index 9c1d35d13641..e3d3aa97cf7f 100644 --- a/keyboards/flxlb/zplit/config.h +++ b/keyboards/flxlb/zplit/config.h @@ -30,8 +30,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8} -#define RGBLIGHT_SPLIT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/flxlb/zplit/info.json b/keyboards/flxlb/zplit/info.json index dbd075a2e482..fb30fe2ab752 100644 --- a/keyboards/flxlb/zplit/info.json +++ b/keyboards/flxlb/zplit/info.json @@ -19,6 +19,7 @@ ] }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/giabalanai/config.h b/keyboards/giabalanai/config.h index fda301537fb9..1471806690bf 100644 --- a/keyboards/giabalanai/config.h +++ b/keyboards/giabalanai/config.h @@ -41,28 +41,6 @@ along with this program. If not, see . // By default, LEDs of the buttons which are pressed turn on. // # define RGBLIGHT_EFFECT_TWINKLE // # define RGBLIGHT_EFFECT_KNIGHT - - -// RGBLIGHT LED MAP -// Right 1st row (12 LEDs) -// ENCODER -// Right 2nd .. 5th row(13, 12, 13, 12 LEDs) -// Left 1st .. 5th row (12 LEDs x 5 rows) - -# define RGBLIGHT_LED_MAP { \ - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, \ - 97, \ - 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, \ - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, \ - 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, \ - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, \ - \ - 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, \ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, \ - 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, \ - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, \ - 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48 \ - } #endif #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/giabalanai/info.json b/keyboards/giabalanai/info.json index 7c2fa72047e7..7274505f9b00 100644 --- a/keyboards/giabalanai/info.json +++ b/keyboards/giabalanai/info.json @@ -12,7 +12,8 @@ "driver": "WS2812" }, "rgblight": { - "max_brightness": 80 + "max_brightness": 80, + "led_map": [60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 97, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48] }, "matrix_pins": { "cols": ["B1", "F7", "F6", "F5", "F4", "B3", "B2", "B6", "D0", "D1"], diff --git a/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json b/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json deleted file mode 100644 index 6581733dd1c5..000000000000 --- a/keyboards/giabalanai/keymaps/default_giabarinaix2/info.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "keyboard_name": "giabarinaix2", - "manufacturer": "3araht", - "url": "https://github.com/3araht", - "maintainer": "3araht", - "usb": { - "vid": "0xFEED", - "pid": "0xF4B2", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "l00", "x": 0, "y": 0}, - {"label": "l01", "x": 1, "y": 0}, - {"label": "l02", "x": 2, "y": 0}, - {"label": "l03", "x": 3, "y": 0}, - {"label": "l04", "x": 4, "y": 0}, - {"label": "l05", "x": 5, "y": 0}, - {"label": "l06", "x": 6, "y": 0}, - {"label": "l07", "x": 7, "y": 0}, - {"label": "l08", "x": 8, "y": 0}, - {"label": "l09", "x": 9, "y": 0}, - {"label": "l0a", "x": 10, "y": 0}, - {"label": "l0b", "x": 11, "y": 0}, - - {"label": "r00", "x": 14.5, "y": 0}, - {"label": "r01", "x": 15.5, "y": 0}, - {"label": "r02", "x": 16.5, "y": 0}, - {"label": "r03", "x": 17.5, "y": 0}, - {"label": "r04", "x": 18.5, "y": 0}, - {"label": "r05", "x": 19.5, "y": 0}, - {"label": "r06", "x": 20.5, "y": 0}, - {"label": "r07", "x": 21.5, "y": 0}, - {"label": "r08", "x": 22.5, "y": 0}, - {"label": "r09", "x": 23.5, "y": 0}, - {"label": "r0a", "x": 24.5, "y": 0}, - {"label": "r0b", "x": 25.5, "y": 0}, - - {"label": "l10", "x": 0.5, "y": 1}, - {"label": "l11", "x": 1.5, "y": 1}, - {"label": "l12", "x": 2.5, "y": 1}, - {"label": "l13", "x": 3.5, "y": 1}, - {"label": "l14", "x": 4.5, "y": 1}, - {"label": "l15", "x": 5.5, "y": 1}, - {"label": "l16", "x": 6.5, "y": 1}, - {"label": "l17", "x": 7.5, "y": 1}, - {"label": "l18", "x": 8.5, "y": 1}, - {"label": "l19", "x": 9.5, "y": 1}, - {"label": "l1a", "x": 10.5, "y": 1}, - {"label": "l1b", "x": 11.5, "y": 1}, - - {"label": "r10", "x": 15, "y": 1}, - {"label": "r11", "x": 16, "y": 1}, - {"label": "r12", "x": 17, "y": 1}, - {"label": "r13", "x": 18, "y": 1}, - {"label": "r14", "x": 19, "y": 1}, - {"label": "r15", "x": 20, "y": 1}, - {"label": "r16", "x": 21, "y": 1}, - {"label": "r17", "x": 22, "y": 1}, - {"label": "r18", "x": 23, "y": 1}, - {"label": "r19", "x": 24, "y": 1}, - {"label": "r1a", "x": 25, "y": 1}, - {"label": "r1b", "x": 26, "y": 1}, - - {"label": "l20", "x": 1, "y": 2}, - {"label": "l21", "x": 2, "y": 2}, - {"label": "l22", "x": 3, "y": 2}, - {"label": "l23", "x": 4, "y": 2}, - {"label": "l24", "x": 5, "y": 2}, - {"label": "l25", "x": 6, "y": 2}, - {"label": "l26", "x": 7, "y": 2}, - {"label": "l27", "x": 8, "y": 2}, - {"label": "l28", "x": 9, "y": 2}, - {"label": "l29", "x": 10, "y": 2}, - {"label": "l2a", "x": 11, "y": 2}, - {"label": "l2b", "x": 12, "y": 2}, - - {"label": "r20", "x": 15.5, "y": 2}, - {"label": "r21", "x": 16.5, "y": 2}, - {"label": "r22", "x": 17.5, "y": 2}, - {"label": "r23", "x": 18.5, "y": 2}, - {"label": "r24", "x": 19.5, "y": 2}, - {"label": "r25", "x": 20.5, "y": 2}, - {"label": "r26", "x": 21.5, "y": 2}, - {"label": "r27", "x": 22.5, "y": 2}, - {"label": "r28", "x": 23.5, "y": 2}, - {"label": "r29", "x": 24.5, "y": 2}, - {"label": "r2a", "x": 25.5, "y": 2}, - {"label": "r2b", "x": 26.5, "y": 2}, - - {"label": "l30", "x": 1.5, "y": 3}, - {"label": "l31", "x": 2.5, "y": 3}, - {"label": "l32", "x": 3.5, "y": 3}, - {"label": "l33", "x": 4.5, "y": 3}, - {"label": "l34", "x": 5.5, "y": 3}, - {"label": "l35", "x": 6.5, "y": 3}, - {"label": "l36", "x": 7.5, "y": 3}, - {"label": "l37", "x": 8.5, "y": 3}, - {"label": "l38", "x": 9.5, "y": 3}, - {"label": "l39", "x": 10.5, "y": 3}, - {"label": "l3a", "x": 11.5, "y": 3}, - {"label": "l3b", "x": 12.5, "y": 3}, - - {"label": "r30", "x": 16, "y": 3}, - {"label": "r31", "x": 17, "y": 3}, - {"label": "r32", "x": 18, "y": 3}, - {"label": "r33", "x": 19, "y": 3}, - {"label": "r34", "x": 20, "y": 3}, - {"label": "r35", "x": 21, "y": 3}, - {"label": "r36", "x": 22, "y": 3}, - {"label": "r37", "x": 23, "y": 3}, - {"label": "r38", "x": 24, "y": 3}, - {"label": "r39", "x": 25, "y": 3}, - {"label": "r3a", "x": 26, "y": 3}, - {"label": "r3b", "x": 27, "y": 3}, - - {"label": "l40", "x": 2, "y": 4}, - {"label": "l41", "x": 3, "y": 4}, - {"label": "l42", "x": 4, "y": 4}, - {"label": "l43", "x": 5, "y": 4}, - {"label": "l44", "x": 6, "y": 4}, - {"label": "l45", "x": 7, "y": 4}, - {"label": "l46", "x": 8, "y": 4}, - {"label": "l47", "x": 9, "y": 4}, - {"label": "l48", "x": 10, "y": 4}, - {"label": "l49", "x": 11, "y": 4}, - {"label": "l4a", "x": 12, "y": 4}, - {"label": "l4b", "x": 13, "y": 4}, - - {"label": "r40", "x": 16.5, "y": 4}, - {"label": "r41", "x": 17.5, "y": 4}, - {"label": "r42", "x": 18.5, "y": 4}, - {"label": "r43", "x": 19.5, "y": 4}, - {"label": "r44", "x": 20.5, "y": 4}, - {"label": "r45", "x": 21.5, "y": 4}, - {"label": "r46", "x": 22.5, "y": 4}, - {"label": "r47", "x": 23.5, "y": 4}, - {"label": "r48", "x": 24.5, "y": 4}, - {"label": "r49", "x": 25.5, "y": 4}, - {"label": "r4a", "x": 26.5, "y": 4}, - {"label": "r4b", "x": 27.5, "y": 4} - ] - } - } -} diff --git a/keyboards/giabalanai/keymaps/giabarinaix2led/info.json b/keyboards/giabalanai/keymaps/giabarinaix2led/info.json deleted file mode 100644 index 6581733dd1c5..000000000000 --- a/keyboards/giabalanai/keymaps/giabarinaix2led/info.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "keyboard_name": "giabarinaix2", - "manufacturer": "3araht", - "url": "https://github.com/3araht", - "maintainer": "3araht", - "usb": { - "vid": "0xFEED", - "pid": "0xF4B2", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "l00", "x": 0, "y": 0}, - {"label": "l01", "x": 1, "y": 0}, - {"label": "l02", "x": 2, "y": 0}, - {"label": "l03", "x": 3, "y": 0}, - {"label": "l04", "x": 4, "y": 0}, - {"label": "l05", "x": 5, "y": 0}, - {"label": "l06", "x": 6, "y": 0}, - {"label": "l07", "x": 7, "y": 0}, - {"label": "l08", "x": 8, "y": 0}, - {"label": "l09", "x": 9, "y": 0}, - {"label": "l0a", "x": 10, "y": 0}, - {"label": "l0b", "x": 11, "y": 0}, - - {"label": "r00", "x": 14.5, "y": 0}, - {"label": "r01", "x": 15.5, "y": 0}, - {"label": "r02", "x": 16.5, "y": 0}, - {"label": "r03", "x": 17.5, "y": 0}, - {"label": "r04", "x": 18.5, "y": 0}, - {"label": "r05", "x": 19.5, "y": 0}, - {"label": "r06", "x": 20.5, "y": 0}, - {"label": "r07", "x": 21.5, "y": 0}, - {"label": "r08", "x": 22.5, "y": 0}, - {"label": "r09", "x": 23.5, "y": 0}, - {"label": "r0a", "x": 24.5, "y": 0}, - {"label": "r0b", "x": 25.5, "y": 0}, - - {"label": "l10", "x": 0.5, "y": 1}, - {"label": "l11", "x": 1.5, "y": 1}, - {"label": "l12", "x": 2.5, "y": 1}, - {"label": "l13", "x": 3.5, "y": 1}, - {"label": "l14", "x": 4.5, "y": 1}, - {"label": "l15", "x": 5.5, "y": 1}, - {"label": "l16", "x": 6.5, "y": 1}, - {"label": "l17", "x": 7.5, "y": 1}, - {"label": "l18", "x": 8.5, "y": 1}, - {"label": "l19", "x": 9.5, "y": 1}, - {"label": "l1a", "x": 10.5, "y": 1}, - {"label": "l1b", "x": 11.5, "y": 1}, - - {"label": "r10", "x": 15, "y": 1}, - {"label": "r11", "x": 16, "y": 1}, - {"label": "r12", "x": 17, "y": 1}, - {"label": "r13", "x": 18, "y": 1}, - {"label": "r14", "x": 19, "y": 1}, - {"label": "r15", "x": 20, "y": 1}, - {"label": "r16", "x": 21, "y": 1}, - {"label": "r17", "x": 22, "y": 1}, - {"label": "r18", "x": 23, "y": 1}, - {"label": "r19", "x": 24, "y": 1}, - {"label": "r1a", "x": 25, "y": 1}, - {"label": "r1b", "x": 26, "y": 1}, - - {"label": "l20", "x": 1, "y": 2}, - {"label": "l21", "x": 2, "y": 2}, - {"label": "l22", "x": 3, "y": 2}, - {"label": "l23", "x": 4, "y": 2}, - {"label": "l24", "x": 5, "y": 2}, - {"label": "l25", "x": 6, "y": 2}, - {"label": "l26", "x": 7, "y": 2}, - {"label": "l27", "x": 8, "y": 2}, - {"label": "l28", "x": 9, "y": 2}, - {"label": "l29", "x": 10, "y": 2}, - {"label": "l2a", "x": 11, "y": 2}, - {"label": "l2b", "x": 12, "y": 2}, - - {"label": "r20", "x": 15.5, "y": 2}, - {"label": "r21", "x": 16.5, "y": 2}, - {"label": "r22", "x": 17.5, "y": 2}, - {"label": "r23", "x": 18.5, "y": 2}, - {"label": "r24", "x": 19.5, "y": 2}, - {"label": "r25", "x": 20.5, "y": 2}, - {"label": "r26", "x": 21.5, "y": 2}, - {"label": "r27", "x": 22.5, "y": 2}, - {"label": "r28", "x": 23.5, "y": 2}, - {"label": "r29", "x": 24.5, "y": 2}, - {"label": "r2a", "x": 25.5, "y": 2}, - {"label": "r2b", "x": 26.5, "y": 2}, - - {"label": "l30", "x": 1.5, "y": 3}, - {"label": "l31", "x": 2.5, "y": 3}, - {"label": "l32", "x": 3.5, "y": 3}, - {"label": "l33", "x": 4.5, "y": 3}, - {"label": "l34", "x": 5.5, "y": 3}, - {"label": "l35", "x": 6.5, "y": 3}, - {"label": "l36", "x": 7.5, "y": 3}, - {"label": "l37", "x": 8.5, "y": 3}, - {"label": "l38", "x": 9.5, "y": 3}, - {"label": "l39", "x": 10.5, "y": 3}, - {"label": "l3a", "x": 11.5, "y": 3}, - {"label": "l3b", "x": 12.5, "y": 3}, - - {"label": "r30", "x": 16, "y": 3}, - {"label": "r31", "x": 17, "y": 3}, - {"label": "r32", "x": 18, "y": 3}, - {"label": "r33", "x": 19, "y": 3}, - {"label": "r34", "x": 20, "y": 3}, - {"label": "r35", "x": 21, "y": 3}, - {"label": "r36", "x": 22, "y": 3}, - {"label": "r37", "x": 23, "y": 3}, - {"label": "r38", "x": 24, "y": 3}, - {"label": "r39", "x": 25, "y": 3}, - {"label": "r3a", "x": 26, "y": 3}, - {"label": "r3b", "x": 27, "y": 3}, - - {"label": "l40", "x": 2, "y": 4}, - {"label": "l41", "x": 3, "y": 4}, - {"label": "l42", "x": 4, "y": 4}, - {"label": "l43", "x": 5, "y": 4}, - {"label": "l44", "x": 6, "y": 4}, - {"label": "l45", "x": 7, "y": 4}, - {"label": "l46", "x": 8, "y": 4}, - {"label": "l47", "x": 9, "y": 4}, - {"label": "l48", "x": 10, "y": 4}, - {"label": "l49", "x": 11, "y": 4}, - {"label": "l4a", "x": 12, "y": 4}, - {"label": "l4b", "x": 13, "y": 4}, - - {"label": "r40", "x": 16.5, "y": 4}, - {"label": "r41", "x": 17.5, "y": 4}, - {"label": "r42", "x": 18.5, "y": 4}, - {"label": "r43", "x": 19.5, "y": 4}, - {"label": "r44", "x": 20.5, "y": 4}, - {"label": "r45", "x": 21.5, "y": 4}, - {"label": "r46", "x": 22.5, "y": 4}, - {"label": "r47", "x": 23.5, "y": 4}, - {"label": "r48", "x": 24.5, "y": 4}, - {"label": "r49", "x": 25.5, "y": 4}, - {"label": "r4a", "x": 26.5, "y": 4}, - {"label": "r4b", "x": 27.5, "y": 4} - ] - } - } -} diff --git a/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json b/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json deleted file mode 100644 index 6581733dd1c5..000000000000 --- a/keyboards/giabalanai/keymaps/via_giabarinaix2/info.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "keyboard_name": "giabarinaix2", - "manufacturer": "3araht", - "url": "https://github.com/3araht", - "maintainer": "3araht", - "usb": { - "vid": "0xFEED", - "pid": "0xF4B2", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label": "l00", "x": 0, "y": 0}, - {"label": "l01", "x": 1, "y": 0}, - {"label": "l02", "x": 2, "y": 0}, - {"label": "l03", "x": 3, "y": 0}, - {"label": "l04", "x": 4, "y": 0}, - {"label": "l05", "x": 5, "y": 0}, - {"label": "l06", "x": 6, "y": 0}, - {"label": "l07", "x": 7, "y": 0}, - {"label": "l08", "x": 8, "y": 0}, - {"label": "l09", "x": 9, "y": 0}, - {"label": "l0a", "x": 10, "y": 0}, - {"label": "l0b", "x": 11, "y": 0}, - - {"label": "r00", "x": 14.5, "y": 0}, - {"label": "r01", "x": 15.5, "y": 0}, - {"label": "r02", "x": 16.5, "y": 0}, - {"label": "r03", "x": 17.5, "y": 0}, - {"label": "r04", "x": 18.5, "y": 0}, - {"label": "r05", "x": 19.5, "y": 0}, - {"label": "r06", "x": 20.5, "y": 0}, - {"label": "r07", "x": 21.5, "y": 0}, - {"label": "r08", "x": 22.5, "y": 0}, - {"label": "r09", "x": 23.5, "y": 0}, - {"label": "r0a", "x": 24.5, "y": 0}, - {"label": "r0b", "x": 25.5, "y": 0}, - - {"label": "l10", "x": 0.5, "y": 1}, - {"label": "l11", "x": 1.5, "y": 1}, - {"label": "l12", "x": 2.5, "y": 1}, - {"label": "l13", "x": 3.5, "y": 1}, - {"label": "l14", "x": 4.5, "y": 1}, - {"label": "l15", "x": 5.5, "y": 1}, - {"label": "l16", "x": 6.5, "y": 1}, - {"label": "l17", "x": 7.5, "y": 1}, - {"label": "l18", "x": 8.5, "y": 1}, - {"label": "l19", "x": 9.5, "y": 1}, - {"label": "l1a", "x": 10.5, "y": 1}, - {"label": "l1b", "x": 11.5, "y": 1}, - - {"label": "r10", "x": 15, "y": 1}, - {"label": "r11", "x": 16, "y": 1}, - {"label": "r12", "x": 17, "y": 1}, - {"label": "r13", "x": 18, "y": 1}, - {"label": "r14", "x": 19, "y": 1}, - {"label": "r15", "x": 20, "y": 1}, - {"label": "r16", "x": 21, "y": 1}, - {"label": "r17", "x": 22, "y": 1}, - {"label": "r18", "x": 23, "y": 1}, - {"label": "r19", "x": 24, "y": 1}, - {"label": "r1a", "x": 25, "y": 1}, - {"label": "r1b", "x": 26, "y": 1}, - - {"label": "l20", "x": 1, "y": 2}, - {"label": "l21", "x": 2, "y": 2}, - {"label": "l22", "x": 3, "y": 2}, - {"label": "l23", "x": 4, "y": 2}, - {"label": "l24", "x": 5, "y": 2}, - {"label": "l25", "x": 6, "y": 2}, - {"label": "l26", "x": 7, "y": 2}, - {"label": "l27", "x": 8, "y": 2}, - {"label": "l28", "x": 9, "y": 2}, - {"label": "l29", "x": 10, "y": 2}, - {"label": "l2a", "x": 11, "y": 2}, - {"label": "l2b", "x": 12, "y": 2}, - - {"label": "r20", "x": 15.5, "y": 2}, - {"label": "r21", "x": 16.5, "y": 2}, - {"label": "r22", "x": 17.5, "y": 2}, - {"label": "r23", "x": 18.5, "y": 2}, - {"label": "r24", "x": 19.5, "y": 2}, - {"label": "r25", "x": 20.5, "y": 2}, - {"label": "r26", "x": 21.5, "y": 2}, - {"label": "r27", "x": 22.5, "y": 2}, - {"label": "r28", "x": 23.5, "y": 2}, - {"label": "r29", "x": 24.5, "y": 2}, - {"label": "r2a", "x": 25.5, "y": 2}, - {"label": "r2b", "x": 26.5, "y": 2}, - - {"label": "l30", "x": 1.5, "y": 3}, - {"label": "l31", "x": 2.5, "y": 3}, - {"label": "l32", "x": 3.5, "y": 3}, - {"label": "l33", "x": 4.5, "y": 3}, - {"label": "l34", "x": 5.5, "y": 3}, - {"label": "l35", "x": 6.5, "y": 3}, - {"label": "l36", "x": 7.5, "y": 3}, - {"label": "l37", "x": 8.5, "y": 3}, - {"label": "l38", "x": 9.5, "y": 3}, - {"label": "l39", "x": 10.5, "y": 3}, - {"label": "l3a", "x": 11.5, "y": 3}, - {"label": "l3b", "x": 12.5, "y": 3}, - - {"label": "r30", "x": 16, "y": 3}, - {"label": "r31", "x": 17, "y": 3}, - {"label": "r32", "x": 18, "y": 3}, - {"label": "r33", "x": 19, "y": 3}, - {"label": "r34", "x": 20, "y": 3}, - {"label": "r35", "x": 21, "y": 3}, - {"label": "r36", "x": 22, "y": 3}, - {"label": "r37", "x": 23, "y": 3}, - {"label": "r38", "x": 24, "y": 3}, - {"label": "r39", "x": 25, "y": 3}, - {"label": "r3a", "x": 26, "y": 3}, - {"label": "r3b", "x": 27, "y": 3}, - - {"label": "l40", "x": 2, "y": 4}, - {"label": "l41", "x": 3, "y": 4}, - {"label": "l42", "x": 4, "y": 4}, - {"label": "l43", "x": 5, "y": 4}, - {"label": "l44", "x": 6, "y": 4}, - {"label": "l45", "x": 7, "y": 4}, - {"label": "l46", "x": 8, "y": 4}, - {"label": "l47", "x": 9, "y": 4}, - {"label": "l48", "x": 10, "y": 4}, - {"label": "l49", "x": 11, "y": 4}, - {"label": "l4a", "x": 12, "y": 4}, - {"label": "l4b", "x": 13, "y": 4}, - - {"label": "r40", "x": 16.5, "y": 4}, - {"label": "r41", "x": 17.5, "y": 4}, - {"label": "r42", "x": 18.5, "y": 4}, - {"label": "r43", "x": 19.5, "y": 4}, - {"label": "r44", "x": 20.5, "y": 4}, - {"label": "r45", "x": 21.5, "y": 4}, - {"label": "r46", "x": 22.5, "y": 4}, - {"label": "r47", "x": 23.5, "y": 4}, - {"label": "r48", "x": 24.5, "y": 4}, - {"label": "r49", "x": 25.5, "y": 4}, - {"label": "r4a", "x": 26.5, "y": 4}, - {"label": "r4b", "x": 27.5, "y": 4} - ] - } - } -} diff --git a/keyboards/halfcliff/config.h b/keyboards/halfcliff/config.h index 192267af9269..e7c9ad2e3b20 100644 --- a/keyboards/halfcliff/config.h +++ b/keyboards/halfcliff/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #define MATRIX_COL_PINS { B4, E6, C6, B6, B2 } #define RGBLED_NUM 10 - #define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/handwired/brain/config.h b/keyboards/handwired/brain/config.h index 61dddcd9c27c..1e0a226403a2 100644 --- a/keyboards/handwired/brain/config.h +++ b/keyboards/handwired/brain/config.h @@ -44,8 +44,6 @@ along with this program. If not, see . #define RGBLED_NUM 28 // Number of LEDs -#define RGBLIGHT_SPLIT - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/handwired/brain/info.json b/keyboards/handwired/brain/info.json index 0454b36669ca..b4bdbc842000 100644 --- a/keyboards/handwired/brain/info.json +++ b/keyboards/handwired/brain/info.json @@ -20,6 +20,7 @@ "pin": "D3" }, "rgblight": { + "split": true, "max_brightness": 120 }, "split": { diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c index 2e92d4b86b3f..24f6b35f57dc 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c @@ -60,5 +60,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 index 9991dcad7190..53ce5a31906f 100644 --- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk +++ b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk @@ -8,3 +8,4 @@ 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/6x7/info.json b/keyboards/handwired/dactyl_manuform/6x7/info.json index ea983da9c8b5..529d92bd3f90 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/info.json +++ b/keyboards/handwired/dactyl_manuform/6x7/info.json @@ -8,21 +8,35 @@ "pid": "0x3636", "device_version": "0.0.1" }, + "features": { + "bootmagic": true, + "command": true, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "audio": false, + "backlight": false, + "rgblight": false + }, "ws2812": { "pin": "D3" }, "matrix_pins": { - "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B7"], + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "D1"], "rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"] }, "diode_direction": "COL2ROW", "split": { + "enabled": true, "soft_serial_pin": "D0" }, - "processor": "atmega32u4", - "bootloader": "caterina", + "rgblight": { + "led_count": 12 + }, + "development_board": "promicro", "layouts": { - "LAYOUT_6x7": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c index 83fab9409df3..5653786dcfb1 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c +++ b/keyboards/handwired/dactyl_manuform/6x7/keymaps/default/keymap.c @@ -12,7 +12,7 @@ enum custom_layer { #define LOWER MO(_LOWER) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_6x7( + [_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_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_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_QUOT , KC_BSLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_BSPC,KC_GRV, KC_LGUI, KC_LALT ), - [_LOWER] = LAYOUT_6x7( + [_LOWER] = 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_TILD,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, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS, _______, @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______, _______,_______ ), - [_RAISE] = LAYOUT_6x7( + [_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_LBRC, KC_RBRC,_______,KC_NUM ,KC_INS ,KC_SCRL,KC_MUTE, _______, _______,_______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, _______, diff --git a/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c b/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c index 0e8436788e6f..dbbc54cdcab9 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c +++ b/keyboards/handwired/dactyl_manuform/6x7/keymaps/iso-de/keymap.c @@ -10,7 +10,7 @@ enum custom_layer { #define RAISE MO(_RAISE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTZ] = LAYOUT_6x7( + [_QWERTZ] = 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_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_END , XXXXXXX, 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, @@ -18,12 +18,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, 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_MPLY, KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_SPC , KC_LSFT, KC_RALT, KC_ENT , - KC_LGUI, KC_LALT, KC_BSPC, KC_DEL , KC_PGDN, KC_PGUP, KC_TAB , KC_INS ), - [_RAISE] = LAYOUT_6x7( + [_RAISE] = LAYOUT( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -31,7 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/handwired/dactyl_manuform/6x7/rules.mk b/keyboards/handwired/dactyl_manuform/6x7/rules.mk index b893863bb52f..e69de29bb2d1 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/rules.mk +++ b/keyboards/handwired/dactyl_manuform/6x7/rules.mk @@ -1,13 +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 = 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 diff --git a/keyboards/handwired/freoduo/config.h b/keyboards/handwired/freoduo/config.h index e4045a37905a..ba9904fa49f7 100644 --- a/keyboards/handwired/freoduo/config.h +++ b/keyboards/handwired/freoduo/config.h @@ -20,9 +20,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #if !defined(RGBLED_NUM) # define RGBLED_NUM 30 -# define RGBLIGHT_SPLIT -// Switch RGB sides with LED MAP. -# define RGBLIGHT_LED_MAP { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30} # define RGBLIGHT_LAYERS #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/handwired/freoduo/info.json b/keyboards/handwired/freoduo/info.json index a4d6144cf95d..347b832a401c 100644 --- a/keyboards/handwired/freoduo/info.json +++ b/keyboards/handwired/freoduo/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D0" }, "rgblight": { + "led_map": [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "split_count": [16, 14] }, "ws2812": { diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h index d20625da0858..e041e181cade 100644 --- a/keyboards/handwired/macroboard/config.h +++ b/keyboards/handwired/macroboard/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define WS2812_DMA_STREAM STM32_DMA1_STREAM6 // 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_PWM_TARGET_PERIOD 800000 -#define RGBLIGHT_LED_MAP { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1 } # define RGBLED_NUM 24 # define RGBLIGHT_HUE_STEP 8 diff --git a/keyboards/handwired/macroboard/info.json b/keyboards/handwired/macroboard/info.json index b82cee4fb523..ba597d39f62c 100644 --- a/keyboards/handwired/macroboard/info.json +++ b/keyboards/handwired/macroboard/info.json @@ -8,6 +8,9 @@ "pid": "0x2137", "device_version": "0.0.1" }, + "rgblight": { + "led_map": [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1] + }, "ws2812": { "pin": "B9" }, diff --git a/keyboards/handwired/scottokeebs/scotto9/info.json b/keyboards/handwired/scottokeebs/scotto9/info.json new file mode 100644 index 000000000000..a42d2063001e --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/info.json @@ -0,0 +1,47 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto9", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 4, 5, 6 + "cols": ["D4", "C6", "D7"], + // 15, 14, 16 + "rows": ["B1", "B3", "B2"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x534B" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + + // Row 2 + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + + // Row 3 + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scotto9/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto9/keymaps/default/keymap.c new file mode 100644 index 000000000000..eec8d684ada3 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +// Keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ) +}; diff --git a/keyboards/handwired/scottokeebs/scotto9/readme.md b/keyboards/handwired/scottokeebs/scotto9/readme.md new file mode 100644 index 000000000000..ab8767113859 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/readme.md @@ -0,0 +1,27 @@ +# Scotto9 + +![Scotto9](https://i.imgur.com/inbmNSEh.jpeg) + +A 9-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scotto9:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scotto9: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 \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scotto9/rules.mk b/keyboards/handwired/scottokeebs/scotto9/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scotto9/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottofrog/info.json b/keyboards/handwired/scottokeebs/scottofrog/info.json new file mode 100644 index 000000000000..202626b70fff --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/info.json @@ -0,0 +1,54 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoFrog", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0017", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_ortho_3x5_5": { + "layout": [ + { "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, 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, 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, 3], "x": 3, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c new file mode 100644 index 000000000000..9a220170e498 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +// Keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x5_5( + KC_Q, KC_W, KC_E, KC_W, KC_R, + KC_A, KC_S, KC_D, KC_F, KC_G, + KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_NO, KC_NO, KC_NO, KC_LCTL, KC_SPC + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottofrog/readme.md b/keyboards/handwired/scottokeebs/scottofrog/readme.md new file mode 100644 index 000000000000..59b7f2e82802 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/readme.md @@ -0,0 +1,27 @@ +# ScottoFrog + +![ScottoFrog](https://i.imgur.com/x1VxGggh.jpg) + +A 17-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottofrog:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottofrog: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/scottokeebs/scottofrog/rules.mk b/keyboards/handwired/scottokeebs/scottofrog/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottofrog/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/yushakobo/navpad/10/rev1/config.h b/keyboards/handwired/scottokeebs/scottogame/config.h similarity index 79% rename from keyboards/yushakobo/navpad/10/rev1/config.h rename to keyboards/handwired/scottokeebs/scottogame/config.h index d4a4e48d776e..a168f0ef218f 100644 --- a/keyboards/yushakobo/navpad/10/rev1/config.h +++ b/keyboards/handwired/scottokeebs/scottogame/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 yushakobo +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 @@ -8,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -17,4 +17,5 @@ along with this program. If not, see . #pragma once -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7 } +// OLED +#define OLED_DISPLAY_128X64 \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/info.json b/keyboards/handwired/scottokeebs/scottogame/info.json new file mode 100644 index 000000000000..5c300b866e44 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/info.json @@ -0,0 +1,89 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoGame", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + // RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": ["D2", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"], + + // A0, 15, 14, 16, 10 + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0006", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_ortho_6_3x10_6": { + "layout": [ + // Row 1 + { "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, 6], "x": 6, "y": 0 }, + + // Row 2 + { "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 }, + + // Row 3 + { "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 }, + + // Row 3 + { "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 }, + + // Row 5 + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/dactyl_manuform/6x7/config.h b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/config.h similarity index 73% rename from keyboards/handwired/dactyl_manuform/6x7/config.h rename to keyboards/handwired/scottokeebs/scottogame/keymaps/default/config.h index 9a4e39dad218..1a6512052c1d 100644 --- a/keyboards/handwired/dactyl_manuform/6x7/config.h +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/config.h @@ -1,6 +1,5 @@ /* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +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 @@ -9,7 +8,7 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License @@ -18,5 +17,7 @@ along with this program. If not, see . #pragma once -// WS2812 RGB LED strip input and number of LEDs -#define RGBLED_NUM 12 +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c new file mode 100644 index 000000000000..786587e543b5 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +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, KC_6, + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, 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), KC_ESC + ), + [1] = LAYOUT_ortho_6_3x10_6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_6_3x10_6( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_6_3x10_6( + 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_NO, KC_NO, KC_NO, + 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, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/mode/m75h/m75h.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h similarity index 73% rename from keyboards/mode/m75h/m75h.c rename to keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h index 2f2bfbfa4bf4..1a6512052c1d 100644 --- a/keyboards/mode/m75h/m75h.c +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h @@ -1,5 +1,5 @@ /* - Copyright 2020 Álvaro "Gondolindrim" Volpato +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 @@ -8,15 +8,16 @@ the Free Software Foundation, either version 2 of the License, or This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "quantum.h" +#pragma once -void board_init(void) { - setPinInput(B10); -} +// 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 new file mode 100644 index 000000000000..09fdf5dd9ab4 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c @@ -0,0 +1,289 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +#include + +// 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 new file mode 100644 index 000000000000..bcee933e75eb --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk @@ -0,0 +1,2 @@ +WPM_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottogame/readme.md b/keyboards/handwired/scottokeebs/scottogame/readme.md new file mode 100644 index 000000000000..c622df1b4ef7 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/readme.md @@ -0,0 +1,27 @@ +# ScottoGame + +![ScottoGame](https://i.imgur.com/uXUWY7wh.jpg) + +A 42-key ortholinear keyboard with a dedicated action button, split spacebar, 5 function keys, and a 0.96" 128x64 OLED display. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4, 0.96" 128x64 I2C OLED +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottogame:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottogame: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 \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/rules.mk b/keyboards/handwired/scottokeebs/scottogame/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottogame/scottogame.c b/keyboards/handwired/scottokeebs/scottogame/scottogame.c new file mode 100644 index 000000000000..bea5a57a3b7f --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottogame/scottogame.c @@ -0,0 +1,34 @@ +/* +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 . +*/ + +#include "quantum.h" + +#ifdef OLED_ENABLE + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + // Default OLED code + oled_set_cursor(0, 0); + oled_write(" ScottoGame ", false); + + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottonum/info.json b/keyboards/handwired/scottokeebs/scottonum/info.json new file mode 100644 index 000000000000..2907b47af86a --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/info.json @@ -0,0 +1,56 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoNum", + "maintainer": "joe-scotto", + "diode_direction": "COL2ROW", + "development_board": "promicro", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "matrix_pins": { + "direct": [ + ["D3", "D2", "D1", "D0"], + ["D4", "C6", "D7", "E6"], + ["B4", "B5", "F4"], + ["F5", "F6", "F7", "B1"], + ["B3", "B2"] + ] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0014", + "vid": "0x534B" + }, + "layouts": { + "LAYOUT_numpad_4x5": { + "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": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c new file mode 100644 index 000000000000..a4b50f7769df --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +// Keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_numpad_4x5( + KC_CIRCUMFLEX, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ) +}; diff --git a/keyboards/handwired/scottokeebs/scottonum/readme.md b/keyboards/handwired/scottokeebs/scottonum/readme.md new file mode 100644 index 000000000000..66cbff80608d --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/readme.md @@ -0,0 +1,27 @@ +# ScottoNum + +![ScottoNum](https://i.imgur.com/VMiA19uh.jpg) + +A 17-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/scottokeebs/scottonum:default + +Flashing example for this keyboard: + + make handwired/scottokeebs/scottonum: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/scottokeebs/scottonum/rules.mk b/keyboards/handwired/scottokeebs/scottonum/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottonum/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/scottokeebs/scottosplit/info.json b/keyboards/handwired/scottokeebs/scottosplit/info.json new file mode 100644 index 000000000000..792084b82cca --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/info.json @@ -0,0 +1,78 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "ScottoSplit", + "maintainer": "joe-scotto", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 3, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"] + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0012", + "vid": "0xFEED" + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + // Row 1 + { "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 }, + + // Row 2 + { "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 }, + + // Row 3 + { "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 }, + + // Row 4 + { "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 } + ] + } + } +} diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h new file mode 100644 index 000000000000..de6c83da9a40 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 . +*/ + +#pragma once + + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c new file mode 100644 index 000000000000..2633845d509e --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC + ), + [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_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_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, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + 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, KC_TRNS, KC_TRNS + ) +}; \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h new file mode 100644 index 000000000000..1a6512052c1d --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 . +*/ + +#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 new file mode 100644 index 000000000000..f4d0a0c7bba3 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c @@ -0,0 +1,174 @@ +/* +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 . +*/ + +#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 new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/scottokeebs/scottosplit/readme.md b/keyboards/handwired/scottokeebs/scottosplit/readme.md new file mode 100644 index 000000000000..94e73afd1306 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/readme.md @@ -0,0 +1,27 @@ +# ScottoSplit + +![ScottoSplit](https://i.imgur.com/u6rSzyHh.jpg) + +A 36-key split column-staggered ortholinear keyboard that uses a single MCU and VGA cable to connect the halves. Case files available [here](https://github.com/joe-scotto/scottokeebs). + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: ATmega32U4 +* Hardware Availability: [Amazon](https://amazon.com) + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scottosplit:default + +Flashing example for this keyboard: + + make handwired/jscotto/scottosplit: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 \ No newline at end of file diff --git a/keyboards/handwired/scottokeebs/scottosplit/rules.mk b/keyboards/handwired/scottokeebs/scottosplit/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/handwired/scottokeebs/scottosplit/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h index 9ed3bc9702d1..c2401d394fe9 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/elite_c/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . // WS2812 RGB LED strip input and number of LEDs #define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT #define AUDIO_PIN C6 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h index 9c02cc3b2895..a5ab8a89c705 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h @@ -30,7 +30,6 @@ along with this program. If not, see . #define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. #define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT #define DEBUG_LED_PIN C13 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h index 532ca017fba7..b8b8223cde31 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h @@ -33,7 +33,6 @@ along with this program. If not, see . #define RGBLED_NUM 57 -#define RGBLIGHT_SPLIT #define DEBUG_LED_PIN C13 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h index c45500050ae6..3440f85a19e3 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/teensy2pp/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . // WS2812 RGB LED strip input and number of LEDs #define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT #define RGBLIGHT_LIMIT_VAL 80 #define DEBUG_LED_PIN D6 diff --git a/keyboards/handwired/tsubasa/config.h b/keyboards/handwired/tsubasa/config.h index fee26e10350f..e0c594099a2c 100644 --- a/keyboards/handwired/tsubasa/config.h +++ b/keyboards/handwired/tsubasa/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . #define MASTER_RIGHT # define RGBLED_NUM 12 -# define RGBLIGHT_SPLIT # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 1 # define RGBLIGHT_VAL_STEP 1 diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index 8a29ae41f707..527cb478e17e 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -64,7 +64,6 @@ along with this program. If not, see . #endif #ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_SPLIT // #define RGBLIGHT_HUE_STEP 8 // #define RGBLIGHT_SAT_STEP 8 // #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h index 716bdf162fcf..5d1a5f1f538b 100644 --- a/keyboards/helix/rev3_5rows/config.h +++ b/keyboards/helix/rev3_5rows/config.h @@ -64,7 +64,6 @@ along with this program. If not, see . #endif #ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_SPLIT // #define RGBLIGHT_HUE_STEP 8 // #define RGBLIGHT_SAT_STEP 8 // #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/hidtech/bastyl/config.h b/keyboards/hidtech/bastyl/config.h index 48ac76c74b7b..ae0e277e8d49 100644 --- a/keyboards/hidtech/bastyl/config.h +++ b/keyboards/hidtech/bastyl/config.h @@ -19,7 +19,6 @@ #pragma once #define RGBLED_NUM 38 -#define RGBLIGHT_SPLIT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/hidtech/bastyl/info.json b/keyboards/hidtech/bastyl/info.json index 02b8854e3605..1f95aabdb5b5 100644 --- a/keyboards/hidtech/bastyl/info.json +++ b/keyboards/hidtech/bastyl/info.json @@ -19,6 +19,9 @@ "ws2812": { "pin": "D2" }, + "rgblight": { + "split": true + }, "processor": "atmega32u4", "bootloader": "atmel-dfu", "layouts": { diff --git a/keyboards/jaykeeb/orba/info.json b/keyboards/jaykeeb/orba/info.json new file mode 100644 index 000000000000..192bb385ce25 --- /dev/null +++ b/keyboards/jaykeeb/orba/info.json @@ -0,0 +1,109 @@ +{ + "manufacturer": "Alabahuy", + "keyboard_name": "orba", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP17", "GP16", "GP14", "GP13", "GP12", "GP15", "GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20"], + "rows": ["GP11", "GP10", "GP18", "GP19", "GP0" ] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0769", + "vid": "0x414C" + }, + "layouts": { + "LAYOUT": { + "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": "`", "matrix": [0, 6], "x": 6, "y": 0 }, + {"label": "-", "matrix": [0, 7], "x": 7, "y": 0 }, + {"label": "=", "matrix": [0, 8], "x": 8, "y": 0 }, + {"label": "6", "matrix": [0, 9], "x": 9, "y": 0 }, + {"label": "7", "matrix": [0, 10], "x": 10, "y": 0 }, + {"label": "8", "matrix": [0, 11], "x": 11, "y": 0 }, + {"label": "9", "matrix": [0, 12], "x": 12, "y": 0 }, + {"label": "0", "matrix": [0, 13], "x": 13, "y": 0 }, + {"label": "Delete", "matrix": [0, 14], "x": 13, "y": 0 }, + {"label": "Home", "matrix": [0, 15], "x": 15, "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": "P7", "matrix": [1, 6], "x": 6, "y": 1 }, + {"label": "P8", "matrix": [1, 7], "x": 7, "y": 1 }, + {"label": "P9", "matrix": [1, 8], "x": 8, "y": 1 }, + {"label": "Y", "matrix": [1, 9], "x": 9, "y": 1 }, + {"label": "U", "matrix": [1, 10], "x": 10, "y": 1 }, + {"label": "I", "matrix": [1, 11], "x": 11, "y": 1 }, + {"label": "O", "matrix": [1, 12], "x": 12, "y": 1 }, + {"label": "P", "matrix": [1, 13], "x": 13, "y": 1 }, + {"label": "Backspace", "matrix": [1, 14], "x": 13, "y": 1 }, + {"label": "Page Up", "matrix": [1, 15], "x": 15, "y": 1 }, + + {"label": "Caps Lock", "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": "P4", "matrix": [2, 6], "x": 6, "y": 2 }, + {"label": "P5", "matrix": [2, 7], "x": 7, "y": 2 }, + {"label": "P6", "matrix": [2, 8], "x": 8, "y": 2 }, + {"label": "H", "matrix": [2, 9], "x": 9, "y": 2 }, + {"label": "J", "matrix": [2, 10], "x": 10, "y": 2 }, + {"label": "K", "matrix": [2, 11], "x": 11, "y": 2 }, + {"label": "L", "matrix": [2, 12], "x": 12, "y": 2 }, + {"label": ":", "matrix": [2, 13], "x": 13, "y": 2 }, + {"label": "", "matrix": [2, 14], "x": 13, "y": 2 }, + {"label": "Page Down", "matrix": [2, 15], "x": 15, "y": 2 }, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3 }, + {"label": "Z", "matrix": [3, 1], "x": 1, "y": 3 }, + {"label": "X", "matrix": [3, 2], "x": 2, "y": 3 }, + {"label": "C", "matrix": [3, 3], "x": 3, "y": 3 }, + {"label": "V", "matrix": [3, 4], "x": 4, "y": 3 }, + {"label": "B", "matrix": [3, 5], "x": 5, "y": 3 }, + {"label": "P1", "matrix": [3, 6], "x": 6, "y": 3 }, + {"label": "P2", "matrix": [3, 7], "x": 7, "y": 3 }, + {"label": "P3", "matrix": [3, 8], "x": 8, "y": 3 }, + {"label": "N", "matrix": [3, 9], "x": 9, "y": 3 }, + {"label": "M", "matrix": [3, 10], "x": 10, "y": 3 }, + {"label": ",", "matrix": [3, 11], "x": 11, "y": 3 }, + {"label": ".", "matrix": [3, 12], "x": 12, "y": 3 }, + {"label": "/", "matrix": [3, 13], "x": 13, "y": 3 }, + {"label": "\u2191", "matrix": [3, 14], "x": 13, "y": 3 }, + {"label": "Enter", "matrix": [3, 15], "x": 15, "y": 3 }, + + {"label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + {"label": "GUI", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + {"label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + {"label": "Space", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + {"label": "Fn", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, + {"label": "Ctrl","matrix": [4, 11], "w": 1.25, "x": 11.25, "y": 4 }, + {"label": "\u2190", "matrix": [4, 13], "x": 13, "y": 4 }, + {"label": "\u2193", "matrix": [4, 14], "x": 14, "y": 4 }, + {"label": "\u2192", "matrix": [4, 15], "x": 15, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/jaykeeb/orba/keymaps/default/keymap.c b/keyboards/jaykeeb/orba/keymaps/default/keymap.c new file mode 100644 index 000000000000..96710a95aadd --- /dev/null +++ b/keyboards/jaykeeb/orba/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// 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 │Del│Hom│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E │ R │ T │ 7 │ 8 │ 9 │ Y │ U │ I │ O │ P │Bsc│PgU│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ 4 │ 5 │ 6 │ H │ J │ k │ L │ : │ " │PgD│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Shf│ Z │ X │ C │ V │ B │ 1 │ 2 │ 3 │ N │ M │ < │ > │ ? │ │Ent│ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ FN │Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [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_DEL, QK_RBT, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/orba/keymaps/via/keymap.c b/keyboards/jaykeeb/orba/keymaps/via/keymap.c new file mode 100644 index 000000000000..c567537ce592 --- /dev/null +++ b/keyboards/jaykeeb/orba/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +// Copyright 2023 Alabahuy (@Alabahuy) +// 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 │Del│Hom│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab│ Q │ W │ E │ R │ T │ 7 │ 8 │ 9 │ Y │ U │ I │ O │ P │Bsc│PgU│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Cap│ A │ S │ D │ F │ G │ 4 │ 5 │ 6 │ H │ J │ k │ L │ : │ " │PgD│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Shf│ Z │ X │ C │ V │ B │ 1 │ 2 │ 3 │ N │ M │ < │ > │ ? │ │Ent│ + * ├───┴┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬──┴─┬─┼───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ FN │Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + + [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_DEL, QK_RBT, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + + +}; diff --git a/keyboards/jaykeeb/orba/keymaps/via/rules.mk b/keyboards/jaykeeb/orba/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/jaykeeb/orba/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/jaykeeb/orba/readme.md b/keyboards/jaykeeb/orba/readme.md new file mode 100644 index 000000000000..23efe28b519d --- /dev/null +++ b/keyboards/jaykeeb/orba/readme.md @@ -0,0 +1,27 @@ +# orba + +![orba](https://i.imgur.com/c9iQPWRh.jpeg) + +PCB like 65% with ortho 16x4 and bottom ansi or tsangan + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: orba PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/orba:default + +Flashing example for this keyboard: + + make jaykeeb/orba: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/jaykeeb/orba/rules.mk b/keyboards/jaykeeb/orba/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/jaykeeb/orba/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/info.json b/keyboards/jaykeeb/skyline/info.json new file mode 100644 index 000000000000..14b596ebba19 --- /dev/null +++ b/keyboards/jaykeeb/skyline/info.json @@ -0,0 +1,563 @@ +{ + "manufacturer": "Jaykeeb", + "keyboard_name": "Skyline", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "GP24", + "scroll_lock": "GP12", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0", "GP29", "GP28", "GP16", "GP15", "GP14"], + "rows": ["GP13", "GP27", "GP26", "GP25", "GP22", "GP23"] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0799", + "vid": "0x414C" + }, + "community_layouts": [ + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [2, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 13.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\u2298", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn1", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 10, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 11.25, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 12.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 10, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 11.25, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 12.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [2, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "|", "matrix": [3, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn1", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 4], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 9], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 10], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 11], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 12], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 7], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 13], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 14], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 15], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 10, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 11.25, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 12.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "\\", "matrix": [1, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [2, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Fn1", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 10, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 11.25, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 12.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/jaykeeb/skyline/keymaps/default/keymap.c b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c new file mode 100644 index 000000000000..78cf4b4c44d4 --- /dev/null +++ b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = 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_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_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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/keymaps/via/keymap.c b/keyboards/jaykeeb/skyline/keymaps/via/keymap.c new file mode 100644 index 000000000000..78cf4b4c44d4 --- /dev/null +++ b/keyboards/jaykeeb/skyline/keymaps/via/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2023 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = 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_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_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, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/keymaps/via/rules.mk b/keyboards/jaykeeb/skyline/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/jaykeeb/skyline/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/matrix_diagram.md b/keyboards/jaykeeb/skyline/matrix_diagram.md new file mode 100644 index 000000000000..419567fab547 --- /dev/null +++ b/keyboards/jaykeeb/skyline/matrix_diagram.md @@ -0,0 +1,21 @@ +# Matrix Diagram for Skyline + +``` +┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ +│00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ +└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │2D │ │1E │1F │1G │ │1D │ 2u Backspace +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │3D │ │2E │2F │2G │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐3D │ ISO Enter +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │ │3C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘ +│40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │ +├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ +│50 │51 │52 │57 │5B │5C │5D │ │5E │5F │5G │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ +┌────────┐ ┌──────────┐ +│40 │ 2.25u LShift 2.75u RShift │4C │ +└────────┘ └──────────┘ +``` diff --git a/keyboards/jaykeeb/skyline/readme.md b/keyboards/jaykeeb/skyline/readme.md new file mode 100644 index 000000000000..92291310e045 --- /dev/null +++ b/keyboards/jaykeeb/skyline/readme.md @@ -0,0 +1,27 @@ +#Skyline + +![skyline](https://i.imgur.com/nIeOhKth.png) + +PCB for "Skyline" TKL Mechanical Keyboard + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: Skyline PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/skyline:default + +Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) + + make jaykeeb/skyline: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 \ No newline at end of file diff --git a/keyboards/jaykeeb/skyline/rules.mk b/keyboards/jaykeeb/skyline/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/jaykeeb/skyline/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/jian/nsrev2/config.h b/keyboards/jian/nsrev2/config.h index 5bd79d3ce09e..19585be49a82 100644 --- a/keyboards/jian/nsrev2/config.h +++ b/keyboards/jian/nsrev2/config.h @@ -34,7 +34,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_SLEEP -#define RGBLIGHT_SPLIT #ifndef IOS_DEVICE_ENABLE #if RGBLED_NUM <= 6 diff --git a/keyboards/jian/nsrev2/info.json b/keyboards/jian/nsrev2/info.json index 955fc517deca..e60453baa30c 100644 --- a/keyboards/jian/nsrev2/info.json +++ b/keyboards/jian/nsrev2/info.json @@ -13,6 +13,9 @@ "levels": 5, "breathing": true }, + "rgblight": { + "split": true + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/jian/rev1/config.h b/keyboards/jian/rev1/config.h index 11b99cc7399a..3e51b397d38b 100644 --- a/keyboards/jian/rev1/config.h +++ b/keyboards/jian/rev1/config.h @@ -87,7 +87,6 @@ along with this program. If not, see . #define RGBLIGHT_SLEEP -#define RGBLIGHT_SPLIT #ifndef IOS_DEVICE_ENABLE #if RGBLED_NUM <= 6 diff --git a/keyboards/jian/rev1/info.json b/keyboards/jian/rev1/info.json index e7e386088a7b..b31d55dfa3f8 100644 --- a/keyboards/jian/rev1/info.json +++ b/keyboards/jian/rev1/info.json @@ -12,6 +12,9 @@ "pin": "B6", "levels": 5 }, + "rgblight": { + "split": true + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/jian/rev2/config.h b/keyboards/jian/rev2/config.h index 147c2cf147bc..f7363db53d6b 100644 --- a/keyboards/jian/rev2/config.h +++ b/keyboards/jian/rev2/config.h @@ -38,7 +38,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_TWINKLE #define RGBLIGHT_SLEEP -#define RGBLIGHT_SPLIT #ifndef IOS_DEVICE_ENABLE #if RGBLED_NUM <= 6 diff --git a/keyboards/jian/rev2/info.json b/keyboards/jian/rev2/info.json index 7fecaed1f09d..dcf0e7ef2c12 100644 --- a/keyboards/jian/rev2/info.json +++ b/keyboards/jian/rev2/info.json @@ -12,6 +12,9 @@ "pin": "C6", "levels": 5 }, + "rgblight": { + "split": true + }, "ws2812": { "pin": "D4" }, diff --git a/keyboards/jiran/rev2/config.h b/keyboards/jiran/rev2/config.h index 39e1eaae4c7a..1c4eb6fae0e5 100644 --- a/keyboards/jiran/rev2/config.h +++ b/keyboards/jiran/rev2/config.h @@ -28,7 +28,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 56 -#define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/jones/v03_1/config.h b/keyboards/jones/v03_1/config.h index b3eb44a1566a..7625c2cdb4d2 100644 --- a/keyboards/jones/v03_1/config.h +++ b/keyboards/jones/v03_1/config.h @@ -49,7 +49,6 @@ along with this program. If not, see . #endif #define RGBLED_NUM 14 // Left(4) + Right(2) + Under(8) - #define RGBLIGHT_LED_MAP {0,1,2,3,13,12,4,5,6,7,8,9,10,11} // Left --> Right --> Under #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/jones/v03_1/info.json b/keyboards/jones/v03_1/info.json index d0fec4e57167..fa5e1bf38528 100644 --- a/keyboards/jones/v03_1/info.json +++ b/keyboards/jones/v03_1/info.json @@ -14,6 +14,9 @@ {"pin_a": "B3", "pin_b": "B2"} ] }, + "rgblight": { + "led_map": [0, 1, 2, 3, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11] + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kagizaraya/scythe/config.h b/keyboards/kagizaraya/scythe/config.h index 96e966904698..cafa5575bb52 100644 --- a/keyboards/kagizaraya/scythe/config.h +++ b/keyboards/kagizaraya/scythe/config.h @@ -16,7 +16,6 @@ along with this program. If not, see . #pragma once -#define RGBLIGHT_SPLIT 1 #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/kagizaraya/scythe/info.json b/keyboards/kagizaraya/scythe/info.json index 8198cd001764..0aaeb704ace3 100644 --- a/keyboards/kagizaraya/scythe/info.json +++ b/keyboards/kagizaraya/scythe/info.json @@ -19,6 +19,9 @@ "split": { "soft_serial_pin": "D0" }, + "rgblight": { + "split": true + }, "ws2812": { "pin": "F0" }, diff --git a/keyboards/kapl/rev1/config.h b/keyboards/kapl/rev1/config.h index 82df4355ead9..f580f94c9a24 100644 --- a/keyboards/kapl/rev1/config.h +++ b/keyboards/kapl/rev1/config.h @@ -6,7 +6,6 @@ #define MASTER_LEFT #define RGBLED_NUM 88 -#define RGBLIGHT_SPLIT #define RGB_MATRIX_LED_COUNT 88 #define RGB_MATRIX_SPLIT { 44, 44 } diff --git a/keyboards/keebio/foldkb/rev1/config.h b/keyboards/keebio/foldkb/rev1/config.h index efdd195b5d1a..917475fab75b 100644 --- a/keyboards/keebio/foldkb/rev1/config.h +++ b/keyboards/keebio/foldkb/rev1/config.h @@ -35,5 +35,4 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 10, 11 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/foldkb/rev1/info.json b/keyboards/keebio/foldkb/rev1/info.json index 705bd7cc8a6d..467aaaa4b64d 100644 --- a/keyboards/keebio/foldkb/rev1/info.json +++ b/keyboards/keebio/foldkb/rev1/info.json @@ -25,6 +25,7 @@ "soft_serial_pin": "D0" }, "rgblight": { + "led_map": [0, 1, 2, 3, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 10, 11], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h index c22aff38be5c..d8a0161dbaa1 100644 --- a/keyboards/keebio/kbo5000/rev1/config.h +++ b/keyboards/keebio/kbo5000/rev1/config.h @@ -39,4 +39,3 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } diff --git a/keyboards/keebio/kbo5000/rev1/info.json b/keyboards/keebio/kbo5000/rev1/info.json index e1b4d90492f8..78bbb01357e4 100644 --- a/keyboards/keebio/kbo5000/rev1/info.json +++ b/keyboards/keebio/kbo5000/rev1/info.json @@ -22,6 +22,7 @@ "pin": "B5" }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index 20f625af304a..29c55072ea53 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/keebio/quefrency/rev2/info.json b/keyboards/keebio/quefrency/rev2/info.json index d9bbab9795df..d1871c887bd5 100644 --- a/keyboards/keebio/quefrency/rev2/info.json +++ b/keyboards/keebio/quefrency/rev2/info.json @@ -22,6 +22,7 @@ "pin": "B5" }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index 20f625af304a..29c55072ea53 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json index 4f14a0f6a829..93dd6774b57d 100644 --- a/keyboards/keebio/quefrency/rev3/info.json +++ b/keyboards/keebio/quefrency/rev3/info.json @@ -22,6 +22,7 @@ "pin": "B5" }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev4/config.h b/keyboards/keebio/quefrency/rev4/config.h index da173dde3ee5..84e9d85dd465 100644 --- a/keyboards/keebio/quefrency/rev4/config.h +++ b/keyboards/keebio/quefrency/rev4/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json index 64a2361f81b0..53b30b5d7048 100644 --- a/keyboards/keebio/quefrency/rev4/info.json +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -19,6 +19,7 @@ ] }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/quefrency/rev5/config.h b/keyboards/keebio/quefrency/rev5/config.h index da173dde3ee5..84e9d85dd465 100644 --- a/keyboards/keebio/quefrency/rev5/config.h +++ b/keyboards/keebio/quefrency/rev5/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGBLED_NUM 16 // Number of LEDs -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/keebio/quefrency/rev5/info.json b/keyboards/keebio/quefrency/rev5/info.json index 3d60d7904876..15aeef9426b0 100644 --- a/keyboards/keebio/quefrency/rev5/info.json +++ b/keyboards/keebio/quefrency/rev5/info.json @@ -19,6 +19,7 @@ ] }, "rgblight": { + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8] }, "ws2812": { diff --git a/keyboards/keebio/sinc/keymaps/default/keymap.c b/keyboards/keebio/sinc/keymaps/default/keymap.c index 20c12a4a6e46..171b7a7d057a 100644 --- a/keyboards/keebio/sinc/keymaps/default/keymap.c +++ b/keyboards/keebio/sinc/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// 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/keebio/sinc/keymaps/iso/keymap.c b/keyboards/keebio/sinc/keymaps/iso/keymap.c index f7ad1047bf26..f3eaaa5bca0c 100644 --- a/keyboards/keebio/sinc/keymaps/iso/keymap.c +++ b/keyboards/keebio/sinc/keymaps/iso/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// 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/keebio/sinc/keymaps/via/keymap.c b/keyboards/keebio/sinc/keymaps/via/keymap.c index 2a54d1aa5a3d..a1299ce112ba 100644 --- a/keyboards/keebio/sinc/keymaps/via/keymap.c +++ b/keyboards/keebio/sinc/keymaps/via/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// 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/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h index c394777a8f82..8894354d4313 100644 --- a/keyboards/keebio/sinc/rev1/config.h +++ b/keyboards/keebio/sinc/rev1/config.h @@ -26,8 +26,6 @@ along with this program. If not, see . /* Synchronize Caps Lock LED across halves */ #define SPLIT_LED_STATE_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index d9b09568bdad..5ddb54ee6038 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -49,6 +49,7 @@ }, "rgblight": { "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8], "animations": { "alternating": true, diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h index c394777a8f82..8894354d4313 100644 --- a/keyboards/keebio/sinc/rev2/config.h +++ b/keyboards/keebio/sinc/rev2/config.h @@ -26,8 +26,6 @@ along with this program. If not, see . /* Synchronize Caps Lock LED across halves */ #define SPLIT_LED_STATE_ENABLE -/* ws2812 RGB LED */ -#define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index d9372d9e9479..0c86727abeda 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -49,6 +49,7 @@ }, "rgblight": { "led_count": 16, + "led_map": [1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8], "split_count": [8, 8], "animations": { "alternating": true, diff --git a/keyboards/keebio/sinc/rev4/config.h b/keyboards/keebio/sinc/rev4/config.h new file mode 100644 index 000000000000..b6c5785f4cfa --- /dev/null +++ b/keyboards/keebio/sinc/rev4/config.h @@ -0,0 +1,72 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_HAND_PIN GP4 +#define USB_VBUS_PIN GP14 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 +#define SERIAL_USART_PIN_SWAP +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U +#define I2C_DRIVER I2CD1 +#define I2C1_SDA_PIN GP22 +#define I2C1_SCL_PIN GP23 + +// RGB Matrix +#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_FRACTAL +#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_MAXIMUM_BRIGHTNESS 120 +#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS +#define RGB_MATRIX_LED_COUNT 117 +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/keebio/sinc/rev4/halconf.h b/keyboards/keebio/sinc/rev4/halconf.h new file mode 100644 index 000000000000..64036dec35f9 --- /dev/null +++ b/keyboards/keebio/sinc/rev4/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keebio/sinc/rev4/info.json b/keyboards/keebio/sinc/rev4/info.json new file mode 100644 index 000000000000..f985f64e48fe --- /dev/null +++ b/keyboards/keebio/sinc/rev4/info.json @@ -0,0 +1,1146 @@ +{ + "keyboard_name": "Sinc Rev. 4", + "usb": { + "pid": "0x4267", + "device_version": "4.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "console": true, + "rgb_matrix": true + }, + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP5", "pin_b": "GP6"} + ] + } + }, + "matrix_pins": { + "right": { + "cols": ["GP29", "GP28", "GP27", "GP7", "GP2", "GP3", "GP11", "GP12", "GP13"], + "rows": ["GP16", "GP19", "GP17", "GP9", "GP8", "GP26"] + } + } + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP7", "GP2", "GP3", "GP11", "GP12", "GP13"], + "rows": ["GP25", "GP19", "GP24", "GP17", "GP16", "GP26"] + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "GP21", "pin_b": "GP20"} + ] + }, + "ws2812": { + "pin": "GP18", + "driver": "vendor" + }, + "rgb_matrix": { + "driver": "WS2812", + "split_count": [58, 59], + "layout": [ + {"flags": 4, "matrix": [5, 2], "x": 30, "y": 0}, + {"flags": 2, "x": 42, "y": 6}, + {"flags": 4, "matrix": [5, 3], "x": 45, "y": 0}, + {"flags": 4, "matrix": [5, 4], "x": 58, "y": 0}, + {"flags": 2, "x": 67, "y": 6}, + {"flags": 4, "matrix": [5, 5], "x": 70, "y": 0}, + {"flags": 4, "matrix": [5, 6], "x": 82, "y": 0}, + {"flags": 4, "matrix": [5, 7], "x": 97, "y": 0}, + {"flags": 2, "x": 103, "y": 6}, + {"flags": 4, "matrix": [5, 8], "x": 109, "y": 0}, + + {"flags": 4, "matrix": [0, 8], "x": 103, "y": 15}, + {"flags": 4, "matrix": [0, 7], "x": 91, "y": 15}, + {"flags": 4, "matrix": [0, 6], "x": 79, "y": 15}, + {"flags": 4, "matrix": [0, 5], "x": 67, "y": 15}, + {"flags": 4, "matrix": [0, 4], "x": 54, "y": 15}, + {"flags": 4, "matrix": [0, 3], "x": 42, "y": 15}, + {"flags": 4, "matrix": [0, 2], "x": 30, "y": 15}, + + {"flags": 4, "matrix": [1, 2], "x": 33, "y": 27}, + {"flags": 4, "matrix": [1, 3], "x": 48, "y": 27}, + {"flags": 4, "matrix": [1, 4], "x": 61, "y": 27}, + {"flags": 4, "matrix": [1, 5], "x": 73, "y": 27}, + {"flags": 4, "matrix": [1, 6], "x": 85, "y": 27}, + {"flags": 4, "matrix": [1, 7], "x": 97, "y": 27}, + + {"flags": 4, "matrix": [2, 7], "x": 100, "y": 40}, + {"flags": 4, "matrix": [2, 6], "x": 88, "y": 40}, + {"flags": 4, "matrix": [2, 5], "x": 76, "y": 40}, + {"flags": 4, "matrix": [2, 4], "x": 64, "y": 40}, + {"flags": 4, "matrix": [2, 3], "x": 51, "y": 40}, + {"flags": 4, "matrix": [2, 2], "x": 35, "y": 40}, + + {"flags": 4, "matrix": [3, 2], "x": 38, "y": 52}, + {"flags": 4, "matrix": [3, 4], "x": 58, "y": 52}, + {"flags": 4, "matrix": [3, 5], "x": 70, "y": 52}, + {"flags": 4, "matrix": [3, 6], "x": 82, "y": 52}, + {"flags": 4, "matrix": [3, 7], "x": 94, "y": 52}, + {"flags": 2, "x": 100, "y": 55}, + {"flags": 4, "matrix": [3, 8], "x": 106, "y": 52}, + + {"flags": 4, "x": 107, "y": 64}, + {"flags": 4, "matrix": [4, 7], "x": 97, "y": 64}, + {"flags": 4, "matrix": [4, 6], "x": 85, "y": 64}, + {"flags": 4, "matrix": [4, 5], "x": 75, "y": 64}, + {"flags": 2, "x": 70, "y": 64}, + {"flags": 4, "matrix": [4, 4], "x": 62, "y": 64}, + {"flags": 4, "matrix": [4, 3], "x": 47, "y": 64}, + {"flags": 2, "x": 39, "y": 64}, + {"flags": 4, "matrix": [4, 2], "x": 32, "y": 64}, + + {"flags": 4, "matrix": [4, 1], "x": 12, "y": 64}, + {"flags": 2, "x": 6, "y": 64}, + {"flags": 4, "matrix": [4, 0], "x": 0, "y": 64}, + + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 52}, + {"flags": 4, "matrix": [3, 1], "x": 12, "y": 52}, + {"flags": 4, "matrix": [2, 1], "x": 12, "y": 40}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 40}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 27}, + {"flags": 4, "matrix": [1, 1], "x": 12, "y": 27}, + {"flags": 4, "matrix": [0, 1], "x": 12, "y": 15}, + {"flags": 4, "matrix": [0, 0], "x": 0, "y": 15}, + {"flags": 4, "matrix": [5, 0], "x": 0, "y": 0}, + {"flags": 2, "x": 9, "y": 0}, + + {"flags": 2, "x": 224, "y": 6}, + {"flags": 4, "matrix": [11, 8], "x": 224, "y": 0}, + {"flags": 4, "matrix": [11, 7], "x": 212, "y": 0}, + {"flags": 4, "matrix": [11, 6], "x": 197, "y": 0}, + {"flags": 2, "x": 191, "y": 6}, + {"flags": 4, "matrix": [11, 5], "x": 185, "y": 0}, + {"flags": 4, "matrix": [11, 4], "x": 173, "y": 0}, + {"flags": 2, "x": 166, "y": 6}, + {"flags": 4, "matrix": [11, 3], "x": 160, "y": 0}, + {"flags": 4, "matrix": [11, 2], "x": 145, "y": 0}, + {"flags": 2, "x": 139, "y": 6}, + {"flags": 4, "matrix": [11, 1], "x": 133, "y": 0}, + + {"flags": 4, "matrix": [6, 0], "x": 127, "y": 15}, + {"flags": 4, "matrix": [6, 1], "x": 139, "y": 15}, + {"flags": 4, "matrix": [6, 2], "x": 151, "y": 15}, + {"flags": 4, "matrix": [6, 3], "x": 163, "y": 15}, + {"flags": 4, "matrix": [6, 4], "x": 176, "y": 15}, + {"flags": 4, "matrix": [6, 5], "x": 188, "y": 15}, + {"flags": 4, "matrix": [6, 6], "x": 200, "y": 15}, + {"flags": 4, "matrix": [6, 7], "x": 212, "y": 15}, + {"flags": 4, "matrix": [6, 8], "x": 224, "y": 15}, + + {"flags": 4, "matrix": [7, 8], "x": 224, "y": 27}, + {"flags": 4, "matrix": [7, 7], "x": 209, "y": 27}, + {"flags": 4, "matrix": [7, 6], "x": 194, "y": 27}, + {"flags": 4, "matrix": [7, 5], "x": 182, "y": 27}, + {"flags": 4, "matrix": [7, 4], "x": 170, "y": 27}, + {"flags": 4, "matrix": [7, 3], "x": 157, "y": 27}, + {"flags": 4, "matrix": [7, 2], "x": 145, "y": 27}, + {"flags": 4, "matrix": [7, 1], "x": 133, "y": 27}, + {"flags": 4, "matrix": [7, 0], "x": 121, "y": 27}, + + {"flags": 4, "matrix": [8, 0], "x": 124, "y": 40}, + {"flags": 4, "matrix": [8, 1], "x": 136, "y": 40}, + {"flags": 4, "matrix": [8, 2], "x": 148, "y": 40}, + {"flags": 4, "matrix": [8, 3], "x": 160, "y": 40}, + {"flags": 4, "matrix": [8, 4], "x": 173, "y": 40}, + {"flags": 4, "matrix": [8, 5], "x": 185, "y": 40}, + {"flags": 4, "matrix": [8, 7], "x": 204, "y": 40}, + {"flags": 4, "matrix": [8, 8], "x": 224, "y": 40}, + + {"flags": 4, "matrix": [9, 8], "x": 224, "y": 52}, + {"flags": 4, "matrix": [9, 7], "x": 212, "y": 52}, + {"flags": 4, "matrix": [9, 6], "x": 195, "y": 52}, + {"flags": 4, "matrix": [9, 4], "x": 179, "y": 52}, + {"flags": 4, "matrix": [9, 3], "x": 166, "y": 52}, + {"flags": 4, "matrix": [9, 2], "x": 154, "y": 52}, + {"flags": 4, "matrix": [9, 1], "x": 142, "y": 52}, + {"flags": 4, "matrix": [9, 0], "x": 130, "y": 52}, + + {"flags": 2, "x": 136, "y": 55}, + {"flags": 4, "matrix": [10, 0], "x": 132, "y": 64}, + {"flags": 4, "matrix": [10, 1], "x": 139, "y": 64}, + {"flags": 4, "x": 148, "y": 64}, + {"flags": 2, "x": 154, "y": 64}, + {"flags": 4, "matrix": [10, 2], "x": 163, "y": 64}, + {"flags": 4, "matrix": [10, 3], "x": 176, "y": 64}, + {"flags": 4, "matrix": [10, 4], "x": 188, "y": 64}, + {"flags": 2, "x": 194, "y": 64}, + {"flags": 4, "matrix": [10, 6], "x": 200, "y": 64}, + {"flags": 4, "matrix": [10, 7], "x": 212, "y": 64}, + {"flags": 4, "matrix": [10, 8], "x": 224, "y": 64}, + {"flags": 2, "x": 224, "y": 55} + ] + }, + "layouts": { + "LAYOUT_75": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + {"matrix": [7, 7], "x": 14.5, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 7], "x": 13.75, "y": 3.25, "w": 2.25}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 6], "x": 13.75, "y": 3.25}, + {"matrix": [7, 7], "x": 14.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 1.25, "y": 4.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25} + ] + }, + "LAYOUT_75_iso_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 6], "x": 16, "y": 3.25}, + {"matrix": [7, 7], "x": 17, "y": 2.25, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 4.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_75_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 7], "x": 16, "y": 3.25, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_80": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + {"matrix": [11, 8], "x": 16, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + {"matrix": [6, 8], "x": 16, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + {"matrix": [7, 7], "x": 14.5, "y": 2.25, "w": 1.5}, + {"matrix": [7, 8], "x": 16, "y": 2.25}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 7], "x": 13.75, "y": 3.25, "w": 2.25}, + {"matrix": [8, 8], "x": 16, "y": 3.25}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + {"matrix": [9, 8], "x": 16, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25}, + {"matrix": [10, 8], "x": 16, "y": 5.25} + ] + }, + "LAYOUT_80_iso": { + "layout": [ + {"matrix": [5, 2], "x": 0, "y": 0}, + {"matrix": [5, 3], "x": 1.25, "y": 0}, + {"matrix": [5, 4], "x": 2.25, "y": 0}, + {"matrix": [5, 5], "x": 3.25, "y": 0}, + {"matrix": [5, 6], "x": 4.25, "y": 0}, + {"matrix": [5, 7], "x": 5.5, "y": 0}, + {"matrix": [5, 8], "x": 6.5, "y": 0}, + + {"matrix": [11, 1], "x": 8.5, "y": 0}, + {"matrix": [11, 2], "x": 9.5, "y": 0}, + {"matrix": [11, 3], "x": 10.75, "y": 0}, + {"matrix": [11, 4], "x": 11.75, "y": 0}, + {"matrix": [11, 5], "x": 12.75, "y": 0}, + {"matrix": [11, 6], "x": 13.75, "y": 0}, + {"matrix": [11, 7], "x": 15, "y": 0}, + {"matrix": [11, 8], "x": 16, "y": 0}, + + {"matrix": [0, 2], "x": 0, "y": 1.25}, + {"matrix": [0, 3], "x": 1, "y": 1.25}, + {"matrix": [0, 4], "x": 2, "y": 1.25}, + {"matrix": [0, 5], "x": 3, "y": 1.25}, + {"matrix": [0, 6], "x": 4, "y": 1.25}, + {"matrix": [0, 7], "x": 5, "y": 1.25}, + {"matrix": [0, 8], "x": 6, "y": 1.25}, + + {"matrix": [6, 0], "x": 8, "y": 1.25}, + {"matrix": [6, 1], "x": 9, "y": 1.25}, + {"matrix": [6, 2], "x": 10, "y": 1.25}, + {"matrix": [6, 3], "x": 11, "y": 1.25}, + {"matrix": [6, 4], "x": 12, "y": 1.25}, + {"matrix": [6, 5], "x": 13, "y": 1.25}, + {"matrix": [6, 6], "x": 14, "y": 1.25}, + {"matrix": [6, 7], "x": 15, "y": 1.25}, + {"matrix": [6, 8], "x": 16, "y": 1.25}, + + {"matrix": [1, 2], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 1.5, "y": 2.25}, + {"matrix": [1, 4], "x": 2.5, "y": 2.25}, + {"matrix": [1, 5], "x": 3.5, "y": 2.25}, + {"matrix": [1, 6], "x": 4.5, "y": 2.25}, + {"matrix": [1, 7], "x": 5.5, "y": 2.25}, + + {"matrix": [7, 0], "x": 7.5, "y": 2.25}, + {"matrix": [7, 1], "x": 8.5, "y": 2.25}, + {"matrix": [7, 2], "x": 9.5, "y": 2.25}, + {"matrix": [7, 3], "x": 10.5, "y": 2.25}, + {"matrix": [7, 4], "x": 11.5, "y": 2.25}, + {"matrix": [7, 5], "x": 12.5, "y": 2.25}, + {"matrix": [7, 6], "x": 13.5, "y": 2.25}, + {"matrix": [7, 8], "x": 16, "y": 2.25}, + + {"matrix": [2, 2], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 1.75, "y": 3.25}, + {"matrix": [2, 4], "x": 2.75, "y": 3.25}, + {"matrix": [2, 5], "x": 3.75, "y": 3.25}, + {"matrix": [2, 6], "x": 4.75, "y": 3.25}, + {"matrix": [2, 7], "x": 5.75, "y": 3.25}, + + {"matrix": [8, 0], "x": 7.75, "y": 3.25}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.25}, + {"matrix": [8, 3], "x": 10.75, "y": 3.25}, + {"matrix": [8, 4], "x": 11.75, "y": 3.25}, + {"matrix": [8, 5], "x": 12.75, "y": 3.25}, + {"matrix": [8, 6], "x": 13.75, "y": 3.25}, + {"matrix": [7, 7], "x": 14.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [8, 8], "x": 16, "y": 3.25}, + + {"matrix": [3, 2], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 1.25, "y": 4.25}, + {"matrix": [3, 4], "x": 2.25, "y": 4.25}, + {"matrix": [3, 5], "x": 3.25, "y": 4.25}, + {"matrix": [3, 6], "x": 4.25, "y": 4.25}, + {"matrix": [3, 7], "x": 5.25, "y": 4.25}, + {"matrix": [3, 8], "x": 6.25, "y": 4.25}, + + {"matrix": [9, 0], "x": 8.25, "y": 4.25}, + {"matrix": [9, 1], "x": 9.25, "y": 4.25}, + {"matrix": [9, 2], "x": 10.25, "y": 4.25}, + {"matrix": [9, 3], "x": 11.25, "y": 4.25}, + {"matrix": [9, 4], "x": 12.25, "y": 4.25}, + {"matrix": [9, 6], "x": 13.25, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 15, "y": 4.25}, + {"matrix": [9, 8], "x": 16, "y": 4.25}, + + {"matrix": [4, 2], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 5, "y": 5.25}, + {"matrix": [4, 7], "x": 6, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 8.25, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 9.5, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 11, "y": 5.25}, + {"matrix": [10, 3], "x": 12, "y": 5.25}, + {"matrix": [10, 4], "x": 13, "y": 5.25}, + {"matrix": [10, 6], "x": 14, "y": 5.25}, + {"matrix": [10, 7], "x": 15, "y": 5.25}, + {"matrix": [10, 8], "x": 16, "y": 5.25} + ] + }, + "LAYOUT_80_iso_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + {"matrix": [11, 8], "x": 18.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + {"matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 6], "x": 16, "y": 3.25}, + {"matrix": [7, 7], "x": 17, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 4.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + }, + "LAYOUT_80_with_macro": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + {"matrix": [11, 8], "x": 18.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + {"matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + {"matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 7], "x": 16, "y": 3.25, "w": 2.25}, + {"matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 2.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0}, + {"matrix": [5, 2], "x": 2.25, "y": 0}, + {"matrix": [5, 3], "x": 3.5, "y": 0}, + {"matrix": [5, 4], "x": 4.5, "y": 0}, + {"matrix": [5, 5], "x": 5.5, "y": 0}, + {"matrix": [5, 6], "x": 6.5, "y": 0}, + {"matrix": [5, 7], "x": 7.75, "y": 0}, + {"matrix": [5, 8], "x": 8.75, "y": 0}, + + {"matrix": [11, 1], "x": 10.75, "y": 0}, + {"matrix": [11, 2], "x": 11.75, "y": 0}, + {"matrix": [11, 3], "x": 13, "y": 0}, + {"matrix": [11, 4], "x": 14, "y": 0}, + {"matrix": [11, 5], "x": 15, "y": 0}, + {"matrix": [11, 6], "x": 16, "y": 0}, + {"matrix": [11, 7], "x": 17.25, "y": 0}, + {"matrix": [11, 8], "x": 18.25, "y": 0}, + + {"matrix": [0, 0], "x": 0, "y": 1.25}, + {"matrix": [0, 1], "x": 1, "y": 1.25}, + {"matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"matrix": [6, 6], "x": 16.25, "y": 1.25}, + {"matrix": [6, 7], "x": 17.25, "y": 1.25}, + {"matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"matrix": [1, 0], "x": 0, "y": 2.25}, + {"matrix": [1, 1], "x": 1, "y": 2.25}, + {"matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + {"matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"matrix": [2, 0], "x": 0, "y": 3.25}, + {"matrix": [2, 1], "x": 1, "y": 3.25}, + {"matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"matrix": [2, 3], "x": 4, "y": 3.25}, + {"matrix": [2, 4], "x": 5, "y": 3.25}, + {"matrix": [2, 5], "x": 6, "y": 3.25}, + {"matrix": [2, 6], "x": 7, "y": 3.25}, + {"matrix": [2, 7], "x": 8, "y": 3.25}, + + {"matrix": [8, 0], "x": 10, "y": 3.25}, + {"matrix": [8, 1], "x": 11, "y": 3.25}, + {"matrix": [8, 2], "x": 12, "y": 3.25}, + {"matrix": [8, 3], "x": 13, "y": 3.25}, + {"matrix": [8, 4], "x": 14, "y": 3.25}, + {"matrix": [8, 5], "x": 15, "y": 3.25}, + {"matrix": [8, 6], "x": 16, "y": 3.25}, + {"matrix": [8, 7], "x": 17, "y": 3.25, "w": 1.25}, + {"matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"matrix": [3, 0], "x": 0, "y": 4.25}, + {"matrix": [3, 1], "x": 1, "y": 4.25}, + {"matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 4.25}, + {"matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"matrix": [4, 0], "x": 0, "y": 5.25}, + {"matrix": [4, 1], "x": 1, "y": 5.25}, + {"matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"matrix": [4, 6], "x": 7.25, "y": 5.25}, + {"matrix": [4, 7], "x": 8.25, "y": 5.25, "w": 1.25}, + + {"matrix": [10, 0], "x": 10.5, "y": 5.25, "w": 1.25}, + {"matrix": [10, 1], "x": 11.75, "y": 5.25, "w": 1.5}, + {"matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keebio/sinc/rev4/mcuconf.h b/keyboards/keebio/sinc/rev4/mcuconf.h new file mode 100644 index 000000000000..8b26af413192 --- /dev/null +++ b/keyboards/keebio/sinc/rev4/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2023 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/keebio/sinc/rev4/rules.mk b/keyboards/keebio/sinc/rev4/rules.mk new file mode 100644 index 000000000000..161ec22b16e2 --- /dev/null +++ b/keyboards/keebio/sinc/rev4/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor diff --git a/keyboards/keycapsss/kimiko/rev1/config.h b/keyboards/keycapsss/kimiko/rev1/config.h index 60d11111ace6..2ddcf1a143d5 100644 --- a/keyboards/keycapsss/kimiko/rev1/config.h +++ b/keyboards/keycapsss/kimiko/rev1/config.h @@ -18,7 +18,6 @@ #ifdef RGBLIGHT_ENABLE # define RGBLED_NUM 60 // Total number of LEDs -# define RGBLIGHT_SPLIT #endif // Limit the power draw diff --git a/keyboards/kibou/winter/info.json b/keyboards/kibou/winter/info.json new file mode 100644 index 000000000000..d4d8005aa3d7 --- /dev/null +++ b/keyboards/kibou/winter/info.json @@ -0,0 +1,119 @@ +{ + "manufacturer": "kibou", + "keyboard_name": "winter", + "maintainer": "kibou", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "A4" + }, + "matrix_pins": { + "cols": ["A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A3", "A6", "A10", "A15", "B9", "B4"], + "rows": ["B6", "B5", "B3", "A5", "B8", "B7"] + }, + "processor": "STM32F072", + "url": "https://kibou.store/", + "usb": { + "device_version": "0.0.1", + "pid": "0xA003", + "vid": "0x586A" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "x": 0, "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.5, "y": 0 }, + { "matrix": [0, 7], "x": 7.5, "y": 0 }, + { "matrix": [0, 8], "x": 8.5, "y": 0 }, + { "matrix": [0, 9], "x": 9.5, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [0, 14], "x": 14, "y": 0 }, + { "matrix": [0, 15], "x": 15.25, "y": 0 }, + { "matrix": [0, 16], "x": 16.25, "y": 0 }, + { "matrix": [0, 17], "x": 17.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], "w": 2, "x": 13, "y": 1.25 }, + { "matrix": [1, 15], "x": 15.25, "y": 1.25 }, + { "matrix": [1, 16], "x": 16.25, "y": 1.25 }, + { "matrix": [1, 17], "x": 17.25, "y": 1.25 }, + { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 }, + { "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], "w": 1.5, "x": 13.5, "y": 2.25 }, + { "matrix": [2, 15], "x": 15.25, "y": 2.25 }, + { "matrix": [2, 16], "x": 16.25, "y": 2.25 }, + { "matrix": [2, 17], "x": 17.25, "y": 2.25 }, + { "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 }, + { "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], "w": 2.25, "x": 12.75, "y": 3.25 }, + { "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 }, + { "matrix": [4, 1], "x": 2.25, "y": 4.25 }, + { "matrix": [4, 2], "x": 3.25, "y": 4.25 }, + { "matrix": [4, 3], "x": 4.25, "y": 4.25 }, + { "matrix": [4, 4], "x": 5.25, "y": 4.25 }, + { "matrix": [4, 5], "x": 6.25, "y": 4.25 }, + { "matrix": [4, 6], "x": 7.25, "y": 4.25 }, + { "matrix": [4, 7], "x": 8.25, "y": 4.25 }, + { "matrix": [4, 8], "x": 9.25, "y": 4.25 }, + { "matrix": [4, 9], "x": 10.25, "y": 4.25 }, + { "matrix": [4, 10], "x": 11.25, "y": 4.25 }, + { "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 }, + { "matrix": [4, 16], "x": 16.25, "y": 4.25 }, + { "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 }, + { "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 }, + { "matrix": [5, 6], "w": 7, "x": 4, "y": 5.25 }, + { "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.25 }, + { "matrix": [5, 14], "w": 1.5, "x": 13.5, "y": 5.25 }, + { "matrix": [5, 15], "x": 15.25, "y": 5.25 }, + { "matrix": [5, 16], "x": 16.25, "y": 5.25 }, + { "matrix": [5, 17], "x": 17.25, "y": 5.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/kibou/winter/keymaps/default/keymap.c b/keyboards/kibou/winter/keymaps/default/keymap.c new file mode 100644 index 000000000000..ecaadeb89868 --- /dev/null +++ b/keyboards/kibou/winter/keymaps/default/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_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_LSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/kibou/winter/keymaps/via/keymap.c b/keyboards/kibou/winter/keymaps/via/keymap.c new file mode 100644 index 000000000000..ecaadeb89868 --- /dev/null +++ b/keyboards/kibou/winter/keymaps/via/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [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_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_LSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/kibou/winter/keymaps/via/rules.mk b/keyboards/kibou/winter/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/kibou/winter/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/kibou/winter/readme.md b/keyboards/kibou/winter/readme.md new file mode 100644 index 000000000000..29aa667ffd20 --- /dev/null +++ b/keyboards/kibou/winter/readme.md @@ -0,0 +1,23 @@ +# winter + +* Keyboard Maintainer: [kibou](https://kibou.store/) +* Hardware Supported: winter PCBs, STM32F072 +* Hardware Availability: https://kibou.store/ + +Make example for this keyboard (after setting up your build environment): + + make kibou/winter:default + +Flashing example for this keyboard: + + make kibou/winter: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/kibou/winter/rules.mk b/keyboards/kibou/winter/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/kibou/winter/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/lily58/glow_enc/config.h b/keyboards/lily58/glow_enc/config.h index 6c1cad1103a9..84f3b40bc9cf 100644 --- a/keyboards/lily58/glow_enc/config.h +++ b/keyboards/lily58/glow_enc/config.h @@ -21,5 +21,3 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 72 // Number of LEDs - -#define RGBLIGHT_SPLIT diff --git a/keyboards/lily58/keymaps/gaston/keymap.c b/keyboards/lily58/keymaps/gaston/keymap.c index b7129b71e00e..4f8654b41bd4 100644 --- a/keyboards/lily58/keymaps/gaston/keymap.c +++ b/keyboards/lily58/keymaps/gaston/keymap.c @@ -26,6 +26,7 @@ enum layer_number { #define EN_LOWER LT(_LOWER, KC_SPC) #define EN_MOUSE MO(_MOUSE) +#define MT_CESC LCTL_T(KC_ESC) /* See the readme.md file for an ASCII representation of this keymap. */ @@ -34,13 +35,13 @@ 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_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MT_CESC, 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, EN_MOUSE,KC_EQL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, KC_RALT, KC_LALT, KC_LGUI, EN_LOWER,EN_LOWER, KC_LBRC, KC_RBRC, KC_BSLS ), [_LOWER] = 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_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, KC_F12, KC_TRNS, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/lily58/keymaps/gaston/readme.md b/keyboards/lily58/keymaps/gaston/readme.md index 8edd92cc3ff2..cf8b13786e3f 100644 --- a/keyboards/lily58/keymaps/gaston/readme.md +++ b/keyboards/lily58/keymaps/gaston/readme.md @@ -10,6 +10,7 @@ The main characteristics of this keymap are: * The main thumb buttons are spaces when tapped and enable the LOWER layer when held. * Vim style arrow keys. + * Left Control is ESC when tapped. * Left and right ALT in case you need different behaviors. (For example, the default Option and readline's Alt behavior in macOS.) * The LOWER layer has mostly meta keys. @@ -23,7 +24,7 @@ The main characteristics of this keymap are: |------+------+------+------+------+------| |------+------+------+------+------+------| | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | |------+------+------+------+------+------| |------+------+------+------+------+------| -|LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | +|C_ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | |------+------+------+------+------+------| MOUSE | | = |------+------+------+------+------+------| | LSFT | Z | X | C | V | B |-------| |-------| N | M | , | . | / | ENT | `-----------------------------------------/ LT / \ LT \----------------------------------------' @@ -36,7 +37,7 @@ The main characteristics of this keymap are: ```plain ,-----------------------------------------. ,-----------------------------------------. -| ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | +| TRNS | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | |------+------+------+------+------+------| |------+------+------+------+------+------| | TRNS | | MUTE | VOLD | VOLU | | | HOME | PGDN | PGUP | END | | F12 | |------+------+------+------+------+------| |------+------+------+------+------+------| diff --git a/keyboards/lily58/light/config.h b/keyboards/lily58/light/config.h index 1080139430aa..b8a5d05e15c1 100644 --- a/keyboards/lily58/light/config.h +++ b/keyboards/lily58/light/config.h @@ -21,4 +21,3 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 70 -#define RGBLIGHT_SPLIT diff --git a/keyboards/manta60/config.h b/keyboards/manta60/config.h index dbda0b7fed7e..0ec347095547 100644 --- a/keyboards/manta60/config.h +++ b/keyboards/manta60/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #define SELECT_SOFT_SERIAL_SPEED 1 # define RGBLED_NUM 68 -# define RGBLIGHT_SPLIT # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # ifndef IOS_DEVICE_ENABLE diff --git a/keyboards/matrix/cain_re/config.h b/keyboards/matrix/cain_re/config.h index 017961460c49..df138027a601 100644 --- a/keyboards/matrix/cain_re/config.h +++ b/keyboards/matrix/cain_re/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_SLEEP -#define RGBLIGHT_LED_MAP { 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 2, 3 } #define CAPS_PIN D3 #define NUM_PIN F7 diff --git a/keyboards/matrix/cain_re/info.json b/keyboards/matrix/cain_re/info.json index 5b89ed83ef78..f9af90c15e41 100644 --- a/keyboards/matrix/cain_re/info.json +++ b/keyboards/matrix/cain_re/info.json @@ -8,6 +8,9 @@ "pid": "0x0106", "device_version": "0.0.1" }, + "rgblight": { + "led_map": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 2, 3] + }, "ws2812": { "pin": "E6" }, diff --git a/keyboards/mechwild/mokulua/mirrored/config.h b/keyboards/mechwild/mokulua/mirrored/config.h index 29100a303fa4..f02a621a1d01 100644 --- a/keyboards/mechwild/mokulua/mirrored/config.h +++ b/keyboards/mechwild/mokulua/mirrored/config.h @@ -9,7 +9,6 @@ #define MASTER_LEFT //#define MASTER_RIGHT -#define RGBLIGHT_SPLIT #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE #define SPLIT_MODS_ENABLE diff --git a/keyboards/mechwild/mokulua/standard/config.h b/keyboards/mechwild/mokulua/standard/config.h index 14afeae3421a..69467140d219 100644 --- a/keyboards/mechwild/mokulua/standard/config.h +++ b/keyboards/mechwild/mokulua/standard/config.h @@ -9,7 +9,6 @@ #define MASTER_LEFT //#define MASTER_RIGHT -#define RGBLIGHT_SPLIT #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_LED_STATE_ENABLE #define SPLIT_MODS_ENABLE diff --git a/keyboards/merge/um70/config.h b/keyboards/merge/um70/config.h index 1e13c06ed3e7..3b63468bc80c 100644 --- a/keyboards/merge/um70/config.h +++ b/keyboards/merge/um70/config.h @@ -20,7 +20,6 @@ #define MASTER_LEFT #define SPLIT_MODS_ENABLE -#define RGBLIGHT_SPLIT #define RGBLED_NUM 83 #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_COUNT RGBLED_NUM diff --git a/keyboards/merge/um80/config.h b/keyboards/merge/um80/config.h index c1fe7248799e..c260e8380544 100644 --- a/keyboards/merge/um80/config.h +++ b/keyboards/merge/um80/config.h @@ -20,7 +20,6 @@ #define MASTER_LEFT #define SPLIT_MODS_ENABLE -#define RGBLIGHT_SPLIT #define RGBLED_NUM 100 #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_COUNT RGBLED_NUM diff --git a/keyboards/meson/config.h b/keyboards/meson/config.h index ff11830e6d23..aeaf12e1ac39 100644 --- a/keyboards/meson/config.h +++ b/keyboards/meson/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #define USE_I2C #define RGBLED_NUM 10 - #define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h index 41c0f7e8ebfa..b36045f4d0b1 100644 --- a/keyboards/mint60/config.h +++ b/keyboards/mint60/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define RGBLED_NUM 8 -#define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/mint60/info.json b/keyboards/mint60/info.json index bd51052853f9..cdec63f48f3e 100644 --- a/keyboards/mint60/info.json +++ b/keyboards/mint60/info.json @@ -16,6 +16,9 @@ "split": { "soft_serial_pin": "D2" }, + "rgblight": { + "split": true + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/mlego/m60_split/rev1/config.h b/keyboards/mlego/m60_split/rev1/config.h index 06da0e11dfb0..ea26c474aea7 100644 --- a/keyboards/mlego/m60_split/rev1/config.h +++ b/keyboards/mlego/m60_split/rev1/config.h @@ -24,7 +24,6 @@ #define SERIAL_USART_SPEED 921600 #ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SPLIT #define RGBLIGHT_LAYERS #define RGBLIGHT_DEFAULT_HUE 213 diff --git a/keyboards/mlego/m60_split/rev2/config.h b/keyboards/mlego/m60_split/rev2/config.h index 061bc5c460dd..5431a749e083 100644 --- a/keyboards/mlego/m60_split/rev2/config.h +++ b/keyboards/mlego/m60_split/rev2/config.h @@ -26,7 +26,6 @@ #ifdef RGBLIGHT_ENABLE -#define RGBLIGHT_SPLIT #define RGBLIGHT_LAYERS #define RGBLED_NUM 16 #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h index 640cc43a5ac0..c6d7d037ec84 100644 --- a/keyboards/mode/m75h/config.h +++ b/keyboards/mode/m75h/config.h @@ -17,33 +17,5 @@ along with this program. If not, see . #pragma once -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define EEPROM_I2C_24LC256 -//#define I2C1_CLOCK_SPEED 400000 -//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 - -#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE - -/* - * 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 TAP_CODE_DELAY 50 - -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 16383 // Overriding to use more EEPROM +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE 4096 diff --git a/keyboards/mode/m75h/halconf.h b/keyboards/mode/m75h/halconf.h index 6c53f594c769..d4831df0d73f 100644 --- a/keyboards/mode/m75h/halconf.h +++ b/keyboards/mode/m75h/halconf.h @@ -21,6 +21,4 @@ #pragma once -#define HAL_USE_I2C TRUE - #include_next diff --git a/keyboards/mode/m75h/info.json b/keyboards/mode/m75h/info.json index 1ebbb8f29faa..f57aac383efe 100644 --- a/keyboards/mode/m75h/info.json +++ b/keyboards/mode/m75h/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "75H", + "keyboard_name": "M75H", "manufacturer": "Mode", "url": "", "maintainer": "Gondolindrim", diff --git a/keyboards/mode/m75h/rules.mk b/keyboards/mode/m75h/rules.mk index ee752a964b3b..5302cbfc1927 100644 --- a/keyboards/mode/m75h/rules.mk +++ b/keyboards/mode/m75h/rules.mk @@ -1,16 +1,15 @@ # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +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 +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 +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes # Enter lower-power sleep mode when on the ChibiOS idle thread diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h index b8307f43960b..c17bf51b35cd 100644 --- a/keyboards/mode/m75s/config.h +++ b/keyboards/mode/m75s/config.h @@ -17,11 +17,6 @@ along with this program. If not, see . #pragma once -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - #define BACKLIGHT_DEFAULT_LEVEL 20 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 diff --git a/keyboards/mokey/mokey12x2/info.json b/keyboards/mokey/mokey12x2/info.json new file mode 100644 index 000000000000..6f22429e72c2 --- /dev/null +++ b/keyboards/mokey/mokey12x2/info.json @@ -0,0 +1,47 @@ +{ + "keyboard_name": "Mokey12x2", + "manufacturer": "Mokey", + "url": "", + "maintainer": "Mokey", + "development_board": "bluepill", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["A6", "A5", "A4", "A3", "B9"], + "rows": ["A2", "A1", "A0", "A7"] + }, + "usb": { + "device_version": "0.0.1", + "vid": "0x6653", + "pid": "0x012A" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0,0], "x":0.25, "y":2.75}, + {"matrix": [0,1], "x":1.25, "y":2.75}, + {"matrix": [0,2], "x":2.25, "y":2.75}, + {"matrix": [0,3], "x":3.25, "y":2.75}, + {"matrix": [0,4], "x":0.25, "y":0, "w":1.5, "h":1.5}, + {"matrix": [1,0], "x":0.25, "y":3.75}, + {"matrix": [1,1], "x":1.25, "y":3.75}, + {"matrix": [1,2], "x":2.25, "y":3.75}, + {"matrix": [1,3], "x":3.25, "y":3.75}, + {"matrix": [1,4], "x":2.75, "y":0, "w":1.5, "h":1.5}, + {"matrix": [2,0], "x":0.25, "y":4.75}, + {"matrix": [2,1], "x":1.25, "y":4.75}, + {"matrix": [2,2], "x":2.25, "y":4.75}, + {"matrix": [2,3], "x":3.25, "y":4.75}, + {"matrix": [3,0], "x":0, "y":1.5}, + {"matrix": [3,1], "x":1, "y":1.5}, + {"matrix": [3,2], "x":2.5, "y":1.5}, + {"matrix": [3,3], "x":3.5, "y":1.5} + ] + } + } +} diff --git a/keyboards/mokey/mokey12x2/keymaps/default/keymap.c b/keyboards/mokey/mokey12x2/keymaps/default/keymap.c new file mode 100644 index 000000000000..74fbf1e94791 --- /dev/null +++ b/keyboards/mokey/mokey12x2/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +/* + * Copyright 2023 Mokey12×2 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_1, + KC_E, KC_F, KC_G, KC_H, KC_2, + KC_I, KC_J, KC_K, KC_L, + KC_I, KC_J, KC_K, KC_L) +}; diff --git a/keyboards/mokey/mokey12x2/keymaps/via/keymap.c b/keyboards/mokey/mokey12x2/keymaps/via/keymap.c new file mode 100644 index 000000000000..74fbf1e94791 --- /dev/null +++ b/keyboards/mokey/mokey12x2/keymaps/via/keymap.c @@ -0,0 +1,26 @@ +/* + * Copyright 2023 Mokey12×2 + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_A, KC_B, KC_C, KC_D, KC_1, + KC_E, KC_F, KC_G, KC_H, KC_2, + KC_I, KC_J, KC_K, KC_L, + KC_I, KC_J, KC_K, KC_L) +}; diff --git a/keyboards/mokey/mokey12x2/keymaps/via/rules.mk b/keyboards/mokey/mokey12x2/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/mokey/mokey12x2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/mokey/mokey12x2/readme.md b/keyboards/mokey/mokey12x2/readme.md new file mode 100644 index 000000000000..75a87062c982 --- /dev/null +++ b/keyboards/mokey/mokey12x2/readme.md @@ -0,0 +1,23 @@ +# mokey12x2 + +A Blue Pill STM32F103C8T6-based keyboard. + +* Keyboard Maintainer: [rhmokey](https://github.com/rhmokey) +* Hardware Supported: [rhmokey](https://github.com/rhmokey) + +Make example for this keyboard (after setting up your build environment): + + make mokey/mokey12x2:default + +Flashing example for this keyboard: + + make mokey/mokey12x2: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 \ No newline at end of file diff --git a/keyboards/mokey/mokey12x2/rules.mk b/keyboards/mokey/mokey12x2/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/mokey/mokey12x2/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index f68b60379c23..0e5282c511a6 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -34,37 +34,6 @@ extern bool mcp23018_leds[]; #define ML_LED_5(status) mcp23018_leds[1] = (bool)status #define ML_LED_6(status) mcp23018_leds[2] = (bool)status - -// clang-format off -#define LED_LAYOUT_moonlander( \ - l00, l01, l02, l03, l04, l05, l06, l60, l61, l62, l63, l64, l65, l66, \ - l10, l11, l12, l13, l14, l15, l16, l70, l71, l72, l73, l74, l75, l76, \ - l20, l21, l22, l23, l24, l25, l26, l80, l81, l82, l83, l84, l85, l86, \ - l30, l31, l32, l33, l34, l35, l91, l92, l93, l94, l95, l96, \ - l40, l41, l42, l43, l44, l53, lb3, la2, la3, la4, la5, la6, \ - l50, l51, l52, lb4, lb5, lb6 \ -) \ -{ \ - l00, l10, l20, l30, l40, \ - l01, l11, l21, l31, l41, \ - l02, l12, l22, l32, l42, \ - l03, l13, l23, l33, l43, \ - l04, l14, l24, l34, l44, \ - l05, l15, l25, l35, \ - l06, l16, l26, \ - l50, l51, l52, l53, \ -\ - l66, l76, l86, l96, la6, \ - l65, l75, l85, l95, la5, \ - l64, l74, l84, l94, la4, \ - l63, l73, l83, l93, la3, \ - l62, l72, l82, l92, la2, \ - l61, l71, l81, l91, \ - l60, l70, l80, \ - lb6, lb5, lb4, lb3 \ -} -// clang-format on - enum planck_ez_keycodes { TOGGLE_LAYER_COLOR = QK_KB_0, LED_LEVEL, diff --git a/keyboards/neito/config.h b/keyboards/neito/config.h index ef9b51892005..fb5d1cd72ea5 100644 --- a/keyboards/neito/config.h +++ b/keyboards/neito/config.h @@ -30,7 +30,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 11 -#define RGBLIGHT_LED_MAP { 4, 3, 2, 1, 0, 10, 9, 8, 7, 6, 5 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/neito/info.json b/keyboards/neito/info.json index a226d236c315..dede656f17ab 100644 --- a/keyboards/neito/info.json +++ b/keyboards/neito/info.json @@ -30,7 +30,8 @@ "pin": "D5" }, "rgblight": { - "max_brightness": 200 + "max_brightness": 200, + "led_map": [4, 3, 2, 1, 0, 10, 9, 8, 7, 6, 5] }, "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/nullbitsco/snap/config.h b/keyboards/nullbitsco/snap/config.h index cbc354a13a1b..b6f9ae49084d 100644 --- a/keyboards/nullbitsco/snap/config.h +++ b/keyboards/nullbitsco/snap/config.h @@ -25,7 +25,7 @@ // NOTE: There is a bug in AVR deep sleep, which // causes the MCU to stop responding in some cases. -// Disabling the watchdog prevents the MCU from entering +// Disabling the watchdog prevents the MCU from entering // power down, while still turning off LEDs, audio, etc. // See qmk_firmware/issues/20087 for background #undef WDT_vect @@ -59,7 +59,6 @@ /* Optional SMT LED pins */ #define RGBLED_NUM 10 -#define RGBLIGHT_LED_MAP { 8, 9, 0, 1, 2, 6, 7, 3, 4, 5 } #define RGBLIGHT_SLEEP #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/nullbitsco/snap/info.json b/keyboards/nullbitsco/snap/info.json index fcb224d30ad9..6604b19fdbfc 100644 --- a/keyboards/nullbitsco/snap/info.json +++ b/keyboards/nullbitsco/snap/info.json @@ -8,6 +8,7 @@ "device_version": "0.0.1" }, "rgblight": { + "led_map": [8, 9, 0, 1, 2, 6, 7, 3, 4, 5], "split_count": [5, 5] }, "ws2812": { diff --git a/keyboards/obosob/arch_36/config.h b/keyboards/obosob/arch_36/config.h index 3852baf5a7fa..e584bb045cef 100644 --- a/keyboards/obosob/arch_36/config.h +++ b/keyboards/obosob/arch_36/config.h @@ -19,8 +19,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE #define RGBLED_NUM 12 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } #endif #define OLED_DISPLAY_128X64 diff --git a/keyboards/obosob/arch_36/info.json b/keyboards/obosob/arch_36/info.json index cffa4e8e4466..b888049bc511 100644 --- a/keyboards/obosob/arch_36/info.json +++ b/keyboards/obosob/arch_36/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D2" }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "split_count": [6, 6] }, "ws2812": { diff --git a/keyboards/ogre/ergo_single/config.h b/keyboards/ogre/ergo_single/config.h index c6739d7f6657..690b44eb064e 100644 --- a/keyboards/ogre/ergo_single/config.h +++ b/keyboards/ogre/ergo_single/config.h @@ -18,7 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 14 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 13, 12,11, 10, 9, 8, 7} #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/ogre/ergo_single/info.json b/keyboards/ogre/ergo_single/info.json index 4a5b96b8add4..c51af75fe02e 100644 --- a/keyboards/ogre/ergo_single/info.json +++ b/keyboards/ogre/ergo_single/info.json @@ -13,6 +13,9 @@ "rows": ["D3", "D2", "D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"] }, "diode_direction": "COL2ROW", + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 13, 12, 11, 10, 9, 8, 7] + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/ogre/ergo_split/config.h b/keyboards/ogre/ergo_split/config.h index 20bff507def5..adff7abc3ebf 100644 --- a/keyboards/ogre/ergo_split/config.h +++ b/keyboards/ogre/ergo_split/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #define SPLIT_HAND_PIN D1 #define RGBLED_NUM 14 -#define RGBLIGHT_LED_MAP { 6, 5, 4, 3, 2, 1, 0, 13, 12,11, 10, 9, 8, 7} #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/ogre/ergo_split/info.json b/keyboards/ogre/ergo_split/info.json index 1055724b5ffa..3321f0e1be1c 100644 --- a/keyboards/ogre/ergo_split/info.json +++ b/keyboards/ogre/ergo_split/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D3" }, "rgblight": { + "led_map": [6, 5, 4, 3, 2, 1, 0, 13, 12, 11, 10, 9, 8, 7], "split_count": [7, 7] }, "ws2812": { diff --git a/keyboards/om60/config.h b/keyboards/om60/config.h index 16957f9a0a1f..1936b2438226 100644 --- a/keyboards/om60/config.h +++ b/keyboards/om60/config.h @@ -36,23 +36,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 69 - #define RGBLIGHT_LED_MAP { \ - 0, 1, 2, 3, \ - 8, 7, 6, 5, 4, \ - 9,10,11,12,13, \ - 18,17,16,15,14, \ - 19,20,21,22,23, \ - 28,27,26,25,24, \ - 29,30,31,32,33, \ - 38,37,36,35,34, \ - 39,40,41,42,43, \ - 48,47,46,45,44, \ - 49,50,51,52,53, \ - 58,57,56,55,54, \ - 59,60,61,62,63, \ - 68,67,66,65,64 \ - } - #define RGBLIGHT_SLEEP #endif diff --git a/keyboards/om60/info.json b/keyboards/om60/info.json index 7efa8097d602..288c5aace442 100644 --- a/keyboards/om60/info.json +++ b/keyboards/om60/info.json @@ -13,6 +13,9 @@ {"pin_a": "B4", "pin_b": "B5"} ] }, + "rgblight": { + "led_map": [0, 1, 2, 3, 8, 7, 6, 5, 4, 9, 10, 11, 12, 13, 18, 17, 16, 15, 14, 19, 20, 21, 22, 23, 28, 27, 26, 25, 24, 29, 30, 31, 32, 33, 38, 37, 36, 35, 34, 39, 40, 41, 42, 43, 48, 47, 46, 45, 44, 49, 50, 51, 52, 53, 58, 57, 56, 55, 54, 59, 60, 61, 62, 63, 68, 67, 66, 65, 64] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/omkbd/ergodash/mini/config.h b/keyboards/omkbd/ergodash/mini/config.h index 743db387e8bf..38c62de36a45 100644 --- a/keyboards/omkbd/ergodash/mini/config.h +++ b/keyboards/omkbd/ergodash/mini/config.h @@ -40,7 +40,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 20 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/ergodash/rev1/config.h b/keyboards/omkbd/ergodash/rev1/config.h index 851116d455ae..11f057d60046 100644 --- a/keyboards/omkbd/ergodash/rev1/config.h +++ b/keyboards/omkbd/ergodash/rev1/config.h @@ -40,11 +40,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 24 -#define RGBLIGHT_SPLIT - -// The LEDs on the slave half go in reverse order -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, \ - 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12} #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/ergodash/rev1/info.json b/keyboards/omkbd/ergodash/rev1/info.json index 3a395bde83ec..b73694688cc5 100644 --- a/keyboards/omkbd/ergodash/rev1/info.json +++ b/keyboards/omkbd/ergodash/rev1/info.json @@ -21,6 +21,7 @@ "soft_serial_pin": "D0" }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12], "split_count": [12, 12] }, "ws2812": { diff --git a/keyboards/omkbd/runner3680/3x6/config.h b/keyboards/omkbd/runner3680/3x6/config.h index 282dda9dcda1..ee17cb6adfa1 100644 --- a/keyboards/omkbd/runner3680/3x6/config.h +++ b/keyboards/omkbd/runner3680/3x6/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 36 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/3x7/config.h b/keyboards/omkbd/runner3680/3x7/config.h index 37610bc4ba48..deed54f177a5 100644 --- a/keyboards/omkbd/runner3680/3x7/config.h +++ b/keyboards/omkbd/runner3680/3x7/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 42 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/3x8/config.h b/keyboards/omkbd/runner3680/3x8/config.h index f53b886d7e96..29907f0c367c 100644 --- a/keyboards/omkbd/runner3680/3x8/config.h +++ b/keyboards/omkbd/runner3680/3x8/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 48 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/4x6/config.h b/keyboards/omkbd/runner3680/4x6/config.h index f53b886d7e96..29907f0c367c 100644 --- a/keyboards/omkbd/runner3680/4x6/config.h +++ b/keyboards/omkbd/runner3680/4x6/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 48 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/4x7/config.h b/keyboards/omkbd/runner3680/4x7/config.h index 326d9427408e..cd1964b13589 100644 --- a/keyboards/omkbd/runner3680/4x7/config.h +++ b/keyboards/omkbd/runner3680/4x7/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 56 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/4x8/config.h b/keyboards/omkbd/runner3680/4x8/config.h index 193bf611cbad..d8ec59f29491 100644 --- a/keyboards/omkbd/runner3680/4x8/config.h +++ b/keyboards/omkbd/runner3680/4x8/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 64 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/5x6/config.h b/keyboards/omkbd/runner3680/5x6/config.h index 8f4f682a688a..c80f743de558 100644 --- a/keyboards/omkbd/runner3680/5x6/config.h +++ b/keyboards/omkbd/runner3680/5x6/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 60 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/5x6_5x8/config.h b/keyboards/omkbd/runner3680/5x6_5x8/config.h index 261afc1d025d..09c67164d778 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/config.h +++ b/keyboards/omkbd/runner3680/5x6_5x8/config.h @@ -37,7 +37,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 70 -#define RGBLIGHT_SPLIT #endif #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 70 diff --git a/keyboards/omkbd/runner3680/5x7/config.h b/keyboards/omkbd/runner3680/5x7/config.h index ee1b1d674101..e2b58fb4a09d 100644 --- a/keyboards/omkbd/runner3680/5x7/config.h +++ b/keyboards/omkbd/runner3680/5x7/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 70 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/omkbd/runner3680/5x8/config.h b/keyboards/omkbd/runner3680/5x8/config.h index a0a4d4b9829a..6b86ad423c0b 100644 --- a/keyboards/omkbd/runner3680/5x8/config.h +++ b/keyboards/omkbd/runner3680/5x8/config.h @@ -36,7 +36,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 80 -#define RGBLIGHT_SPLIT #define SELECT_SOFT_SERIAL_SPEED 1 /*Sets the protocol speed when using serial communication*/ diff --git a/keyboards/planck/rev7/readme.md b/keyboards/planck/rev7/readme.md index f41ec9afd573..9b531a4e0942 100644 --- a/keyboards/planck/rev7/readme.md +++ b/keyboards/planck/rev7/readme.md @@ -14,7 +14,7 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Encoders -Encoders much have matching pulse & detent resolutions (e.g. 24/24) for the scanning to work properly. Multiple encoders can be used at the same time, and are zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the `encoder_update_user(index, clockwise)` function: +Encoders must have matching pulse & detent resolutions (e.g. 24/24) for the scanning to work properly. Multiple encoders can be used at the same time, and are zero-indexed (compared to being one-indexed on the PCB's silkscreen) in the `encoder_update_user(index, clockwise)` function: ``` ,-----------------------------------------------------------------------------------. @@ -28,4 +28,4 @@ Encoders much have matching pulse & detent resolutions (e.g. 24/24) for the scan `-----------------------------------------------------------------------------------' ``` -If an encoder has a switch built-in, it's connected to the key at that location. On the default keymap, each encoder will play its own rising/falling tone sequence when rotated, and will reset the pitch after one second of inactivity. \ No newline at end of file +If an encoder has a switch built-in, it's connected to the key at that location. On the default keymap, each encoder will play its own rising/falling tone sequence when rotated, and will reset the pitch after one second of inactivity. diff --git a/keyboards/rainkeebs/trailmix/info.json b/keyboards/rainkeebs/trailmix/info.json new file mode 100644 index 000000000000..7b3cfdfcdd3e --- /dev/null +++ b/keyboards/rainkeebs/trailmix/info.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "rainkeebs", + "keyboard_name": "trailmix", + "maintainer": "ATron789", + "bootloader": "atmel-dfu", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "B2", "pin_b": "B4"} + ] + }, + "matrix_pins": { + "cols": ["F6", "D4", "F5", "D0", "F4", "B6"], + "rows": ["D1", "D7", "F7", "C6"] + }, + "processor": "atmega32u4", + "split": { + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "B2", "pin_b": "B4"} + ] + } + }, + "soft_serial_pin": "D3" + }, + "url": "https://www.rainkeebs.mx", + "usb": { + "device_version": "1.0.0", + "pid": "0x7363", + "vid": "0x726B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "L01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "L02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "L03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "L04", "matrix": [0, 4], "x": 4, "y": 0}, + + {"label": "R04", "matrix": [4, 4], "x": 8, "y": 0}, + {"label": "R03", "matrix": [4, 3], "x": 9, "y": 0}, + {"label": "R02", "matrix": [4, 2], "x": 10, "y": 0}, + {"label": "R01", "matrix": [4, 1], "x": 11, "y": 0}, + {"label": "R00", "matrix": [4, 0], "x": 12, "y": 0}, + + {"label": "L10", "matrix": [1, 0], "x": 0, "y": 1}, + {"label": "L11", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "L12", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "L13", "matrix": [1, 3], "x": 3, "y": 1}, + {"label": "L14", "matrix": [1, 4], "x": 4, "y": 1}, + + {"label": "R14", "matrix": [5, 4], "x": 8, "y": 1}, + {"label": "R13", "matrix": [5, 3], "x": 9, "y": 1}, + {"label": "R12", "matrix": [5, 2], "x": 10, "y": 1}, + {"label": "R11", "matrix": [5, 1], "x": 11, "y": 1}, + {"label": "R10", "matrix": [5, 0], "x": 12, "y": 1}, + + {"label": "L20", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "L21", "matrix": [2, 1], "x": 1, "y": 2}, + {"label": "L22", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "L23", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "L24", "matrix": [2, 4], "x": 4, "y": 2}, + {"label": "L25", "matrix": [2, 5], "x": 5, "y": 2}, + + {"label": "R25", "matrix": [6, 5], "x": 7, "y": 2}, + {"label": "R24", "matrix": [6, 4], "x": 8, "y": 2}, + {"label": "R23", "matrix": [6, 3], "x": 9, "y": 2}, + {"label": "R22", "matrix": [6, 2], "x": 10, "y": 2}, + {"label": "R21", "matrix": [6, 1], "x": 11, "y": 2}, + {"label": "R20", "matrix": [6, 0], "x": 12, "y": 2}, + + {"label": "L30", "matrix": [3, 0], "x": 0, "y": 3}, + {"label": "L31", "matrix": [3, 1], "x": 1, "y": 3}, + {"label": "L32", "matrix": [3, 2], "x": 2, "y": 3}, + {"label": "L33", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "L34", "matrix": [3, 4], "x": 4, "y": 3, "w": 2}, + + {"label": "R34", "matrix": [7, 4], "x": 7, "y": 3, "w": 2}, + {"label": "R33", "matrix": [7, 3], "x": 9, "y": 3}, + {"label": "R32", "matrix": [7, 2], "x": 10, "y": 3}, + {"label": "R31", "matrix": [7, 1], "x": 11, "y": 3}, + {"label": "R30", "matrix": [7, 0], "x": 12, "y": 3} + ] + } + } +} diff --git a/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c b/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c new file mode 100644 index 000000000000..77418f9cd636 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2021 Regan Palmer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +enum layers { + _BASE, + _LOWER, + _RAISE, + _ADJUST, +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ADJUST MO(_ADJUST) +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_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_ENTER, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSPC, + KC_LCTL, KC_LALT, KC_LGUI, LOWER,KC_LSFT, KC_SPC, RAISE, KC_RGUI, KC_ESC, KC_TAB + ), + + [_LOWER] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_ESC, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_TRNS, + KC_TAB, KC_INSERT, KC_DELETE, KC_BACKSLASH,KC_MINUS, KC_TRNS, KC_TRNS, KC_PLUS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_TRNS, KC_TRNS + ), + + [_RAISE] = LAYOUT( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_GRAVE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LCBR, KC_RCBR, KC_COLN, KC_DQT, KC_TRNS, + KC_TRNS, KC_CAPS, KC_TRNS, KC_PIPE, KC_UNDS, KC_TRNS, KC_TRNS, KC_EQUAL, KC_QUESTION, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ADJUST, KC_TRNS, KC_TRNS + ), + + [_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, KC_PRINT_SCREEN, KC_SCROLL_LOCK, KC_PAUSE, KC_H, KC_J, KC_K, KC_L, KC_ENTER, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_BSPC, + KC_LCTL, KC_LALT, ADJUST, RAISE, KC_SPC, KC_LSFT, LOWER, ADJUST, KC_RALT, KC_RCTL + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, + [_LOWER] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP), ENCODER_CCW_CW(KC_HOME, KC_END)}, + [_RAISE] = {ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_WH_L, KC_WH_R)}, + [_ADJUST] = {ENCODER_CCW_CW(KC_MS_LEFT, KC_MS_RIGHT), ENCODER_CCW_CW(KC_MS_UP, KC_MS_DOWN)}, +}; +#endif diff --git a/keyboards/rainkeebs/trailmix/keymaps/default/rules.mk b/keyboards/rainkeebs/trailmix/keymaps/default/rules.mk new file mode 100644 index 000000000000..ee325681483f --- /dev/null +++ b/keyboards/rainkeebs/trailmix/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/rainkeebs/trailmix/readme.md b/keyboards/rainkeebs/trailmix/readme.md new file mode 100644 index 000000000000..2b2b6437e685 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/readme.md @@ -0,0 +1,28 @@ +# Trailmix + +![Trailmix](https://i.postimg.cc/wB4Zk1pS/IMG-20230326-222616.jpg) + + +Ortho split 40% keyboard by rainkeenbs with encoders. + +* Keyboard Maintainer: [ATron789](https://github.com/atron789) +* Hardware Supported: `Elite Pi`, `Pro Micro Type-C USB`, `Elite-C (v4)`, `nice!nano v2` controllers + + +Make example for this keyboard (after setting up your build environment): + + make rainkeebs/trailmix:default + +Flashing example for this keyboard: + + make rainkeebs/rainkeeb:default:flash + +(Flash one side of the keyboard at the time) + +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: + +* **Physical reset button**: reset button located next to the encoder slot, one on each side of the keyboard. diff --git a/keyboards/rainkeebs/trailmix/rules.mk b/keyboards/rainkeebs/trailmix/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/rainkeebs/trailmix/trailmix.c b/keyboards/rainkeebs/trailmix/trailmix.c new file mode 100644 index 000000000000..105d988dadb7 --- /dev/null +++ b/keyboards/rainkeebs/trailmix/trailmix.c @@ -0,0 +1,91 @@ +/* +Copyright 2023 Alberto Pavano "ATron789" + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "quantum.h" + +enum layers { _BASE, _LOWER, _RAISE, _ADJUST }; + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } + switch (get_highest_layer(layer_state)) { + case _BASE: + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + } + break; + case _RAISE: + if (index == 0) { + if (clockwise) { + tap_code(KC_MNXT); + } else { + tap_code(KC_MPRV); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_WH_R); + } else { + tap_code(KC_WH_L); + } + } + break; + case _LOWER: + if (index == 0) { + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_END); + } else { + tap_code(KC_HOME); + } + } + break; + case _ADJUST: + if (index == 0) { + if (clockwise) { + tap_code(KC_MS_RIGHT); + } else { + tap_code(KC_MS_LEFT); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_MS_DOWN); + } else { + tap_code(KC_MS_UP); + } + } + break; + } + return true; +} +#endif diff --git a/keyboards/rate/pistachio/rev1/config.h b/keyboards/rate/pistachio/rev1/config.h index e74350e8e595..1e44c5d80905 100644 --- a/keyboards/rate/pistachio/rev1/config.h +++ b/keyboards/rate/pistachio/rev1/config.h @@ -20,7 +20,6 @@ along with this program. If not, see . #define USE_I2C /* ws2812 RGB LED */ -#define RGBLIGHT_SPLIT #define RGBLED_NUM 2 #define RGBLIGHT_LAYERS #define RGBLIGHT_HUE_STEP 10 diff --git a/keyboards/rate/pistachio/rev2/config.h b/keyboards/rate/pistachio/rev2/config.h index adec2ec66a2b..2852508d9efa 100644 --- a/keyboards/rate/pistachio/rev2/config.h +++ b/keyboards/rate/pistachio/rev2/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . #define SPLIT_HAND_MATRIX_GRID D4,D3 /* ws2812 RGB LED */ -#define RGBLIGHT_SPLIT #define RGBLED_NUM 84 #define RGBLIGHT_LAYERS #define RGBLIGHT_HUE_STEP 10 diff --git a/keyboards/redox/rev1/config.h b/keyboards/redox/rev1/config.h index 5b44f7541f08..56ea22e3294d 100644 --- a/keyboards/redox/rev1/config.h +++ b/keyboards/redox/rev1/config.h @@ -24,8 +24,6 @@ along with this program. If not, see . #define RGBLED_NUM 14 // Number of LEDs -#define RGBLIGHT_SPLIT // sync LEDs between RIGHT and LEFT hand - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/redox/rev1/info.json b/keyboards/redox/rev1/info.json index 908404466a98..9e50ca5baa42 100644 --- a/keyboards/redox/rev1/info.json +++ b/keyboards/redox/rev1/info.json @@ -8,6 +8,9 @@ "pid": "0x5244", "device_version": "1.0.0" }, + "rgblight": { + "split": true + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/rura66/rev1/config.h b/keyboards/rura66/rev1/config.h index 5934a18162a6..8f3e8d43c850 100644 --- a/keyboards/rura66/rev1/config.h +++ b/keyboards/rura66/rev1/config.h @@ -22,7 +22,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE #define RGBLED_NUM 66 // Number of LEDs - #define RGBLIGHT_SPLIT #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c index c471da92cc5f..ba8cd96aec20 100644 --- a/keyboards/s_ol/0xc_pad/0xc_pad.c +++ b/keyboards/s_ol/0xc_pad/0xc_pad.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "0xc_pad.h" +#include "quantum.h" #ifdef RGB_MATRIX_ENABLE led_config_t g_led_config = { { diff --git a/keyboards/salicylic_acid3/7skb/rev1/config.h b/keyboards/salicylic_acid3/7skb/rev1/config.h index 44b7b88cfaba..5e29165b82a0 100644 --- a/keyboards/salicylic_acid3/7skb/rev1/config.h +++ b/keyboards/salicylic_acid3/7skb/rev1/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 12 - #define RGBLIGHT_SPLIT #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/salicylic_acid3/7splus/config.h b/keyboards/salicylic_acid3/7splus/config.h index e8a6d3a3935c..1267b547c557 100644 --- a/keyboards/salicylic_acid3/7splus/config.h +++ b/keyboards/salicylic_acid3/7splus/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 31 - #define RGBLIGHT_SPLIT #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/salicylic_acid3/ergoarrows/config.h b/keyboards/salicylic_acid3/ergoarrows/config.h index e829c4b82751..17976de23006 100644 --- a/keyboards/salicylic_acid3/ergoarrows/config.h +++ b/keyboards/salicylic_acid3/ergoarrows/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 86 - #define RGBLIGHT_SPLIT #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/salicylic_acid3/jisplit89/rev1/config.h b/keyboards/salicylic_acid3/jisplit89/rev1/config.h index 5bc8bce7d594..06f8e5664e20 100644 --- a/keyboards/salicylic_acid3/jisplit89/rev1/config.h +++ b/keyboards/salicylic_acid3/jisplit89/rev1/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 32 - #define RGBLIGHT_SPLIT #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/salicylic_acid3/naked64/rev1/config.h b/keyboards/salicylic_acid3/naked64/rev1/config.h index 33ee2b503027..1cf00110ac58 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/config.h +++ b/keyboards/salicylic_acid3/naked64/rev1/config.h @@ -24,7 +24,6 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE #define RGBLED_NUM 12 // Number of LEDs -#define RGBLIGHT_LED_MAP { 0, 1, 3, 2, 2, 3, 2, 3, 4, 5, 6, 7 } #ifndef IOS_DEVICE_ENABLE #define RGBLIGHT_LIMIT_VAL 180 diff --git a/keyboards/salicylic_acid3/naked64/rev1/info.json b/keyboards/salicylic_acid3/naked64/rev1/info.json index a58acf807b00..cb9a7b341f1f 100644 --- a/keyboards/salicylic_acid3/naked64/rev1/info.json +++ b/keyboards/salicylic_acid3/naked64/rev1/info.json @@ -22,6 +22,9 @@ } } }, + "rgblight": { + "led_map": [0, 1, 3, 2, 2, 3, 2, 3, 4, 5, 6, 7] + }, "ws2812": { "pin": "B6" }, diff --git a/keyboards/salicylic_acid3/nknl7en/config.h b/keyboards/salicylic_acid3/nknl7en/config.h index f4a8e200d3ce..c6a70946b320 100644 --- a/keyboards/salicylic_acid3/nknl7en/config.h +++ b/keyboards/salicylic_acid3/nknl7en/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 21 - #define RGBLIGHT_SPLIT #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/salicylic_acid3/nknl7jp/config.h b/keyboards/salicylic_acid3/nknl7jp/config.h index b11397bde8da..0d465f97a2cb 100644 --- a/keyboards/salicylic_acid3/nknl7jp/config.h +++ b/keyboards/salicylic_acid3/nknl7jp/config.h @@ -26,7 +26,6 @@ along with this program. If not, see . #ifndef RGBLED_NUM #define RGBLED_NUM 20 - #define RGBLIGHT_SPLIT #endif #define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/scottokeebs/scotto34/info.json b/keyboards/scottokeebs/scotto34/info.json new file mode 100644 index 000000000000..72a1801bead9 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/info.json @@ -0,0 +1,75 @@ +{ + "manufacturer": "ScottoKeebs", + "keyboard_name": "Scotto34 (PCB Edition)", + "maintainer": "joe-scotto", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP9", "GP10", "GP11", "GP12", "GP13", "GP18", "GP19", "GP20", "GP21", "GP22"], + "rows": ["GP0", "GP1", "GP14", "GP15"] + }, + "processor": "RP2040", + "url": "https://scottokeebs.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x1013", + "vid": "0x534B" + }, + "ws2812": { + "pin": "GP23", + "driver": "vendor" + }, + "rgblight": { + "led_count": 1 + }, + "community_layouts": ["split_3x5_2"], + "layouts": { + "LAYOUT_split_3x5_2": { + "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": [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": [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": [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 } + ] + } + } +} diff --git a/keyboards/scottokeebs/scotto34/keymaps/default/config.h b/keyboards/scottokeebs/scotto34/keymaps/default/config.h new file mode 100644 index 000000000000..9e99bf0205e9 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/default/config.h @@ -0,0 +1,23 @@ +/* +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 . +*/ + +#pragma once + +// Define options +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c new file mode 100644 index 000000000000..a06722184a9b --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* +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 . +*/ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + 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_BSPC, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, 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_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, KC_NO, KC_NO, + 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/config.h b/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h new file mode 100644 index 000000000000..9e99bf0205e9 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h @@ -0,0 +1,23 @@ +/* +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 . +*/ + +#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 new file mode 100644 index 000000000000..b1720f430207 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c @@ -0,0 +1,246 @@ +/* +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 . +*/ + +#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 new file mode 100644 index 000000000000..e5ddcae8d927 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes diff --git a/keyboards/scottokeebs/scotto34/readme.md b/keyboards/scottokeebs/scotto34/readme.md new file mode 100644 index 000000000000..546a20b08a6d --- /dev/null +++ b/keyboards/scottokeebs/scotto34/readme.md @@ -0,0 +1,29 @@ +# Scotto34 (PCB Edition) + +![Scotto34 (PCB Edition)](https://i.imgur.com/nTxYa7ih.jpg) + +A low profile 34-key split monoblock ortholinear keyboard that uses 18x17mm spaced Choc switches and an exposed controller in the middle. + +* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +* Hardware Supported: Scotto34 (PCB Edition), Raspberry Pi Pico +* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [AliExpress](https://aliexpress.com) + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make scottokeebs/scotto34:default + +Flashing example for this keyboard: + + make scottokeebs/scotto34: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/scottokeebs/scotto34/rules.mk b/keyboards/scottokeebs/scotto34/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/scottokeebs/scotto34/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/sets3n/kk980/config.h b/keyboards/sets3n/kk980/config.h index d7b29ad73281..bff26cfc80b8 100644 --- a/keyboards/sets3n/kk980/config.h +++ b/keyboards/sets3n/kk980/config.h @@ -34,14 +34,6 @@ #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 102 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,\ - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, \ - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, \ - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, \ - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, \ - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, \ - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, \ - 96, 97, 98, 99, 100, 101, 102 } // 1 --> ScollLock 2 --> CapsLock 3 --> Bluetooth 4 --> NumLock #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h index 67d78aa0c62d..395dddd7219b 100644 --- a/keyboards/silverbullet44/config.h +++ b/keyboards/silverbullet44/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . #define MASTER_RIGHT - //#define RGBLIGHT_SPLIT #define RGBLED_NUM 52 #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_LED_COUNT 52 @@ -36,8 +35,6 @@ along with this program. If not, see . #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP #else - #define RGBLIGHT_LED_MAP { 0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,3,4,5,6, \ - 26,27,28,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,29,30,31,32 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/silverbullet44/info.json b/keyboards/silverbullet44/info.json index 9ca5218d120b..4146b4feeeda 100644 --- a/keyboards/silverbullet44/info.json +++ b/keyboards/silverbullet44/info.json @@ -16,6 +16,7 @@ }, "rgblight": { "max_brightness": 150, + "led_map": [0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3, 4, 5, 6, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 29, 30, 31, 32], "split_count": [26, 26] }, "matrix_pins": { diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h index 2dccaba6ba4b..9584b56b4eaf 100755 --- a/keyboards/sofle/keyhive/config.h +++ b/keyboards/sofle/keyhive/config.h @@ -37,30 +37,4 @@ # define RGBLIGHT_VAL_STEP 17 //# define RGBLIGHT_LAYERS //Enable layer light indicators. Not required as updates are done in layer_state_set_user and led_update_user (+588). # define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) - -//RGB LED Conversion macro from physical array to electric array (+146). This results in better looking animated effects. -//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping -# define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ - L10, L12, L14, L19, L111, L113, \ - L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ - L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ - L40, L42, L44, L49, L411, L413, \ - L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ - L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ - L71, L76, L77, L712 )\ - { \ - L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ - } -//RGB LED logical order map -# define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ - 4, 16, 28, 45, 57, 69, \ - 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ - 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ - 1, 13, 25, 48, 60, 72, \ - 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ - 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ - 10, 36, 37, 63 ) - #endif diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json index 12053234fffe..93bbae19dc71 100644 --- a/keyboards/sofle/keyhive/info.json +++ b/keyboards/sofle/keyhive/info.json @@ -11,6 +11,7 @@ }, "rgblight": { "max_brightness": 100, + "led_map": [28, 16, 4, 1, 13, 25, 10, 36, 35, 34, 33, 32, 31, 30, 29, 27, 26, 24, 23, 22, 21, 20, 19, 18, 17, 15, 14, 12, 11, 9, 8, 7, 6, 5, 3, 2, 0, 45, 57, 69, 72, 60, 48, 63, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 61, 62, 64, 65, 66, 67, 68, 70, 71, 73], "split_count": [37, 37] }, "matrix_pins": { diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format new file mode 100644 index 000000000000..f87f20d8b68c --- /dev/null +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/.clang-format @@ -0,0 +1 @@ +ColumnLimit: 110 diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h index c147d5e67fa6..f14e2b17e189 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/config.h @@ -18,23 +18,21 @@ /* Flash */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur /* OLED */ #undef OLED_FONT_H #define OLED_FONT_H "./oled/glcdfont.c" -#define OLED_TIMEOUT 25000 -#define OLED_BRIGHTNESS 60 // Protect my eyesss +#define OLED_TIMEOUT 25000 +#define OLED_BRIGHTNESS 50 // Protect my eyesss #define SPLIT_LAYER_STATE_ENABLE #define SPLIT_MODS_ENABLE #define SPLIT_OLED_ENABLE /* Auto shift ♥ */ #define AUTO_SHIFT_TIMEOUT 115 - -/* Redefine CTRL + space (See space cadet shift) */ -#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_SPC +#define TAPPING_TERM 155 /* Unicode */ // #define UNICODE_SELECTED_MODES UC_LNX @@ -61,7 +59,6 @@ #define MK_C_OFFSET_2 25 #define MK_C_INTERVAL_2 10 - #define MK_W_OFFSET_0 1 #define MK_W_INTERVAL_0 160 diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c index d6bd3818b42d..d5bf9f022357 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/auto_shift.c @@ -7,193 +7,498 @@ /* Only for basis letters Exceptions like Tab or Enter */ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TAB: + // case KC_ENT: - switch (keycode) { - - case KC_TAB: - case KC_ENT: - - // -- - case KC_A: - case KC_B: - case KC_C: - case KC_D: - case KC_E: - case KC_F: - case KC_G: - case KC_H: - case KC_I: - case KC_J: - case KC_K: - case KC_L: - case KC_M: - case KC_N: - case KC_O: - case KC_P: - case KC_Q: - case KC_R: - case KC_S: - case KC_T: - case KC_U: - case KC_V: - case KC_W: - case KC_X: - case KC_Y: - case KC_Z: - - return true; - } - - return get_custom_auto_shifted_key(keycode, record); -} + case US_EACU: + case US_CCED: + case US_AE: + case US_OE: + + // -- + case KC_A: + case KC_B: + case KC_C: + case KC_D: + case KC_E: + case KC_F: + case KC_G: + case KC_H: + case KC_I: + case KC_J: + case KC_K: + case KC_L: + case KC_M: + case KC_N: + case KC_O: + case KC_P: + case KC_Q: + case KC_R: + case KC_S: + case KC_T: + case KC_U: + case KC_V: + case KC_W: + case KC_X: + case KC_Y: + case KC_Z: + return true; + } + + return get_custom_auto_shifted_key(keycode, record); +} /* Custom auto shift I use this instead of tap dance because double tap is horrible Add here the letter or the custom enum, then add in press_user and press_release the actions */ bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { + switch (keycode) { + case KC_BSPC: - case KC_BSPC: - case KC_LABK: // Easy indent with vim - case KC_RABK: + // Double them !!! + case KC_AMPERSAND: + case KC_AT: + case KC_BACKSLASH: + case KC_CIRCUMFLEX: + case KC_COLON: + case KC_DOLLAR: + case KC_EQUAL: + case KC_EXCLAIM: + case KC_GRAVE: + case KC_HASH: + case KC_MINUS: + case KC_PERC: + case KC_PIPE: + case KC_PLUS: + case KC_QUESTION: + case KC_QUOTE: + case KC_DOUBLE_QUOTE: + case KC_SEMICOLON: + case KC_SLASH: + case KC_ASTERISK: + case KC_TILDE: + case KC_UNDERSCORE: - /* French */ - case CS_E_ACUTE: + case KC_LEFT_ANGLE_BRACKET: // Easy indent with vim + case KC_RIGHT_ANGLE_BRACKET: - case CS_A_GRAVE: - case CS_E_GRAVE: - case CS_I_GRAVE: - case CS_O_GRAVE: - case CS_U_GRAVE: + case KC_LEFT_BRACKET: + case KC_RIGHT_BRACKET: + case KC_LEFT_CURLY_BRACE: + case KC_RIGHT_CURLY_BRACE: + case KC_LEFT_PAREN: + case KC_RIGHT_PAREN: - case CS_A_CIRCUMFLEX: - case CS_E_CIRCUMFLEX: - case CS_I_CIRCUMFLEX: - case CS_O_CIRCUMFLEX: - case CS_U_CIRCUMFLEX: + /* French */ + case CS_A_GRAVE: + case CS_E_GRAVE: + case CS_U_GRAVE: - case CS_A_DIAERESIS: - case CS_E_DIAERESIS: - case CS_I_DIAERESIS: - case CS_O_DIAERESIS: - case CS_U_DIAERESIS: - case CS_Y_DIAERESIS: + case CS_A_CIRCUMFLEX: + case CS_E_CIRCUMFLEX: + case CS_I_CIRCUMFLEX: + case CS_O_CIRCUMFLEX: + case CS_U_CIRCUMFLEX: - case CS_C_CEDILLA: - case CS_AE: - case CS_OE: + case CS_E_DIAERESIS: + case CS_I_DIAERESIS: + case CS_U_DIAERESIS: + case CS_Y_DIAERESIS: + return true; - return true; - - default: - return false; - } + default: + return false; + } } void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) { - switch(keycode) { - - case KC_BSPC: - register_code16((!shifted) ? KC_BSPC : KC_DEL); - break; - - case KC_LABK: - if (shifted) { send_unicode_string("<<"); } - else { send_unicode_string("<"); } break; - - case KC_RABK: - if (shifted) { send_unicode_string(">>"); } - else { send_unicode_string(">"); } break; - - /* French - Release is not necessary with 'send_unicode_string()' */ - case CS_E_ACUTE: - if (shifted) { send_unicode_string("É"); } - else { send_unicode_string("é"); } break; - - case CS_A_GRAVE: - if (shifted) { send_unicode_string("À"); } - else { send_unicode_string("à"); } break; - case CS_E_GRAVE: - if (shifted) { send_unicode_string("È"); } - else { send_unicode_string("è"); } break; - case CS_I_GRAVE: - if (shifted) { send_unicode_string("Ì"); } - else { send_unicode_string("ì"); } break; - case CS_O_GRAVE: - if (shifted) { send_unicode_string("Ò"); } - else { send_unicode_string("ò"); } break; - case CS_U_GRAVE: - if (shifted) { send_unicode_string("Ù"); } - else { send_unicode_string("ù"); } break; - - case CS_A_CIRCUMFLEX: - if (shifted) { send_unicode_string("Â"); } - else { send_unicode_string("â"); } break; - case CS_E_CIRCUMFLEX: - if (shifted) { send_unicode_string("Ê"); } - else { send_unicode_string("ê"); } break; - case CS_I_CIRCUMFLEX: - if (shifted) { send_unicode_string("Î"); } - else { send_unicode_string("î"); } break; - case CS_O_CIRCUMFLEX: - if (shifted) { send_unicode_string("Ô"); } - else { send_unicode_string("ô"); } break; - case CS_U_CIRCUMFLEX: - if (shifted) { send_unicode_string("Û"); } - else { send_unicode_string("û"); } break; - - case CS_A_DIAERESIS: - if (shifted) { send_unicode_string("Ä"); } - else { send_unicode_string("ä"); } break; - case CS_E_DIAERESIS: - if (shifted) { send_unicode_string("Ë"); } - else { send_unicode_string("ë"); } break; - case CS_I_DIAERESIS: - if (shifted) { send_unicode_string("Ï"); } - else { send_unicode_string("ï"); } break; - case CS_O_DIAERESIS: - if (shifted) { send_unicode_string("Ö"); } - else { send_unicode_string("ö"); } break; - case CS_U_DIAERESIS: - if (shifted) { send_unicode_string("Ü"); } - else { send_unicode_string("ü"); } break; - case CS_Y_DIAERESIS: - if (shifted) { send_unicode_string("Ÿ"); } - else { send_unicode_string("ÿ"); } break; - - case CS_C_CEDILLA: - if (shifted) { send_unicode_string("Ç"); } - else { send_unicode_string("ç"); } break; - case CS_AE: - if (shifted) { send_unicode_string("Æ"); } - else { send_unicode_string("æ"); } break; - case CS_OE: - if (shifted) { send_unicode_string("Œ"); } - else { send_unicode_string("œ"); } break; - - - default: - if (shifted) { - add_weak_mods(MOD_BIT(KC_LSFT)); - } - /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */ - register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + switch (keycode) { + case KC_BSPC: + if (shifted) { + tap_code16(KC_DEL); + } else { + tap_code16(KC_BSPC); } -} + break; + break; -void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) { - switch(keycode) { + case KC_AMPERSAND: + if (shifted) { + tap_code16(KC_AMPERSAND); + tap_code16(KC_AMPERSAND); + } else { + tap_code16(KC_AMPERSAND); + } + break; + case KC_AT: + if (shifted) { + tap_code16(KC_AT); + tap_code16(KC_AT); + } else { + tap_code16(KC_AT); + } + break; + case KC_BACKSLASH: + if (shifted) { + tap_code16(KC_BACKSLASH); + tap_code16(KC_BACKSLASH); + } else { + tap_code16(KC_BACKSLASH); + } + break; + case KC_CIRCUMFLEX: + if (shifted) { + tap_code16(KC_CIRCUMFLEX); + tap_code16(KC_CIRCUMFLEX); + } else { + tap_code16(KC_CIRCUMFLEX); + } + break; + case KC_COLON: + if (shifted) { + tap_code16(KC_COLON); + tap_code16(KC_COLON); + } else { + tap_code16(KC_COLON); + } + break; + case KC_DOLLAR: + if (shifted) { + tap_code16(KC_DOLLAR); + tap_code16(KC_DOLLAR); + } else { + tap_code16(KC_DOLLAR); + } + break; + case KC_EQUAL: + if (shifted) { + tap_code16(KC_EQUAL); + tap_code16(KC_EQUAL); + } else { + tap_code16(KC_EQUAL); + } + break; + case KC_EXCLAIM: + if (shifted) { + tap_code16(KC_EXCLAIM); + tap_code16(KC_EXCLAIM); + } else { + tap_code16(KC_EXCLAIM); + } + break; + case KC_GRAVE: + if (shifted) { + tap_code16(KC_GRAVE); + tap_code16(KC_GRAVE); + } else { + tap_code16(KC_GRAVE); + } + break; + case KC_HASH: + if (shifted) { + tap_code16(KC_HASH); + tap_code16(KC_HASH); + } else { + tap_code16(KC_HASH); + } + break; + case KC_MINUS: + if (shifted) { + tap_code16(KC_MINUS); + tap_code16(KC_MINUS); + } else { + tap_code16(KC_MINUS); + } + break; + case KC_PERCENT: + if (shifted) { + tap_code16(KC_PERCENT); + tap_code16(KC_PERCENT); + } else { + tap_code16(KC_PERCENT); + } + break; + case KC_PIPE: + if (shifted) { + tap_code16(KC_PIPE); + tap_code16(KC_PIPE); + } else { + tap_code16(KC_PIPE); + } + break; + case KC_PLUS: + if (shifted) { + tap_code16(KC_PLUS); + tap_code16(KC_PLUS); + } else { + tap_code16(KC_PLUS); + } + break; + case KC_QUESTION: + if (shifted) { + tap_code16(KC_QUESTION); + tap_code16(KC_QUESTION); + } else { + tap_code16(KC_QUESTION); + } + break; + case KC_QUOTE: + if (shifted) { + tap_code16(KC_QUOTE); + tap_code16(KC_QUOTE); + } else { + tap_code16(KC_QUOTE); + } + break; + case KC_DOUBLE_QUOTE: + if (shifted) { + tap_code16(KC_DOUBLE_QUOTE); + tap_code16(KC_DOUBLE_QUOTE); + } else { + tap_code16(KC_DOUBLE_QUOTE); + } + break; + case KC_SEMICOLON: + if (shifted) { + tap_code16(KC_SEMICOLON); + tap_code16(KC_SEMICOLON); + } else { + tap_code16(KC_SEMICOLON); + } + break; + case KC_SLASH: + if (shifted) { + tap_code16(KC_SLASH); + tap_code16(KC_SLASH); + } else { + tap_code16(KC_SLASH); + } + break; + case KC_ASTERISK: + if (shifted) { + tap_code16(KC_ASTERISK); + tap_code16(KC_ASTERISK); + } else { + tap_code16(KC_ASTERISK); + } + break; + case KC_TILDE: + if (shifted) { + tap_code16(KC_TILDE); + tap_code16(KC_TILDE); + } else { + tap_code16(KC_TILDE); + } + break; + case KC_UNDERSCORE: + if (shifted) { + tap_code16(KC_UNDERSCORE); + tap_code16(KC_UNDERSCORE); + } else { + tap_code16(KC_UNDERSCORE); + } + break; - case KC_BSPC: - unregister_code16((!shifted) ? KC_BSPC : KC_DEL); - break; + case KC_LEFT_ANGLE_BRACKET: + if (shifted) { + tap_code16(KC_LEFT_ANGLE_BRACKET); + tap_code16(KC_LEFT_ANGLE_BRACKET); + } else { + tap_code16(KC_LEFT_ANGLE_BRACKET); + } + break; + case KC_RIGHT_ANGLE_BRACKET: + if (shifted) { + tap_code16(KC_RIGHT_ANGLE_BRACKET); + tap_code16(KC_RIGHT_ANGLE_BRACKET); + } else { + tap_code16(KC_RIGHT_ANGLE_BRACKET); + } + break; - default: - /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift - The IS_RETRO check isn't really necessary here, always using - keycode & 0xFF would be fine. */ - unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + case KC_LEFT_BRACKET: + if (shifted) { + tap_code16(KC_LEFT_BRACKET); + tap_code16(KC_LEFT_BRACKET); + } else { + tap_code16(KC_LEFT_BRACKET); + } + break; + case KC_RIGHT_BRACKET: + if (shifted) { + tap_code16(KC_RIGHT_BRACKET); + tap_code16(KC_RIGHT_BRACKET); + } else { + tap_code16(KC_RIGHT_BRACKET); + } + break; + case KC_LEFT_CURLY_BRACE: + if (shifted) { + tap_code16(KC_LEFT_CURLY_BRACE); + tap_code16(KC_LEFT_CURLY_BRACE); + } else { + tap_code16(KC_LEFT_CURLY_BRACE); + } + break; + case KC_RIGHT_CURLY_BRACE: + if (shifted) { + tap_code16(KC_RIGHT_CURLY_BRACE); + tap_code16(KC_RIGHT_CURLY_BRACE); + } else { + tap_code16(KC_RIGHT_CURLY_BRACE); + } + break; + case KC_LEFT_PAREN: + if (shifted) { + tap_code16(KC_LEFT_PAREN); + tap_code16(KC_LEFT_PAREN); + } else { + tap_code16(KC_LEFT_PAREN); + } + break; + case KC_RIGHT_PAREN: + if (shifted) { + tap_code16(KC_RIGHT_PAREN); + tap_code16(KC_RIGHT_PAREN); + } else { + tap_code16(KC_RIGHT_PAREN); + } + break; + + /* French + Release is not necessary with 'send_unicode_string()' */ + case CS_A_GRAVE: + if (shifted) { + tap_code16(US_DGRV); + tap_code16(S(KC_A)); + } else { + tap_code16(US_DGRV); + tap_code16(KC_A); + } + break; + case CS_E_GRAVE: + if (shifted) { + tap_code16(US_DGRV); + tap_code16(S(KC_E)); + } else { + tap_code16(US_DGRV); + tap_code16(KC_E); + } + break; + case CS_U_GRAVE: + if (shifted) { + tap_code16(US_DGRV); + tap_code16(S(KC_U)); + } else { + tap_code16(US_DGRV); + tap_code16(KC_U); + } + break; + + case CS_A_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_A)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_A); + } + break; + case CS_E_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_E)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_E); } + break; + case CS_I_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_I)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_I); + } + break; + case CS_O_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_O)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_O); + } + break; + case CS_U_CIRCUMFLEX: + if (shifted) { + tap_code16(US_DCIR); + tap_code16(S(KC_U)); + } else { + tap_code16(US_DCIR); + tap_code16(KC_U); + } + break; + + case CS_E_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_E)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_E); + } + break; + case CS_I_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_I)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_I); + } + break; + case CS_U_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_U)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_U); + } + break; + case CS_Y_DIAERESIS: + if (shifted) { + tap_code16(US_DIAE); + tap_code16(S(KC_Y)); + } else { + tap_code16(US_DIAE); + tap_code16(KC_Y); + } + break; + + default: + if (shifted) { + add_weak_mods(MOD_BIT(KC_LSFT)); + } + /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */ + register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + } +} + +void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) { + switch (keycode) { + case KC_BSPC: + unregister_code16((!shifted) ? KC_BSPC : KC_DEL); + break; + + default: + /* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift + The IS_RETRO check isn't really necessary here, always using + keycode & 0xFF would be fine. */ + unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode); + } } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c index c382eedddc11..de0436b361ed 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c @@ -15,256 +15,231 @@ */ enum combos { - LEADER, - BOOTLOADER, - - LAYER_ADJUST, - LAYER_FN, - LAYER_LEFT_HAND, - - /* French */ - E_ACUTE, - C_CEDILLA, - E_A, - E_O, - - A_GRAVE, - E_GRAVE, - I_GRAVE, - O_GRAVE, - U_GRAVE, - - A_CIRCUMFLEX, - E_CIRCUMFLEX, - I_CIRCUMFLEX, - O_CIRCUMFLEX, - U_CIRCUMFLEX, - - A_DIAERESIS, - E_DIAERESIS, - I_DIAERESIS, - O_DIAERESIS, - U_DIAERESIS, - Y_DIAERESIS, - - /* -- */ - AMPERSAND, - AT_SIGN, - BACKSLASH, - CIRCUMFLEX, - COLON, - DOLLAR, - EQUAL, - EXCLAMATION_MARK, - GRAVE, - HASH, - MINUS, - PERCENT, - PIPE, - PLUS, - QUESTION_MARK, - QUOTE, - QUOTE_DOUBLE, - SEMICOLON, - SLASH, - STAR, - TILDE, - UNDERSCORE, - - ANGLE_BRACKET_LEFT, - ANGLE_BRACKET_RIGHT, - - BRACKET_LEFT, - BRACKET_RIGHT, - CURLY_BRACKET_LEFT, - CURLY_BRACKET_RIGHT, - PARENTHESIS_LEFT, - PARENTHESIS_RIGHT, - - /* -- */ - ALT_SHIFT, - CONTROL_SHIFT, - CONTROL_ALT, - CONTROL_SHIFT_ALT, - RIGHT_ALT, - - /* One hand special */ - CONTROL_RIGHT, - CONTROL_SHIFT_RIGHT, - - // DEL_LEFT, - SHIFT_LEFT, - ALTGR_LEFT, - CONTROL_SHIFT_LEFT, + LEADER, + BOOTLOADER, + + LAYER_ADJ, + LAYER_FN, + LAYER_LEFT_HAND, + LAYER_MOUSE, + LAYER_MOUSE_BACK, + + /* French */ + C_CEDILLA, + E_A, + E_O, + + A_GRAVE, + E_GRAVE, + U_GRAVE, + + A_CIRCUMFLEX, + E_CIRCUMFLEX, + I_CIRCUMFLEX, + O_CIRCUMFLEX, + U_CIRCUMFLEX, + + E_DIAERESIS, + I_DIAERESIS, + U_DIAERESIS, + Y_DIAERESIS, + + /* -- */ + AMPERSAND, + AT_SIGN, + BACKSLASH, + CIRCUMFLEX, + COLON, + DOLLAR, + EQUAL, + EXCLAMATION_MARK, + GRAVE, + HASH, + MINUS, + PERCENT, + PIPE, + PLUS, + QUESTION_MARK, + QUOTE, + QUOTE_DOUBLE, + SEMICOLON, + SLASH, + STAR, + TILDE, + UNDERSCORE, + + ANGLE_BRACKET_LEFT, + ANGLE_BRACKET_RIGHT, + + BRACKET_LEFT, + BRACKET_RIGHT, + CURLY_BRACKET_LEFT, + CURLY_BRACKET_RIGHT, + PARENTHESIS_LEFT, + PARENTHESIS_RIGHT, + + /* Non qwerty */ + EURO, + + /* One hand special */ + CONTROL_RIGHT, + CONTROL_SHIFT_RIGHT, + + ALT_LEFT, + SHIFT_LEFT, + CONTROL_SHIFT_LEFT, + + /* Just to replace the define in config.h */ + COMBO_LENGTH, }; +uint16_t COMBO_LEN = COMBO_LENGTH; /* Sequences fo keys */ -const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END}; -const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END}; +const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END}; +const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END}; + +const uint16_t PROGMEM combo_ADJ[] = {CTL_T(KC_SPACE), LT(_NUMERIC, KC_ENT), COMBO_END}; +const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END}; +const uint16_t PROGMEM combo_left_hand[] = {LT(_MOUSE, KC_COMM), GUI_T(KC_ESC), COMBO_END}; +const uint16_t PROGMEM combo_mouse[] = {KC_A, KC_I, KC_E, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_mouse_back[] = {KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT, COMBO_END}; +/* -- */ +const uint16_t PROGMEM combo_c_cedilla[] = {LT(_ARROWS, KC_DOT), KC_C, COMBO_END}; +const uint16_t PROGMEM combo_ea[] = {US_EACU, KC_A, COMBO_END}; +const uint16_t PROGMEM combo_eo[] = {US_EACU, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_adjust[] = {KC_LCPO, LT(_NUMERIC, KC_ENT), COMBO_END}; -const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END}; -const uint16_t PROGMEM combo_left_hand[] = {KC_LCPO, GUI_T(KC_ESC), COMBO_END}; +const uint16_t PROGMEM combo_a_grave[] = {CTL_T(KC_SPACE), KC_A, COMBO_END}; +const uint16_t PROGMEM combo_e_grave[] = {CTL_T(KC_SPACE), KC_E, COMBO_END}; +const uint16_t PROGMEM combo_u_grave[] = {CTL_T(KC_SPACE), KC_U, COMBO_END}; -/* -- */ -// const uint16_t PROGMEM combo_enter_shifted[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; -const uint16_t PROGMEM combo_control_shift[] = {KC_LCPO, KC_S, COMBO_END}; -const uint16_t PROGMEM combo_control_alt[] = {KC_LCPO, KC_LALT, COMBO_END}; -const uint16_t PROGMEM combo_control_shift_alt[] = {KC_LCPO, KC_S, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_right_alt[] = {KC_LAPO, KC_G, COMBO_END}; -const uint16_t PROGMEM combo_alt_shift[] = {KC_LALT, KC_S, COMBO_END}; +const uint16_t PROGMEM combo_a_circumflex[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END}; +const uint16_t PROGMEM combo_e_circumflex[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END}; +const uint16_t PROGMEM combo_i_circumflex[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END}; +const uint16_t PROGMEM combo_o_circumflex[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END}; +const uint16_t PROGMEM combo_u_circumflex[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END}; -/* -- */ -const uint16_t PROGMEM combo_e_acute[] = {KC_LCPO, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_c_cedilla[] = {KC_LCPO, KC_I, COMBO_END}; -const uint16_t PROGMEM combo_ea[] = {KC_LCPO, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_eo[] = {KC_LCPO, KC_O, COMBO_END}; - -const uint16_t PROGMEM combo_a_grave[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END}; -const uint16_t PROGMEM combo_e_grave[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END}; -const uint16_t PROGMEM combo_i_grave[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END}; -const uint16_t PROGMEM combo_o_grave[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END}; -const uint16_t PROGMEM combo_u_grave[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END}; - -const uint16_t PROGMEM combo_a_circumflex[] = {KC_C, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_e_circumflex[] = {KC_C, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_i_circumflex[] = {KC_C, KC_I, COMBO_END}; -const uint16_t PROGMEM combo_o_circumflex[] = {KC_C, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_u_circumflex[] = {KC_C, KC_U, COMBO_END}; - -const uint16_t PROGMEM combo_a_diaeresis[] = {KC_T, KC_A, COMBO_END}; -const uint16_t PROGMEM combo_e_diaeresis[] = {KC_T, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_i_diaeresis[] = {KC_T, KC_I, COMBO_END}; -const uint16_t PROGMEM combo_o_diaeresis[] = {KC_T, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_u_diaeresis[] = {KC_T, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_y_diaeresis[] = {KC_T, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_e_diaeresis[] = {US_EACU, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_i_diaeresis[] = {US_EACU, KC_I, COMBO_END}; +const uint16_t PROGMEM combo_u_diaeresis[] = {US_EACU, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_y_diaeresis[] = {US_EACU, KC_Y, COMBO_END}; /* -- */ -const uint16_t PROGMEM combo_ampersand[] = {KC_I, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_at_sign[] = {KC_Q, KC_Y, COMBO_END}; -const uint16_t PROGMEM combo_backslash[] = {KC_D, KC_R, COMBO_END}; -const uint16_t PROGMEM combo_circumflex[] = {KC_T, KC_D, COMBO_END}; -const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END}; -const uint16_t PROGMEM combo_dollar[] = {KC_D, KC_L, COMBO_END}; -const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END}; -const uint16_t PROGMEM combo_exclamation_mark[] = {KC_O, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END}; -const uint16_t PROGMEM combo_hash[] = {KC_I, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END}; -const uint16_t PROGMEM combo_percent[] = {KC_O, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_pipe[] = {KC_E, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END}; -const uint16_t PROGMEM combo_question_mark[] = {KC_B, KC_O, COMBO_END}; -const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END}; -const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END}; -const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END}; -const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END}; -const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END}; - -const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END}; -const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END}; - -const uint16_t PROGMEM combo_bracket_left[] = {KC_Q, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_bracket_right[] = {KC_E, KC_Y, COMBO_END}; -const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END}; -const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_I, KC_Q, COMBO_END}; -const uint16_t PROGMEM combo_parenthesis_left[] = {KC_X, KC_U, COMBO_END}; -const uint16_t PROGMEM combo_parenthesis_right[] = {KC_I, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_ampersand[] = {KC_E, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_at_sign[] = {KC_D, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_backslash[] = {KC_B, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_circumflex[] = {KC_B, KC_O, COMBO_END}; +const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END}; +const uint16_t PROGMEM combo_dollar[] = {KC_O, KC_W, COMBO_END}; +const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END}; +const uint16_t PROGMEM combo_exclamation_mark[] = {KC_Q, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END}; +const uint16_t PROGMEM combo_hash[] = {KC_X, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END}; +const uint16_t PROGMEM combo_percent[] = {KC_B, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_pipe[] = {KC_I, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_question_mark[] = {KC_P, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END}; +const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END}; +const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END}; +const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END}; +const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END}; + +const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END}; +const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END}; +const uint16_t PROGMEM combo_bracket_left[] = {KC_I, KC_O, COMBO_END}; +const uint16_t PROGMEM combo_bracket_right[] = {KC_O, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END}; +const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_E, KC_Y, COMBO_END}; +const uint16_t PROGMEM combo_parenthesis_left[] = {KC_T, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_parenthesis_right[] = {KC_D, KC_R, COMBO_END}; + +/* Non qwerty */ +const uint16_t PROGMEM combo_euro[] = {KC_X, KC_Q, COMBO_END}; /* One hand special */ -const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END}; -const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; - -const uint16_t PROGMEM combo_shift_left[] = {KC_LCPO, KC_LALT, COMBO_END}; -// const uint16_t PROGMEM combo_altgr_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END}; -// const uint16_t PROGMEM combo_del_left[] = {GUI_T(KC_ESC), KC_K, COMBO_END}; -const uint16_t PROGMEM combo_control_shift_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END}; +const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END}; +const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END}; +const uint16_t PROGMEM combo_shift_left[] = {LT(_MOUSE, KC_COMM), US_EACU, COMBO_END}; +const uint16_t PROGMEM combo_alt_left[] = {CTL_T(KC_SPACE), US_EACU, COMBO_END}; +const uint16_t PROGMEM combo_control_shift_left[] = {CTL_T(KC_SPACE), GUI_T(KC_ESC), COMBO_END}; /* Sequences fo keys */ combo_t key_combos[] = { - [LEADER] = COMBO(combo_leader, KC_LEAD), - [BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER), + [LEADER] = COMBO(combo_leader, QK_LEAD), + [BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER), - [LAYER_ADJUST] = COMBO(combo_adjust, OSL(_ADJUST)), - [LAYER_FN] = COMBO(combo_fn, OSL(_FN)), - [LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)), - - /* -- */ - // [ENTER_SHIFTED] = COMBO(combo_enter_shifted, S(KC_ENT)), - [ALT_SHIFT] = COMBO(combo_alt_shift, A(S(XXXXXXX))), - [CONTROL_SHIFT] = COMBO(combo_control_shift, C(S(XXXXXXX))), - [CONTROL_ALT] = COMBO(combo_control_alt, C(A(XXXXXXX))), - [CONTROL_SHIFT_ALT] = COMBO(combo_control_shift_alt, C(S(A(XXXXXXX)))), - [RIGHT_ALT] = COMBO(combo_right_alt, KC_RALT), + [LAYER_ADJ] = COMBO(combo_ADJ, OSL(_ADJ)), + [LAYER_FN] = COMBO(combo_fn, OSL(_FN)), + [LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)), + [LAYER_MOUSE] = COMBO(combo_mouse, TG(_MOUSE)), + [LAYER_MOUSE_BACK] = COMBO(combo_mouse_back, TG(_MOUSE)), /* French */ - [E_ACUTE] = COMBO(combo_e_acute, CS_E_ACUTE), - [C_CEDILLA] = COMBO(combo_c_cedilla, CS_C_CEDILLA), - [E_A] = COMBO(combo_ea, CS_AE), - [E_O] = COMBO(combo_eo, CS_OE), - - [A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE), - [E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE), - [I_GRAVE] = COMBO(combo_i_grave, CS_I_GRAVE), - [O_GRAVE] = COMBO(combo_o_grave, CS_O_GRAVE), - [U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE), - - [A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX), - [E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX), - [I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX), - [O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX), - [U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX), - - [A_DIAERESIS] = COMBO(combo_a_diaeresis, CS_A_DIAERESIS), - [E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS), - [I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS), - [O_DIAERESIS] = COMBO(combo_o_diaeresis, CS_O_DIAERESIS), - [U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS), - [Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS), + [C_CEDILLA] = COMBO(combo_c_cedilla, US_CCED), + [E_A] = COMBO(combo_ea, US_AE), + [E_O] = COMBO(combo_eo, US_OE), + + [A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE), + [E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE), + [U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE), + + [A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX), + [E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX), + [I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX), + [O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX), + [U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX), + + [E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS), + [I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS), + [U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS), + [Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS), /* -- */ - [AMPERSAND] = COMBO(combo_ampersand, KC_AMPR), - [AT_SIGN] = COMBO(combo_at_sign, KC_AT), - [BACKSLASH] = COMBO(combo_backslash, KC_BSLS), - [CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRC), - [COLON] = COMBO(combo_colon, KC_COLON), - [DOLLAR] = COMBO(combo_dollar, KC_DLR), - [EQUAL] = COMBO(combo_equal, KC_EQL), - [EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM), - [GRAVE] = COMBO(combo_grave, KC_GRV), - [HASH] = COMBO(combo_hash, KC_HASH), - [MINUS] = COMBO(combo_minus, KC_MINS), - [PERCENT] = COMBO(combo_percent, KC_PERC), - [PIPE] = COMBO(combo_pipe, KC_PIPE), - [PLUS] = COMBO(combo_plus, KC_PLUS), - [QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION), - [QUOTE] = COMBO(combo_quote, KC_QUOTE), - [QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE), - [SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON), - [SLASH] = COMBO(combo_slash, KC_SLSH), - [STAR] = COMBO(combo_star, KC_ASTR), - [TILDE] = COMBO(combo_tilde, KC_TILD), - [UNDERSCORE] = COMBO(combo_underscore, KC_UNDS), - - [ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LABK), - [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK), - - [BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET), - [BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET), - [CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE), - [CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE), - [PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN), - [PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN), + [AMPERSAND] = COMBO(combo_ampersand, KC_AMPERSAND), + [AT_SIGN] = COMBO(combo_at_sign, KC_AT), + [BACKSLASH] = COMBO(combo_backslash, KC_BACKSLASH), + [CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRCUMFLEX), + [COLON] = COMBO(combo_colon, KC_COLON), + [DOLLAR] = COMBO(combo_dollar, KC_DOLLAR), + [EQUAL] = COMBO(combo_equal, KC_EQUAL), + [EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM), + [GRAVE] = COMBO(combo_grave, KC_GRAVE), + [HASH] = COMBO(combo_hash, KC_HASH), + [MINUS] = COMBO(combo_minus, KC_MINUS), + [PERCENT] = COMBO(combo_percent, KC_PERCENT), + [PIPE] = COMBO(combo_pipe, KC_PIPE), + [PLUS] = COMBO(combo_plus, KC_PLUS), + [QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION), + [QUOTE] = COMBO(combo_quote, KC_QUOTE), + [QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE), + [SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON), + [SLASH] = COMBO(combo_slash, KC_SLASH), + [STAR] = COMBO(combo_star, KC_ASTERISK), + [TILDE] = COMBO(combo_tilde, KC_TILDE), + [UNDERSCORE] = COMBO(combo_underscore, KC_UNDERSCORE), + + [ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LEFT_ANGLE_BRACKET), + [ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RIGHT_ANGLE_BRACKET), + + [BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET), + [BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET), + [CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE), + [CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE), + [PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN), + [PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN), + + /* Non qwerty */ + [EURO] COMBO(combo_euro, US_EURO), /* One hand special */ - [CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL), - [CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))), + [CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL), + [CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))), - [SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT), - // [ALTGR_LEFT] = COMBO(combo_altgr_left, KC_ALGR), - [CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))), - // [DEL_LEFT] = COMBO(combo_del_left, KC_BSPC), + [ALT_LEFT] = COMBO(combo_alt_left, KC_LALT), + [SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT), + [CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))), }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c index 7cfd30af6d4b..1964fb428feb 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/leader.c @@ -2,267 +2,207 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H - -LEADER_EXTERNS(); - -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - // SEQ_ONE_KEY(KC_F) { - // // Anything you can do in a macro. - // SEND_STRING("QMK is awesome."); } - - - SEQ_TWO_KEYS(KC_M, KC_S) { - SEND_STRING("f@linguenheld.fr"); } - SEQ_TWO_KEYS(KC_M, KC_L) { - SEND_STRING("florent@linguenheld.fr"); } - SEQ_TWO_KEYS(KC_F, KC_L) { - SEND_STRING("FLinguenheld"); } - - SEQ_THREE_KEYS(KC_T, KC_E, KC_S) { - SEND_STRING("test01234"); } - SEQ_THREE_KEYS(KC_A, KC_D, KC_M) { - SEND_STRING("admin01234"); } - - SEQ_ONE_KEY(KC_C) { - SEND_STRING(" | xclip -r -selection clipboard"); } - - /* Degree */ - SEQ_THREE_KEYS(KC_D, KC_E, KC_G) { - send_unicode_string("°"); } +#include "keycodes.h" +#include + +void leader_end_user(void) { + if (leader_sequence_two_keys(KC_M, KC_S)) { + SEND_STRING("f@linguenheld.fr"); + } else if (leader_sequence_two_keys(KC_M, KC_L)) { + SEND_STRING("florent@linguenheld.fr"); + } else if (leader_sequence_two_keys(KC_F, KC_L)) { + SEND_STRING("flinguenheld"); + + } else if (leader_sequence_three_keys(KC_D, KC_O, KC_T)) { + SEND_STRING("https://github.com/flinguenheld/dotfiles"); + } else if (leader_sequence_three_keys(KC_H, KC_U, KC_B)) { + SEND_STRING("https://github.com/flinguenheld/"); + } else if (leader_sequence_three_keys(KC_Q, KC_M, KC_K)) { + SEND_STRING("$HOME/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/sweep_keymap"); + } else if (leader_sequence_three_keys(KC_Q, KC_M, KC_C)) { + SEND_STRING("qmk compile && qmk flash"); + + } else if (leader_sequence_three_keys(KC_T, KC_E, KC_S)) { + SEND_STRING("test01234"); + } else if (leader_sequence_three_keys(KC_A, KC_D, KC_M)) { + SEND_STRING("admin01234"); + + } else if (leader_sequence_one_key(KC_C)) { + SEND_STRING(" | xclip -r -selection clipboard"); + + /* Keyring requests, improbable combinaisons used by i3 */ + } else if (leader_sequence_three_keys(KC_G, KC_I, KC_T)) { + register_code(KC_LEFT_GUI); + register_code(KC_LEFT_SHIFT); + register_code(KC_LEFT_CTRL); + register_code(KC_0); + unregister_code(KC_0); + unregister_code(KC_LEFT_GUI); + unregister_code(KC_LEFT_SHIFT); + unregister_code(KC_LEFT_CTRL); + + } else if (leader_sequence_three_keys(KC_M, KC_A, KC_I)) { + register_code(KC_LEFT_GUI); + register_code(KC_LEFT_SHIFT); + register_code(KC_LEFT_CTRL); + register_code(KC_1); + unregister_code(KC_1); + unregister_code(KC_LEFT_GUI); + unregister_code(KC_LEFT_SHIFT); + unregister_code(KC_LEFT_CTRL); + + } else if (leader_sequence_three_keys(KC_P, KC_A, KC_S)) { + register_code(KC_LEFT_GUI); + register_code(KC_LEFT_SHIFT); + register_code(KC_LEFT_CTRL); + register_code(KC_2); + unregister_code(KC_2); + unregister_code(KC_LEFT_GUI); + unregister_code(KC_LEFT_SHIFT); + unregister_code(KC_LEFT_CTRL); + + /* ----- */ + } else if (leader_sequence_three_keys(KC_D, KC_E, KC_G)) { + tap_code16(US_DEG); // ° + } else if (leader_sequence_three_keys(KC_D, KC_I, KC_A)) { + tap_code16(US_OSTR); // ø + } else if (leader_sequence_three_keys(KC_S, KC_E, KC_C)) { + tap_code16(US_SECT); // § /* Copyright / Register */ - SEQ_THREE_KEYS(KC_C, KC_O, KC_P) { - send_unicode_string("©"); } - SEQ_THREE_KEYS(KC_R, KC_E, KC_G) { - send_unicode_string("®"); } - - /* Diameter */ - SEQ_THREE_KEYS(KC_D, KC_I, KC_A) { - send_unicode_string("ø"); } - SEQ_FOUR_KEYS(KC_D, KC_I, KC_A, KC_M) { - send_unicode_string("Ø"); } + } else if (leader_sequence_three_keys(KC_C, KC_O, KC_P)) { + tap_code16(US_COPY); // © + } else if (leader_sequence_three_keys(KC_R, KC_E, KC_G)) { + tap_code16(US_REGD); // ® /* Currency */ - SEQ_THREE_KEYS(KC_E, KC_U, KC_R) { - send_unicode_string("€"); } - SEQ_THREE_KEYS(KC_P, KC_O, KC_U) { - send_unicode_string("£"); } - SEQ_THREE_KEYS(KC_Y, KC_E, KC_N) { - send_unicode_string("¥"); } - SEQ_THREE_KEYS(KC_C, KC_E, KC_N) { - send_unicode_string("¢"); } + } else if (leader_sequence_three_keys(KC_E, KC_U, KC_R)) { + tap_code16(US_EURO); // € + } else if (leader_sequence_three_keys(KC_P, KC_O, KC_U)) { + tap_code16(US_PND); // £ + } else if (leader_sequence_three_keys(KC_Y, KC_E, KC_N)) { + tap_code16(US_YEN); // ¥ + } else if (leader_sequence_three_keys(KC_C, KC_E, KC_N)) { + tap_code16(US_CENT); // ¢ /* Fractions */ - SEQ_THREE_KEYS(KC_F, KC_C, KC_T) { - send_unicode_string("¼"); } - SEQ_THREE_KEYS(KC_F, KC_C, KC_G) { - send_unicode_string("½"); } - SEQ_THREE_KEYS(KC_F, KC_H, KC_T) { - send_unicode_string("¾"); } + } else if (leader_sequence_three_keys(KC_F, KC_C, KC_T)) { + tap_code16(US_QRTR); // ¼ + } else if (leader_sequence_three_keys(KC_F, KC_C, KC_G)) { + tap_code16(US_HALF); // ½ + } else if (leader_sequence_three_keys(KC_F, KC_H, KC_T)) { + tap_code16(US_TQTR); // ¾ /* Maths */ - SEQ_THREE_KEYS(KC_M, KC_U, KC_L) { - send_unicode_string("×"); } - SEQ_THREE_KEYS(KC_D, KC_I, KC_V) { - send_unicode_string("÷"); } - SEQ_TWO_KEYS(KC_P, KC_M) { - send_unicode_string("±"); } - SEQ_THREE_KEYS(KC_I, KC_N, KC_E) { - send_unicode_string("≠"); } - SEQ_THREE_KEYS(KC_A, KC_L, KC_M) { - send_unicode_string("≈"); } - SEQ_THREE_KEYS(KC_S, KC_Q, KC_U) { - send_unicode_string("√"); } - SEQ_THREE_KEYS(KC_I, KC_N, KC_F) { - send_unicode_string("∞"); } - SEQ_TWO_KEYS(KC_LABK, KC_LABK) { - send_unicode_string("≤"); } - SEQ_TWO_KEYS(KC_RABK, KC_RABK) { - send_unicode_string("≥"); } + } else if (leader_sequence_three_keys(KC_M, KC_U, KC_L)) { + tap_code16(US_MUL); // × + } else if (leader_sequence_three_keys(KC_D, KC_I, KC_V)) { + tap_code16(US_DIV); // ÷ + } else if (leader_sequence_two_keys(KC_P, KC_M)) { + send_unicode_string("±"); + } else if (leader_sequence_three_keys(KC_I, KC_N, KC_E)) { + send_unicode_string("≠"); + } else if (leader_sequence_three_keys(KC_A, KC_L, KC_M)) { + send_unicode_string("≈"); + } else if (leader_sequence_three_keys(KC_S, KC_Q, KC_U)) { + send_unicode_string("√"); + } else if (leader_sequence_three_keys(KC_I, KC_N, KC_F)) { + send_unicode_string("∞"); + } else if (leader_sequence_two_keys(KC_LABK, KC_LABK)) { + send_unicode_string("≤"); + } else if (leader_sequence_two_keys(KC_RABK, KC_RABK)) { + send_unicode_string("≥"); /* Greek */ - SEQ_TWO_KEYS(KC_P, KC_I) { - send_unicode_string("π"); } - SEQ_THREE_KEYS(KC_P, KC_I, KC_I) { - send_unicode_string("Π"); } - - SEQ_THREE_KEYS(KC_O, KC_M, KC_E) { - send_unicode_string("ω"); } - SEQ_FOUR_KEYS(KC_O, KC_M, KC_E, KC_G) { - send_unicode_string("Ω"); } + } else if (leader_sequence_three_keys(KC_B, KC_E, KC_T)) { + tap_code16(US_SS); // ß + } else if (leader_sequence_three_keys(KC_M, KC_I, KC_C)) { + tap_code16(US_MICR); // µ + } else if (leader_sequence_two_keys(KC_P, KC_I)) { + send_unicode_string("π"); + } else if (leader_sequence_three_keys(KC_P, KC_I, KC_I)) { + send_unicode_string("Π"); + + } else if (leader_sequence_three_keys(KC_O, KC_M, KC_E)) { + send_unicode_string("ω"); + } else if (leader_sequence_four_keys(KC_O, KC_M, KC_E, KC_G)) { + send_unicode_string("Ω"); /* Icons */ - SEQ_THREE_KEYS(KC_F, KC_L, KC_A) { - send_unicode_string("⚡"); } - SEQ_THREE_KEYS(KC_S, KC_T, KC_A) { - send_unicode_string("⭐"); } - SEQ_THREE_KEYS(KC_S, KC_P, KC_A) { - send_unicode_string("✨"); } - SEQ_THREE_KEYS(KC_P, KC_O, KC_P) { - send_unicode_string("🎉"); } - SEQ_THREE_KEYS(KC_R, KC_E, KC_C) { - send_unicode_string("♻️"); } - SEQ_THREE_KEYS(KC_L, KC_O, KC_V) { - send_unicode_string("❤️"); } - SEQ_THREE_KEYS(KC_F, KC_I, KC_R) { - send_unicode_string("🔥"); } - SEQ_THREE_KEYS(KC_B, KC_O, KC_M) { - send_unicode_string("💣"); } - SEQ_FOUR_KEYS(KC_B, KC_O, KC_U, KC_M) { - send_unicode_string("💥"); } - SEQ_THREE_KEYS(KC_R, KC_O, KC_C) { - send_unicode_string("🚀"); } - SEQ_THREE_KEYS(KC_T, KC_E, KC_L) { - send_unicode_string("🔭"); } - SEQ_THREE_KEYS(KC_M, KC_A, KC_G) { - send_unicode_string("🔎"); } - SEQ_THREE_KEYS(KC_W, KC_A, KC_R) { - send_unicode_string("⚠️"); } - - SEQ_THREE_KEYS(KC_B, KC_U, KC_L) { - send_unicode_string("💡"); } - SEQ_FOUR_KEYS(KC_I, KC_N, KC_F, KC_O) { - send_unicode_string("ℹ️"); } - SEQ_THREE_KEYS(KC_G, KC_E, KC_A) { - send_unicode_string("⚙️"); } - SEQ_THREE_KEYS(KC_L, KC_I, KC_N) { - send_unicode_string("🔗"); } - SEQ_THREE_KEYS(KC_P, KC_I, KC_N) { - send_unicode_string("📌"); } - SEQ_FOUR_KEYS(KC_F, KC_L, KC_A, KC_G) { - send_unicode_string("🚩"); } - SEQ_THREE_KEYS(KC_B, KC_A, KC_L) { - send_unicode_string("🎈"); } - SEQ_THREE_KEYS(KC_G, KC_I, KC_F) { - send_unicode_string("🎁"); } - - SEQ_THREE_KEYS(KC_P, KC_E, KC_N) { - send_unicode_string("✏️"); } - SEQ_THREE_KEYS(KC_K, KC_E, KC_Y) { - send_unicode_string("🔑"); } - SEQ_THREE_KEYS(KC_B, KC_O, KC_X) { - send_unicode_string("🧰"); } - - SEQ_TWO_KEYS(KC_O, KC_K) { - send_unicode_string("👌"); } - SEQ_THREE_KEYS(KC_O, KC_W, KC_D) { - send_unicode_string("⛔"); } - - SEQ_ONE_KEY(KC_V) { - send_unicode_string("✓"); } - SEQ_TWO_KEYS(KC_V, KC_B) { - send_unicode_string("☑"); } - SEQ_TWO_KEYS(KC_V, KC_G) { - send_unicode_string("✅"); } - - SEQ_ONE_KEY(KC_X) { - send_unicode_string("✗"); } - SEQ_TWO_KEYS(KC_X, KC_B) { - send_unicode_string("☒"); } - SEQ_TWO_KEYS(KC_X, KC_G) { - send_unicode_string("❎"); } - SEQ_TWO_KEYS(KC_X, KC_R) { - send_unicode_string("❌"); } - - SEQ_ONE_KEY(KC_QUESTION) { - send_unicode_string("❔"); } - SEQ_ONE_KEY(KC_EXCLAIM) { - send_unicode_string("❕"); } - SEQ_TWO_KEYS(KC_QUESTION, KC_QUESTION) { - send_unicode_string("❓"); } - SEQ_TWO_KEYS(KC_EXCLAIM, KC_EXCLAIM) { - send_unicode_string("❗"); } - - SEQ_THREE_KEYS(KC_C, KC_O, KC_F) { - send_unicode_string("☕"); } - SEQ_THREE_KEYS(KC_U, KC_M, KC_B) { - send_unicode_string("☔"); } - - SEQ_THREE_KEYS(KC_L, KC_O, KC_L) { - send_unicode_string("😀"); } - SEQ_THREE_KEYS(KC_M, KC_D, KC_R) { - send_unicode_string("🤣"); } - SEQ_THREE_KEYS(KC_K, KC_I, KC_S) { - send_unicode_string("😙"); } - SEQ_THREE_KEYS(KC_A, KC_N, KC_G) { - send_unicode_string("😇"); } - SEQ_THREE_KEYS(KC_G, KC_L, KC_A) { - send_unicode_string("😎"); } - SEQ_THREE_KEYS(KC_A, KC_N, KC_G) { - send_unicode_string("🤬"); } - SEQ_THREE_KEYS(KC_F, KC_E, KC_A) { - send_unicode_string("😱"); } - SEQ_THREE_KEYS(KC_N, KC_E, KC_U) { - send_unicode_string("😐"); } - SEQ_THREE_KEYS(KC_T, KC_H, KC_I) { - send_unicode_string("🤔"); } - SEQ_THREE_KEYS(KC_Z, KC_I, KC_P) { - send_unicode_string("🤐"); } - SEQ_THREE_KEYS(KC_S, KC_U, KC_R) { - send_unicode_string("😯"); } - SEQ_THREE_KEYS(KC_R, KC_O, KC_L) { - send_unicode_string("🙄"); } - SEQ_THREE_KEYS(KC_M, KC_O, KC_O) { - send_unicode_string("🌝"); } - SEQ_THREE_KEYS(KC_H, KC_U, KC_G) { - send_unicode_string("🫂"); } - - SEQ_THREE_KEYS(KC_H, KC_E, KC_N) { - send_unicode_string("🐔"); } - SEQ_THREE_KEYS(KC_R, KC_O, KC_O) { - send_unicode_string("🐓"); } - SEQ_THREE_KEYS(KC_D, KC_U, KC_C) { - send_unicode_string("🦆"); } - SEQ_THREE_KEYS(KC_P, KC_E, KC_A) { - send_unicode_string("🦚"); } - SEQ_THREE_KEYS(KC_B, KC_I, KC_R) { - send_unicode_string("🐦"); } + } else if (leader_sequence_three_keys(KC_L, KC_O, KC_V)) { + send_unicode_string("♥"); + } else if (leader_sequence_three_keys(KC_F, KC_L, KC_A)) { + send_unicode_string("⚡"); + } else if (leader_sequence_three_keys(KC_S, KC_T, KC_A)) { + send_unicode_string("✶"); + } else if (leader_sequence_three_keys(KC_B, KC_U, KC_L)) { + send_unicode_string("💡"); + } else if (leader_sequence_four_keys(KC_I, KC_N, KC_F, KC_O)) { + send_unicode_string("ℹ️"); + } else if (leader_sequence_three_keys(KC_G, KC_E, KC_A)) { + send_unicode_string("⚙️"); + + } else if (leader_sequence_one_key(KC_V)) { + send_unicode_string("✓"); + } else if (leader_sequence_two_keys(KC_V, KC_B)) { + send_unicode_string("✔"); + } else if (leader_sequence_two_keys(KC_V, KC_V)) { + send_unicode_string("✅"); + + } else if (leader_sequence_one_key(KC_X)) { + send_unicode_string("✗"); + } else if (leader_sequence_two_keys(KC_X, KC_B)) { + send_unicode_string("✘"); + + } else if (leader_sequence_one_key(KC_QUESTION)) { + send_unicode_string("❔"); + } else if (leader_sequence_one_key(KC_EXCLAIM)) { + send_unicode_string("❗"); + } else if (leader_sequence_two_keys(KC_QUESTION, KC_QUESTION)) { + send_unicode_string("❓"); + } else if (leader_sequence_two_keys(KC_EXCLAIM, KC_EXCLAIM)) { + send_unicode_string("❕"); /* Subscript / superscript */ - SEQ_THREE_KEYS(KC_U, KC_P, KC_F) { - send_unicode_string("⁰"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_F) { - send_unicode_string("₀"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_C) { - send_unicode_string("¹"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_C) { - send_unicode_string("₁"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_G) { - send_unicode_string("²"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_G) { - send_unicode_string("₂"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_H) { - send_unicode_string("³"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_H) { - send_unicode_string("₃"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_T) { - send_unicode_string("⁴"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_T) { - send_unicode_string("₄"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_S) { - send_unicode_string("⁵"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_S) { - send_unicode_string("₅"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_R) { - send_unicode_string("⁶"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_R) { - send_unicode_string("₆"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_P) { - send_unicode_string("⁷"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_P) { - send_unicode_string("₇"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_D) { - send_unicode_string("⁸"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_D) { - send_unicode_string("₈"); } - SEQ_THREE_KEYS(KC_U, KC_P, KC_L) { - send_unicode_string("⁹"); } - SEQ_THREE_KEYS(KC_D, KC_N, KC_L) { - send_unicode_string("₉"); } - + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_N)) { + send_unicode_string("⁰"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_N)) { + send_unicode_string("₀"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_C)) { + tap_code16(US_SUP1); // ¹ + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_C)) { + send_unicode_string("₁"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_G)) { + tap_code16(US_SUP2); // ² + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_G)) { + send_unicode_string("₂"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_H)) { + tap_code16(US_SUP3); // ³ + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_H)) { + send_unicode_string("₃"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_T)) { + send_unicode_string("⁴"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_T)) { + send_unicode_string("₄"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_S)) { + send_unicode_string("⁵"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_S)) { + send_unicode_string("₅"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_R)) { + send_unicode_string("⁶"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_R)) { + send_unicode_string("₆"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_P)) { + send_unicode_string("⁷"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_P)) { + send_unicode_string("₇"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_D)) { + send_unicode_string("⁸"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_D)) { + send_unicode_string("₈"); + } else if (leader_sequence_three_keys(KC_U, KC_P, KC_L)) { + send_unicode_string("⁹"); + } else if (leader_sequence_three_keys(KC_D, KC_N, KC_L)) { + send_unicode_string("₉"); }; } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h index b90b28fda41a..4439f958b7e4 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keycodes.h @@ -2,43 +2,34 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once - -enum layers { - _BASE, - _NUMERIC, - _ARROWS, - _MOUSE, - _ADJUST, - _FN, - _LEFT_HAND, +#include "keymap_us_extended.h" + +enum custom_layers { + _BASE, + _NUMERIC, + _ARROWS, + _MOUSE, + _ADJ, + _FN, + _LEFT_HAND, }; enum custom_keys { - UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer - - /* See auto-shift */ - CS_E_ACUTE, - - CS_A_GRAVE, - CS_E_GRAVE, - CS_I_GRAVE, - CS_O_GRAVE, - CS_U_GRAVE, - - CS_C_CEDILLA, - CS_AE, - CS_OE, - - CS_A_CIRCUMFLEX, - CS_E_CIRCUMFLEX, - CS_I_CIRCUMFLEX, - CS_O_CIRCUMFLEX, - CS_U_CIRCUMFLEX, - - CS_A_DIAERESIS, - CS_E_DIAERESIS, - CS_I_DIAERESIS, - CS_O_DIAERESIS, - CS_U_DIAERESIS, - CS_Y_DIAERESIS, + UNICODE = QK_KB_0, // Replace SAFE_RANGE, see pr #19909 + + /* See auto-shift */ + CS_A_GRAVE, + CS_E_GRAVE, + CS_U_GRAVE, + + CS_A_CIRCUMFLEX, + CS_E_CIRCUMFLEX, + CS_I_CIRCUMFLEX, + CS_O_CIRCUMFLEX, + CS_U_CIRCUMFLEX, + + CS_E_DIAERESIS, + CS_I_DIAERESIS, + CS_U_DIAERESIS, + CS_Y_DIAERESIS, }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c index 50fb7909f371..f024859e7cc2 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/keymap.c @@ -17,7 +17,7 @@ #include QMK_KEYBOARD_H #include "keycodes.h" - +// clang-format off bool process_record_user(uint16_t keycode, keyrecord_t *record) { /* Macros */ @@ -25,14 +25,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case UNICODE: if (record->event.pressed) { - register_code(KC_LCTL); - register_code(KC_LSFT); - tap_code16(KC_U); - } else { - unregister_code(KC_LCTL); - unregister_code(KC_LSFT); - } - break; + tap_code16(C(S(KC_U))); + } break; } return true; @@ -46,11 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| KC_A , KC_I , KC_E , KC_U , KC_TAB , KC_V , KC_T , KC_S , KC_R , KC_N , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - KC_LALT , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M , + US_EACU , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| - LT(_MOUSE, KC_COMM) , KC_LCPO , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT) - // |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------| + LT(_MOUSE, KC_COMM) , CTL_T(KC_SPACE) , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT) + // |-------------------------+-------------------------| |-------------------------+-------------------------| ), [_NUMERIC] = LAYOUT( @@ -59,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_4 , KC_5 , KC_6 , KC_0 , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM , + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| XXXXXXX , UNICODE , XXXXXXX , XXXXXXX @@ -85,21 +79,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX , + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| XXXXXXX , _______ , XXXXXXX , XXXXXXX // |-------------------------+-------------------------| |-------------------------+-------------------------| ), - [_ADJUST] = LAYOUT( - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP , - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN, - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| - XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE , - //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------| + [_ADJ] = LAYOUT( + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP , XXXXXXX , + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| + XXXXXXX , G(C(S(KC_G))), XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN, XXXXXXX , + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| + XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE , XXXXXXX , + //|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+-----------------+----------| // |-------------------------+-------------------------| |-------------------------+-------------------------| XXXXXXX , _______ , XXXXXXX , XXXXXXX // |-------------------------+-------------------------| |-------------------------+-------------------------| @@ -122,12 +116,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| _______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - XXXXXXX , C(KC_X) , C(KC_C) , C(KC_V) , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + XXXXXXX , KC_CUT , KC_COPY , KC_PASTE , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| - _______ , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , + XXXXXXX , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , //|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------| // |-------------------------+-------------------------| |-------------------------+-------------------------| - XXXXXXX , _______ , XXXXXXX , XXXXXXX + XXXXXXX , KC_ENTER , XXXXXXX , XXXXXXX // |-------------------------+-------------------------| |-------------------------+-------------------------| ), }; diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c index ad4448993ff3..8ca414fdd0f8 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/glcdfont.c @@ -5,228 +5,84 @@ /* Online editor: https://joric.github.io/qle/ */ static const unsigned char PROGMEM font[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, - 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, - 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, - 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0x7F, 0x70, 0x60, 0x67, 0x67, - 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x67, - 0x67, 0x67, 0x67, 0x67, 0x7F, 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, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, - 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, - 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, - 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 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, - 0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, - 0x66, 0x66, 0xE6, 0xFE, 0xFE, 0x06, - 0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, - 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, - 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0x7F, 0x60, 0x60, 0x7C, 0x7C, - 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, - 0x60, 0x60, 0x67, 0x67, 0x67, 0x67, - 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, - 0x3F, 0x7F, 0x67, 0x66, 0x66, 0x66, - 0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, - 0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x0E, - 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, - 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, - 0x66, 0x66, 0x06, 0x0E, 0xFE, 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, - 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, - 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, - 0x06, 0xCE, 0x9E, 0x9E, 0xCE, 0x06, - 0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, - 0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0x7F, 0x60, 0x60, 0x7C, 0x7C, - 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, - 0x60, 0x67, 0x67, 0x64, 0x60, 0x70, - 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, - 0x78, 0x70, 0x62, 0x67, 0x7F, 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, - 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, - 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, - 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, - 0x67, 0x67, 0x70, 0x78, 0x7F, 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, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 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, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, + 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 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, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x7F, 0x70, 0x60, 0x67, 0x67, + 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, + 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 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, 0xFC, + 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0xFE, 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, 0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66, 0x66, 0x66, 0xE6, + 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06, 0x06, 0xE6, + 0xE6, 0xE6, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7F, 0x60, 0x60, 0x7C, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x60, + 0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, 0x3F, 0x7F, 0x67, 0x66, + 0x66, 0x66, 0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 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, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0x06, + 0x0E, 0xFE, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66, 0x66, + 0x66, 0x06, 0x0E, 0xFE, 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, 0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xCE, 0x9E, 0x9E, + 0xCE, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6, 0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7F, 0x60, + 0x60, 0x7C, 0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x64, 0x60, 0x70, 0x7F, 0x7F, + 0x60, 0x60, 0x7E, 0x7E, 0x78, 0x70, 0x62, 0x67, 0x7F, 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, 0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67, 0x67, 0x67, 0x67, 0x7F, 0x7F, + 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67, 0x67, 0x67, 0x70, 0x78, + 0x7F, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c index 5b177acc7c14..2d00ef4e3a7a 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/oled/oled.c @@ -4,454 +4,463 @@ #include QMK_KEYBOARD_H #include "keycodes.h" -/* Leader state */ -static bool is_leader_active = false; -void leader_start(void) { - is_leader_active = true; +/* Blank space to place modifiers */ +void add_blank(void) { + + oled_write_char(0x10, false); + oled_write_char(0x11, false); + oled_write_char(0x12, false); + oled_write_char(0x13, false); + oled_write_char(0x14, false); + + oled_write_char(0x30, false); + oled_write_char(0x31, false); + oled_write_char(0x32, false); + oled_write_char(0x33, false); + oled_write_char(0x34, false); } -void leader_end(void) { - is_leader_active = false; -} - void oled_display(void) { - /* Layers */ - switch (get_highest_layer(layer_state)) { - - case _BASE: ; - if (is_keyboard_master()) { - static const char PROGMEM qmk_logo_master[] = { - // 'raven', 32x128px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 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, - 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, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, - 0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 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, 0xe0, - 0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, - 0xfd, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, - 0x00, 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, - 0x30, 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, - 0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, - 0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 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 - }; - oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master)); - - } else { - static const char PROGMEM qmk_logo_slave[] = { - // 'birds', 32x128px - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, - 0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, - 0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, - 0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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_slave, sizeof(qmk_logo_slave)); - } - break; - - case _NUMERIC: ; - static const char PROGMEM qmk_numeric[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, - 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x87, 0x87, 0x87, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, - 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, - 0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, - 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x0e, 0x1e, 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, - 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, - 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); - break; - - case _MOUSE: ; - static const char PROGMEM qmk_mouse[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 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, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, - 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, - 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, - 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, - 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, - 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); - break; - - case _ARROWS: ; - static const char PROGMEM qmk_arrows[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 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, - 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, - 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 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, 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, 0x7c, 0x3c, 0x1c, 0x0c, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, 0x9e, 0x1e, 0x1e, 0x1e, - 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0e, 0x0c, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, - 0x78, 0x78, 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, - 0x30, 0x38, 0x3c, 0x3e, 0x1f, 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, 0xc0, 0xc0, - 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, - 0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, - 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, 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_arrows, sizeof(qmk_arrows)); - break; - - case _ADJUST: ; - static const char PROGMEM qmk_adjust[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, - 0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 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, 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, 0x1f, 0x3f, 0x3f, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, - 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 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, 0x00, 0x00, 0x00, 0x00, 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, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_adjust, sizeof(qmk_adjust)); - break; - - case _FN: ; - static const char PROGMEM qmk_fn[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, - 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, - 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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_fn, sizeof(qmk_fn)); - break; - - case _LEFT_HAND: ; - static const char PROGMEM qmk_left_hand[] = { - // 'layers_left_hand', 32x128px - 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, - 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe1, 0xf1, 0xf1, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, - 0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, - 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, 0x01, 0x03, 0x1f, 0x1f, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1e, 0xfc, 0xf8, 0xf0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, 0x1f, 0x0f - }; - - oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); - break; + /* Layers */ + switch (get_highest_layer(layer_state)) { + + case _BASE:; + if (is_keyboard_master()) { + static const char PROGMEM qmk_logo_master[] = { + // 'raven', 32x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, + 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, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f, + 0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 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, 0xe0, 0xf0, + 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9, 0xfd, + 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00, 0x00, + 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33, 0x30, + 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, + 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30, 0x20, + 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 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}; + oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master)); + + } else { + static const char PROGMEM qmk_logo_slave[] = { + // 'birds', 32x128px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81, + 0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a, + 0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22, + 0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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_slave, sizeof(qmk_logo_slave)); + } + break; + + case _NUMERIC:; + static const char PROGMEM qmk_numeric[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, + 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x87, 0x87, 0x87, 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, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, + 0xc7, 0xc7, 0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0e, 0x1e, + 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00}; + + oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric)); + break; + + case _MOUSE:; + static const char PROGMEM qmk_mouse[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 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, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xc0, 0xe0, 0xf0, + 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, + 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, + 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00}; + + oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse)); + break; + + case _ARROWS:; + static const char PROGMEM qmk_arrows[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0xfc, 0xf8, 0xf0, + 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, + 0x0f, 0x1f, 0x3e, 0x7c, 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, 0x00, 0x00, 0x00, 0x00, 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, 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, 0x7c, 0x3c, 0x1c, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, + 0x9e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, + 0x0e, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, + 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x38, 0x3c, 0x3e, + 0x1f, 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, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, + 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff, 0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x03, 0x07, 0x0f, 0x1f, 0x3f, 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, 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_arrows, sizeof(qmk_arrows)); + break; + + case _ADJ:; + static const char PROGMEM qmk_ADJ[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, + 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 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, + 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, 0x1f, 0x3f, + 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 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, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, + 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, + 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 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, 0x00, 0x00, 0x00, 0x00, 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, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00}; + + oled_write_raw_P(qmk_ADJ, sizeof(qmk_ADJ)); + break; + + case _FN:; + static const char PROGMEM qmk_fn[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 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, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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_fn, sizeof(qmk_fn)); + break; + + case _LEFT_HAND:; + static const char PROGMEM qmk_left_hand[] = { + // 'layers_left_hand', 32x128px + 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, 0xff, 0xff, + 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf1, 0xf1, 0x71, + 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, + 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 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, 0x01, 0x03, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, + 0x1e, 0xfc, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, + 0x1f, 0x0f}; + + oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand)); + break; + } + + /* Leader */ + if (leader_sequence_active()) { + + static const char PROGMEM qmk_leader[] = { + 0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, + 0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, 0x70, 0x70, + 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, + 0x00, 0x00}; + + oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); + } + + /* Modifier keys */ + if (get_mods()) { + + if (get_mods() & MOD_MASK_GUI) { + + oled_write_char(0x8B, false); + oled_write_char(0x8C, false); + oled_write_char(0x8D, false); + oled_write_char(0x8E, false); + oled_write_char(0x8F, false); + + oled_write_char(0xAB, false); + oled_write_char(0xAC, false); + oled_write_char(0xAD, false); + oled_write_char(0xAE, false); + oled_write_char(0xAF, false); + } else { + add_blank(); + } + + if (get_mods() & MOD_MASK_CTRL) { + + oled_write_char(0x01, false); + oled_write_char(0x02, false); + oled_write_char(0x03, false); + oled_write_char(0x04, false); + oled_write_char(0x05, false); + + oled_write_char(0x21, false); + oled_write_char(0x22, false); + oled_write_char(0x23, false); + oled_write_char(0x24, false); + oled_write_char(0x25, false); + } else { + add_blank(); } - /* Leader */ - if (is_leader_active) { - - static const char PROGMEM qmk_leader[] = { - 0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, - 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, - 0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e, - 0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70, - 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, - 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, - 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, - 0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00 - }; - - oled_write_raw_P(qmk_leader, sizeof(qmk_leader)); + if (get_mods() & MOD_BIT(KC_LALT)) { + + oled_write_char(0x41, false); + oled_write_char(0x42, false); + oled_write_char(0x43, false); + oled_write_char(0x44, false); + oled_write_char(0x45, false); + + oled_write_char(0x61, false); + oled_write_char(0x62, false); + oled_write_char(0x63, false); + oled_write_char(0x64, false); + oled_write_char(0x65, false); + } else { + add_blank(); } - /* Modifier keys */ - if (get_mods()) { - - if (get_mods() & MOD_MASK_CTRL) { - - oled_write_char(0x01, false); - oled_write_char(0x02, false); - oled_write_char(0x03, false); - oled_write_char(0x04, false); - oled_write_char(0x05, false); - - oled_write_char(0x21, false); - oled_write_char(0x22, false); - oled_write_char(0x23, false); - oled_write_char(0x24, false); - oled_write_char(0x25, false); - } - if (get_mods() & MOD_BIT(KC_LALT)) { - - oled_write_char(0x41, false); - oled_write_char(0x42, false); - oled_write_char(0x43, false); - oled_write_char(0x44, false); - oled_write_char(0x45, false); - - oled_write_char(0x61, false); - oled_write_char(0x62, false); - oled_write_char(0x63, false); - oled_write_char(0x64, false); - oled_write_char(0x65, false); - } - if (get_mods() & MOD_BIT(KC_RALT)) { - - oled_write_char(0x81, false); - oled_write_char(0x82, false); - oled_write_char(0x83, false); - oled_write_char(0x84, false); - oled_write_char(0x85, false); - - oled_write_char(0xA1, false); - oled_write_char(0xA2, false); - oled_write_char(0xA3, false); - oled_write_char(0xA4, false); - oled_write_char(0xA5, false); - } - if (get_mods() & MOD_MASK_SHIFT) { - - oled_write_char(0x4B, false); - oled_write_char(0x4C, false); - oled_write_char(0x4D, false); - oled_write_char(0x4E, false); - oled_write_char(0x4F, false); - - oled_write_char(0x6B, false); - oled_write_char(0x6C, false); - oled_write_char(0x6D, false); - oled_write_char(0x6E, false); - oled_write_char(0x6F, false); - } - if (get_mods() & MOD_MASK_GUI) { - - oled_write_char(0x8B, false); - oled_write_char(0x8C, false); - oled_write_char(0x8D, false); - oled_write_char(0x8E, false); - oled_write_char(0x8F, false); - - oled_write_char(0xAB, false); - oled_write_char(0xAC, false); - oled_write_char(0xAD, false); - oled_write_char(0xAE, false); - oled_write_char(0xAF, false); - } + if (get_mods() & MOD_MASK_SHIFT) { + + oled_write_char(0x4B, false); + oled_write_char(0x4C, false); + oled_write_char(0x4D, false); + oled_write_char(0x4E, false); + oled_write_char(0x4F, false); + + oled_write_char(0x6B, false); + oled_write_char(0x6C, false); + oled_write_char(0x6D, false); + oled_write_char(0x6E, false); + oled_write_char(0x6F, false); + } else { + add_blank(); } + + if (get_mods() & MOD_BIT(KC_RALT)) { + + oled_write_char(0x81, false); + oled_write_char(0x82, false); + oled_write_char(0x83, false); + oled_write_char(0x84, false); + oled_write_char(0x85, false); + + oled_write_char(0xA1, false); + oled_write_char(0xA2, false); + oled_write_char(0xA3, false); + oled_write_char(0xA4, false); + oled_write_char(0xA5, false); + } + + // Add a line + oled_write_char(0xC1, false); + oled_write_char(0xC2, false); + oled_write_char(0xC3, false); + oled_write_char(0xC4, false); + oled_write_char(0xC5, false); + } }; bool oled_task_user(void) { - oled_display(); - return false; + oled_display(); + return false; } diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md index 3873ca45cfbb..b70b3655da75 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/readme.md @@ -1,16 +1,16 @@ ### Custom aurora sweep keymap +This keymap is inspired by [optimot](https://optimot.fr) which is a French layout. +Nonetheless it uses the US international extended keymap for French keys. -This keymap is inspired by [optimot](https://bepo.fr/) which is a French layout. -Nonetheless all French characters are sent in unicode, so it works with the standard US ANSI layout. +It uses the _best_ QMK features : -It uses the *best* qmk features : -- combos ♥ -- auto shift -- leader +- combos ♥ +- auto shift +- leader I tried to optimise key positions for neovim and i3wm while limit digrams. -The oled screens are used to display the current layout, the modifier keys and the leader key. +The oled screens are used to display the current layout, the modifier keys and the leader key. ![oledmodifiers](https://i.imgur.com/on95jx0.png) ![oledmouse](https://i.imgur.com/PwkR6P2.png) @@ -27,104 +27,71 @@ Navigate into the keymap folder and launch this command for both sides : qmk compile && qmk flash -and : +And : - Click twice on the flash button and use nautilus for instance to clic on the keyboard. + Click twice on the flash button and use nautilus for instance to clic on the keyboard. Don't forget to flash with the double tap bootloader define before soldering. +#### Layout + +Set the us altgr international to activate French keys : + + /usr/share/X11/xkb/symbols/ + localectl list-x11-keymap-variants us + + setxkbmap us altgr-intl + #### Links [qmk](https://docs.qmk.fm/#/) [ferris sweep](https://github.com/davidphilipbarr/Sweep) -[splitkb](https://splitkb.com) +[splitkb](https://splitkb.com) #### Layouts -![base](https://i.imgur.com/E3hRkxW.png) -![numeric](https://i.imgur.com/GeC0reE.png) -![mouse](https://i.imgur.com/QhsWVrE.png) -![arrows](https://i.imgur.com/4sAfGAt.png) -![adjust](https://i.imgur.com/hcoN2P8.png) -![fn](https://i.imgur.com/dVunqFF.png) -![left hand](https://i.imgur.com/fk5YJj6.png) -![combo](https://i.imgur.com/aZ8TpuY.png) -![combo2](https://i.imgur.com/QayRuFA.png) -![combo3](https://i.imgur.com/YpnbMeh.png) - -#### French - -| - | | -|------------------|------------------------| -| space + e | é | -| space + i | ç | -| space + a | æ | -| space + o | œ | -| comma + a | à | -| comma + e | è | -| comma + i | ì | -| comma + o | ò | -| comma + u | ù | -| enter + a | â | -| enter + e | ê | -| enter + i | î | -| enter + o | ô | -| enter + u | û | -| dot + a | ä | -| dot + e | ë | -| dot + i | ï | -| dot + o | ö | -| dot + u | ü | -| dot + y | ÿ | +![base](https://i.imgur.com/i7NgrCD.png) +![numeric](https://i.imgur.com/6Yso40L.png) +![mouse](https://i.imgur.com/skSL4Lo.png) +![arrows](https://i.imgur.com/NIjJR2I.png) +![adjust](https://i.imgur.com/xj6i70P.png) +![fn](https://i.imgur.com/Q41ZdQi.png) +![left hand](https://i.imgur.com/WDEGxGM.png) +![combos](https://i.imgur.com/wj6DEY0.png) #### Leader -| - | | -|--------------------|------------------------| -| M + S | mail short | -| M + L | mail long | -| D + E + G | ° | -| C + O + P | © | -| R + E + G | ® | -| D + I + A | ø | -| D + I + A + M | Ø | -| E + U + R | € | -| P + O + U | £ | -| Y + E + N | ¥ | -| C + E + N | ¢ | -| P + I | π | -| P + I + I | Π | -| O + M + E | ω | -| O + M + E + G | Ω | -| U + P + F | ⁰ | -| D + N + F | ₀ | - -| - | | -|--------------------|------------------------| -| M + U + L | × | -| D + I + V | ÷ | -| P + M | ± | -| I + N + E | ≠ | -| A + L + M | ≈ | -| S + Q + U | √ | -| I + N + F | ∞ | -| < + < | ≤ | -| > + > | ≥ | -| F + S + T | ¼ | -| F + S + G | ½ | -| F + H + T | ¾ | - -| - | | -|--------------------|------------------------| -| F + L + A | ⚡ | -| S + P + A | ✨ | -| O + W + D | ⛔ | -| C + O + F | ☕ | -| U + M + B | ☔ | -| Y + E + S | ✅ | -| N + O | ❎ | -| C + R + O | ❌ | -| ? | ❔ | -| ! | ❕ | -| ? + ? | ❓ | -| ! + ! | ❗ | +| - | | +| ------------- | ---------- | +| M + S | mail short | +| M + L | mail long | +| D + E + G | ° | +| C + O + P | © | +| R + E + G | ® | +| D + I + A | ø | +| D + I + A + M | Ø | +| E + U + R | € | +| P + O + U | £ | +| Y + E + N | ¥ | +| C + E + N | ¢ | +| P + I | π | +| P + I + I | Π | +| O + M + E | ω | +| O + M + E + G | Ω | +| U + P + F | ⁰ | +| D + N + F | ₀ | + +| - | | +| --------- | --- | +| M + U + L | × | +| D + I + V | ÷ | +| P + M | ± | +| I + N + E | ≠ | +| A + L + M | ≈ | +| S + Q + U | √ | +| I + N + F | ∞ | +| < + < | ≤ | +| > + > | ≥ | +| F + S + T | ¼ | +| F + S + G | ½ | +| F + H + T | ¾ | diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk index d854cbb16bea..b1c72a8aaffa 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk +++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk @@ -2,7 +2,7 @@ LTO_ENABLE = yes CONVERT_TO = elite_pi SRC += features/auto_shift.c -SRC += features/combo.c +INTROSPECTION_KEYMAP_C = features/combo.c # Replace SRC, see issue #21137 SRC += features/leader.c SRC += oled/oled.c @@ -15,8 +15,5 @@ AUTO_SHIFT_MODIFIERS = no COMBO_ENABLE = yes LEADER_ENABLE = yes -# Recommended for space cadet shift -COMMAND_ENABLE = no - UNICODE_ENABLE = yes SEND_STRING_ENABLE = yes diff --git a/keyboards/star75/config.h b/keyboards/star75/config.h index 980009fe0bd2..e686b9c6bdb3 100644 --- a/keyboards/star75/config.h +++ b/keyboards/star75/config.h @@ -21,7 +21,6 @@ SPDX-License-Identifier: GPL-2.0-or-later */ #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 1 #define RGBLIGHT_LAYERS -#define RGBLIGHT_LED_MAP { 0, 1 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/taleguers/taleguers75/config.h b/keyboards/taleguers/taleguers75/config.h index b62209abaad4..66d2753bf366 100644 --- a/keyboards/taleguers/taleguers75/config.h +++ b/keyboards/taleguers/taleguers75/config.h @@ -33,7 +33,6 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE #define RGBLED_NUM 6 -#define RGBLIGHT_LED_MAP { 5, 4, 3, 2, 1, 0 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/taleguers/taleguers75/info.json b/keyboards/taleguers/taleguers75/info.json index 229894fa9d05..02feec7ab8bb 100644 --- a/keyboards/taleguers/taleguers75/info.json +++ b/keyboards/taleguers/taleguers75/info.json @@ -18,6 +18,9 @@ {"pin_a": "B6", "pin_b": "B5"} ] }, + "rgblight": { + "led_map": [5, 4, 3, 2, 1, 0] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/toffee_studio/blueberry/config.h b/keyboards/toffee_studio/blueberry/config.h index 07a4bae2be0d..4b24094b220e 100644 --- a/keyboards/toffee_studio/blueberry/config.h +++ b/keyboards/toffee_studio/blueberry/config.h @@ -17,15 +17,6 @@ #pragma once # define RGBLED_NUM 22 - -/* RGB LED logical order map */ -/* Top->Bottom, Right->Left */ -#define RGBLIGHT_LED_MAP { \ - 19, 18, 17, 16, 15, 14, 13, 12, 11, \ - 20, 10, \ - 21, 9, \ - 0, 1, 2, 3, 4, 5, 6, 7, 8 } - # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/toffee_studio/blueberry/info.json b/keyboards/toffee_studio/blueberry/info.json index 6acd8f4a589c..eb32a1209dad 100644 --- a/keyboards/toffee_studio/blueberry/info.json +++ b/keyboards/toffee_studio/blueberry/info.json @@ -12,7 +12,8 @@ "pin": "D0" }, "rgblight": { - "max_brightness": 192 + "max_brightness": 192, + "led_map": [19, 18, 17, 16, 15, 14, 13, 12, 11, 20, 10, 21, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8] }, "matrix_pins": { "cols": ["B6", "D4", "D6", "D7", "B4", "B5", "C6", "C7"], diff --git a/keyboards/unison/v04/config.h b/keyboards/unison/v04/config.h index d80dc827f6b6..af4aaefea3a4 100644 --- a/keyboards/unison/v04/config.h +++ b/keyboards/unison/v04/config.h @@ -27,7 +27,6 @@ along with this program. If not, see . /* RGB Lighting */ #define RGBLED_NUM 7 // Layer Indicator(2) + Rotary Encoder(5) - #define RGBLIGHT_LED_MAP {1, 2, 0, 3, 4, 5, 6} // align LEDs from Left to Right #define RGBLIGHT_HUE_STEP 4 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/unison/v04/info.json b/keyboards/unison/v04/info.json index 481c07f7a9af..b3c9a59392b7 100644 --- a/keyboards/unison/v04/info.json +++ b/keyboards/unison/v04/info.json @@ -12,6 +12,9 @@ "cols": ["B3", "E6", "F1", "F5", "F7", "B2", "F0", "F4", "F6", "C7"], "rows": ["B3", "E6", "F1", "F5", "F7", "B2", "F0", "F4", "F6", "C7"] }, + "rgblight": { + "led_map": [1, 2, 0, 3, 4, 5, 6] + }, "ws2812": { "pin": "B7" }, diff --git a/keyboards/viktus/osav2_numpad_topre/ec.c b/keyboards/viktus/osav2_numpad_topre/ec.c new file mode 100644 index 000000000000..e4f59c3b6bf8 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/ec.c @@ -0,0 +1,181 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include "quantum.h" +#include "ec.h" +#include "analog.h" +//#include "debug.h" // needed for debugging + +// sensing channel definitions +#define A0 0 +#define A1 1 +#define A2 2 +#define A3 3 +#define A4 4 +#define A5 5 +#define A6 6 +#define A7 7 + +// analog connection settings +#define DISCHARGE_PIN B5 +#define ANALOG_PORT B6 + +#ifndef MUX_SEL_PIN +# define MUX_SEL_PINS \ + { D6, D7, B4 } +#endif + +// pin connections +const uint8_t row_channels[] = MATRIX_ROW_PINS; +const uint8_t col_pins[] = MATRIX_COL_PINS; +const uint8_t mux_sel_pins[] = MUX_SEL_PINS; + +_Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); + +static ec_config_t config; +static uint16_t ec_sw_value[MATRIX_COLS][MATRIX_ROWS]; + +static inline void discharge_capacitor(void) { setPinOutput(DISCHARGE_PIN); } +static inline void charge_capacitor(uint8_t col) { + setPinInput(DISCHARGE_PIN); + writePinHigh(col_pins[col]); +} + +static inline void clear_all_col_pins(void) { + for (int col = 0; col < sizeof(col_pins); col++) { + writePinLow(col_pins[col]); + } +} + +void init_mux_sel(void) { + for (int idx = 0; idx < sizeof(mux_sel_pins); idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +void select_mux(uint8_t row) { + uint8_t ch = row_channels[row]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +void init_col(void) { + for (int idx = 0; idx < sizeof(col_pins); idx++) { + setPinOutput(col_pins[idx]); + writePinLow(col_pins[idx]); + } +} + +void ec_init(ec_config_t const* const ec_config) { + // save config + config = *ec_config; + + // initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutput(DISCHARGE_PIN); + + // set analog reference + analogReference(ADC_REF_POWER); + + // initialize drive lines + init_col(); + + // initialize multiplexer select pin + init_mux_sel(); + + // set discharge pin to charge mode + setPinInput(DISCHARGE_PIN); +} + +uint16_t ec_readkey_raw(uint8_t col, uint8_t row) { + uint16_t sw_value = 0; + + discharge_capacitor(); + + select_mux(row); + + clear_all_col_pins(); + + cli(); + + charge_capacitor(col); + + sw_value = analogReadPin(ANALOG_PORT); + + sei(); + + return sw_value; +} + +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt) { + bool current_state = (*current_row >> col) & 1; + + // press to release + if (current_state && sw_value < reset_pt) { + *current_row &= ~(MATRIX_ROW_SHIFTER << col); + return true; + } + + // rest to press + if ((!current_state) && sw_value > actuation_pt) { + *current_row |= (MATRIX_ROW_SHIFTER << col); + return true; + } + + return false; +} + +bool ec_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + uint16_t reset_pt = config.reset_pt; + uint16_t actuation_pt = config.actuation_pt; + + //Modifying threshold values for overlapping pads + switch(row) { + case 1: + case 2: + case 3: + case 4: + switch(col) { + case 3: // lower threshold for plus and enter: (37 rest, 61 btm) + reset_pt = 45; + actuation_pt = 50; + break; + } + break; + } + + ec_sw_value[col][row] = ec_readkey_raw(col, row); + updated |= ec_update_key(¤t_matrix[row], col, ec_sw_value[col][row], reset_pt, actuation_pt); + } + } + + return updated; +} + +// console debugging for pad values +/*void ec_dprint_matrix(void) { + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + dprintf("%5d", ec_sw_value[col][row]); + } + dprintf("\n"); + } +}*/ diff --git a/keyboards/viktus/osav2_numpad_topre/ec.h b/keyboards/viktus/osav2_numpad_topre/ec.h new file mode 100644 index 000000000000..33bdb2d5effb --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/ec.h @@ -0,0 +1,31 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t reset_pt; + uint16_t actuation_pt; +} ec_config_t; + +void ec_init(ec_config_t const* const ec_config); +bool ec_matrix_scan(matrix_row_t current_matrix[]); +//void ec_dprint_matrix(void); // needed for debugging +uint16_t ec_readkey_raw(uint8_t col, uint8_t row); +bool ec_update_key(matrix_row_t* current_row, uint8_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt); diff --git a/keyboards/viktus/osav2_numpad_topre/info.json b/keyboards/viktus/osav2_numpad_topre/info.json new file mode 100644 index 000000000000..55ca939e3f43 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/info.json @@ -0,0 +1,100 @@ +{ + "manufacturer": "Viktus Design LLC", + "keyboard_name": "OSAv2 Numpad - Topre", + "maintainer": "BlindAssassin111", + "url": "https://viktus.design", + "usb": { + "device_version": "1.1.0", + "vid": "0x5644", + "pid": "0x4E54" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["F5", "F6", "D3", "D2"], + "rows": ["A1", "A0", "A3", "A2", "A4"] + }, + "layouts": { + "LAYOUT_ortho_5x4": { + "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": "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": "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": "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": "K40", "matrix": [4, 0], "x": 0, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "x": 2, "y": 4 }, + { "label": "K43", "matrix": [4, 3], "x": 3, "y": 4 } + ] + }, + "LAYOUT_split_plus_2u_enter": { + "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": "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": "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": "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], "h": 2, "x": 3, "y": 3 }, + { "label": "K40", "matrix": [4, 0], "x": 0, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "x": 2, "y": 4 } + ] + }, + "LAYOUT_2u_plus_2u_enter": { + "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": "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": "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], "h": 2, "x": 3, "y": 1 }, + { "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], "h": 2, "x": 3, "y": 3 }, + { "label": "K40", "matrix": [4, 0], "x": 0, "y": 4 }, + { "label": "K41", "matrix": [4, 1], "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "x": 2, "y": 4 } + ] + } + } +} diff --git a/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c b/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c new file mode 100644 index 000000000000..7545c946c3f0 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PEQL, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_DEL + ) +}; diff --git a/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c b/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c new file mode 100644 index 000000000000..7545c946c3f0 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/via/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, KC_PEQL, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PENT, + KC_P0, KC_P0, KC_PDOT, KC_DEL + ) +}; diff --git a/keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk b/keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c b/keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c new file mode 100644 index 000000000000..2337fc55f396 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/osav2_numpad_topre.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include "quantum.h" +#include "ec.h" +#include "matrix.h" +//#include "debug.h" // needed for debugging + +#define RESET_PT 55 +#define ACTUATION_PT 65 + +// console debugging for pad values +void keyboard_post_init_kb() { + debug_enable = true; + debug_matrix = true; +} + +void matrix_init_custom(void) { + ec_config_t ec_config = {.reset_pt = RESET_PT, .actuation_pt = ACTUATION_PT}; + + ec_init(&ec_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ec_matrix_scan(current_matrix); + + // console debugging for pad values + /*static int cnt = 0; + if (cnt++ == 1000) { + cnt = 0; + ec_dprint_matrix(); + dprintf("\n"); + }*/ + + return updated; +} diff --git a/keyboards/viktus/osav2_numpad_topre/readme.md b/keyboards/viktus/osav2_numpad_topre/readme.md new file mode 100644 index 000000000000..990bfe04fe7a --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/readme.md @@ -0,0 +1,27 @@ +# OSAv2 Numpad - Topre + +![osav2_numpad_topre](https://i.imgur.com/G6yNtJMh.png) + +An OSAv2 Numpad in topre flavor. + +- Keyboard Maintainer: BlindAssassin111 +- Hardware Supported: OSAv2 Numpad Topre PCB +- Hardware Availability: Viktus Design LLC + +Make example for this keyboard (after setting up your build environment): + + make viktus/osav2_numpad_topre:default + +Flashing example for this keyboard: + + make viktus/osav2_numpad_topre: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/viktus/osav2_numpad_topre/rules.mk b/keyboards/viktus/osav2_numpad_topre/rules.mk new file mode 100644 index 000000000000..037e26c530c7 --- /dev/null +++ b/keyboards/viktus/osav2_numpad_topre/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += ec.c diff --git a/keyboards/viktus/osav2_topre/ec.c b/keyboards/viktus/osav2_topre/ec.c new file mode 100644 index 000000000000..fd2e8fa0ec54 --- /dev/null +++ b/keyboards/viktus/osav2_topre/ec.c @@ -0,0 +1,205 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include "quantum.h" +#include "ec.h" +#include "analog.h" +//#include "debug.h" // needed for debugging + +// sensing channel definitions +#define A0 0 +#define A1 1 +#define A2 2 +#define A3 3 +#define A4 4 +#define A5 5 +#define A6 6 +#define A7 7 + +// analog connection settings +#define DISCHARGE_PIN D3 +#define ANALOG_PORT D4 + +#ifndef MUX_SEL_PIN +# define MUX_SEL_PINS \ + { D0, D1, D2 } +#endif + +// pin connections +const uint8_t row_channels[] = MATRIX_ROW_PINS; +const uint8_t col_pins[] = MATRIX_COL_PINS; +const uint8_t mux_sel_pins[] = MUX_SEL_PINS; + +_Static_assert(sizeof(mux_sel_pins) == 3, "invalid MUX_SEL_PINS"); + +static ec_config_t config; +static uint16_t ec_sw_value[MATRIX_COLS][MATRIX_ROWS]; + +static inline void discharge_capacitor(void) { setPinOutput(DISCHARGE_PIN); } +static inline void charge_capacitor(uint8_t col) { + setPinInput(DISCHARGE_PIN); + writePinHigh(col_pins[col]); +} + +static inline void clear_all_col_pins(void) { + for (int col = 0; col < sizeof(col_pins); col++) { + writePinLow(col_pins[col]); + } +} + +void init_mux_sel(void) { + for (int idx = 0; idx < sizeof(mux_sel_pins); idx++) { + setPinOutput(mux_sel_pins[idx]); + } +} + +void select_mux(uint8_t row) { + uint8_t ch = row_channels[row]; + writePin(mux_sel_pins[0], ch & 1); + writePin(mux_sel_pins[1], ch & 2); + writePin(mux_sel_pins[2], ch & 4); +} + +void init_col(void) { + for (int idx = 0; idx < sizeof(col_pins); idx++) { + setPinOutput(col_pins[idx]); + writePinLow(col_pins[idx]); + } +} + +void ec_init(ec_config_t const* const ec_config) { + // save config + config = *ec_config; + + // initialize discharge pin as discharge mode + writePinLow(DISCHARGE_PIN); + setPinOutput(DISCHARGE_PIN); + + // set analog reference + analogReference(ADC_REF_POWER); + + // initialize drive lines + init_col(); + + // initialize multiplexer select pin + init_mux_sel(); + + // set discharge pin to charge mode + setPinInput(DISCHARGE_PIN); +} + +uint16_t ec_readkey_raw(uint8_t col, uint8_t row) { + uint16_t sw_value = 0; + + discharge_capacitor(); + + select_mux(row); + + clear_all_col_pins(); + + cli(); + + charge_capacitor(col); + + sw_value = analogReadPin(ANALOG_PORT); + + sei(); + + return sw_value; +} + +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt) { + bool current_state = (*current_row >> col) & 1; + + // press to release + if (current_state && sw_value < reset_pt) { + *current_row &= ~(MATRIX_ROW_SHIFTER << col); + return true; + } + + // release to press + if ((!current_state) && sw_value > actuation_pt) { + *current_row |= (MATRIX_ROW_SHIFTER << col); + return true; + } + + return false; +} + +bool ec_matrix_scan(matrix_row_t current_matrix[]) { + bool updated = false; + + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + uint16_t reset_pt = config.reset_pt; + uint16_t actuation_pt = config.actuation_pt; + + //Modifying threshold values for overlapping pads + switch(row) { + case 0: + switch(col) { + case 14: // lower threshold for split backspace: left 1U( rest, btm) + case 15: // lower threshold for 2U backspace: 2U(38 rest, 60 btm) + reset_pt = 44; + actuation_pt = 48; + break; + } + break; + case 3: + switch(col) { + case 14: // Lower threshold for right shift: 1.75U(40 rest, 70 btm) + reset_pt = 48; + actuation_pt = 53; + break; + } + break; + case 4: + switch(col) { + case 3: // Lower threshold for left space: col3( rest, btm) + case 4: // Lower threshold for left space: col4(38 rest, 88 btm) + reset_pt = 50; + actuation_pt = 60; + break; + case 5: // Lower threshold for left space: col5( rest, btm) + case 6: // Lower threshold for left space: col6(40 rest, 80 btm) + reset_pt = 48; + actuation_pt = 58; + break; + case 14: // Lower threshold for right shift: 2.75U( rest, btm) + reset_pt = 48; + actuation_pt = 53; + break; + } + break; + } + + ec_sw_value[col][row] = ec_readkey_raw(col, row); + updated |= ec_update_key(¤t_matrix[row], col, ec_sw_value[col][row], reset_pt, actuation_pt); + } + } + + return updated; +} + +// console debugging for pad values +/*void ec_dprint_matrix(void) { + for (int row = 0; row < sizeof(row_channels); row++) { + for (int col = 0; col < sizeof(col_pins); col++) { + dprintf("%5d", ec_sw_value[col][row]); + } + dprintf("\n"); + } +}*/ diff --git a/keyboards/viktus/osav2_topre/ec.h b/keyboards/viktus/osav2_topre/ec.h new file mode 100644 index 000000000000..76da647dc86a --- /dev/null +++ b/keyboards/viktus/osav2_topre/ec.h @@ -0,0 +1,31 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include +#include + +#include "matrix.h" + +typedef struct { + uint16_t reset_pt; + uint16_t actuation_pt; +} ec_config_t; + +void ec_init(ec_config_t const* const ec_config); +bool ec_matrix_scan(matrix_row_t current_matrix[]); +//void ec_dprint_matrix(void); // needed for debugging +uint16_t ec_readkey_raw(uint8_t col, uint8_t row); +bool ec_update_key(matrix_row_t* current_row, matrix_row_t col, uint16_t sw_value, uint16_t reset_pt, uint16_t actuation_pt); diff --git a/keyboards/viktus/osav2_topre/info.json b/keyboards/viktus/osav2_topre/info.json new file mode 100644 index 000000000000..1f2120ed57e8 --- /dev/null +++ b/keyboards/viktus/osav2_topre/info.json @@ -0,0 +1,588 @@ +{ + "manufacturer": "Viktus Design LLC", + "keyboard_name": "OSAv2 - Topre", + "maintainer": "BlindAssassin111", + "url": "https://viktus.design", + "usb": { + "device_version": "1.6.0", + "vid": "0x5644", + "pid": "0x446F" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "B7", "F1", "F0", "E6", "B0", "B1", "B2", "B3"], + "rows": ["A1", "A0", "A3", "A4", "A2"] + }, + "indicators": { + "num_lock": "B4", + "caps_lock": "D7", + "scroll_lock": "D6" + }, + "layouts": { + "LAYOUT_split_back": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_split_back_175u_shift": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back_175u_shift": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 4], "w": 2.25, "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 6], "x": 7.75, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_split_back_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K414", "matrix": [4, 14], "w": 2.75, "x": 15.75, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_split_back_175u_shift_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K014", "matrix": [0, 14], "x": 15.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "x": 16.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + }, + "LAYOUT_2u_back_175u_shift_mirrored": { + "layout": [ + { "label": "K00", "matrix": [0, 0], "x": 0.5, "y": 0 }, + { "label": "K01", "matrix": [0, 1], "x": 1.75, "y": 0 }, + { "label": "K02", "matrix": [0, 2], "x": 2.75, "y": 0 }, + { "label": "K03", "matrix": [0, 3], "x": 3.75, "y": 0 }, + { "label": "K04", "matrix": [0, 4], "x": 4.75, "y": 0 }, + { "label": "K05", "matrix": [0, 5], "x": 5.75, "y": 0 }, + { "label": "K06", "matrix": [0, 6], "x": 6.75, "y": 0 }, + { "label": "K07", "matrix": [0, 7], "x": 7.75, "y": 0 }, + { "label": "K08", "matrix": [0, 8], "x": 9.75, "y": 0 }, + { "label": "K09", "matrix": [0, 9], "x": 10.75, "y": 0 }, + { "label": "K010", "matrix": [0, 10], "x": 11.75, "y": 0 }, + { "label": "K011", "matrix": [0, 11], "x": 12.75, "y": 0 }, + { "label": "K012", "matrix": [0, 12], "x": 13.75, "y": 0 }, + { "label": "K013", "matrix": [0, 13], "x": 14.75, "y": 0 }, + { "label": "K015", "matrix": [0, 15], "w": 2, "x": 15.75, "y": 0 }, + { "label": "K10", "matrix": [1, 0], "x": 0.25, "y": 1 }, + { "label": "K11", "matrix": [1, 1], "w": 1.5, "x": 1.5, "y": 1 }, + { "label": "K12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "K13", "matrix": [1, 3], "x": 4, "y": 1 }, + { "label": "K14", "matrix": [1, 4], "x": 5, "y": 1 }, + { "label": "K15", "matrix": [1, 5], "x": 6, "y": 1 }, + { "label": "K16", "matrix": [1, 6], "x": 7, "y": 1 }, + { "label": "K18", "matrix": [1, 8], "x": 9.5, "y": 1 }, + { "label": "K19", "matrix": [1, 9], "x": 10.5, "y": 1 }, + { "label": "K110", "matrix": [1, 10], "x": 11.5, "y": 1 }, + { "label": "K111", "matrix": [1, 11], "x": 12.5, "y": 1 }, + { "label": "K112", "matrix": [1, 12], "x": 13.5, "y": 1 }, + { "label": "K113", "matrix": [1, 13], "x": 14.5, "y": 1 }, + { "label": "K114", "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "label": "K115", "matrix": [1, 15], "w": 1.5, "x": 16.5, "y": 1 }, + { "label": "K20", "matrix": [2, 0], "x": 0, "y": 2 }, + { "label": "K21", "matrix": [2, 1], "w": 1.75, "x": 1.25, "y": 2 }, + { "label": "K22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "K23", "matrix": [2, 3], "x": 4, "y": 2 }, + { "label": "K24", "matrix": [2, 4], "x": 5, "y": 2 }, + { "label": "K25", "matrix": [2, 5], "x": 6, "y": 2 }, + { "label": "K26", "matrix": [2, 6], "x": 7, "y": 2 }, + { "label": "K28", "matrix": [2, 8], "x": 10, "y": 2 }, + { "label": "K29", "matrix": [2, 9], "x": 11, "y": 2 }, + { "label": "K210", "matrix": [2, 10], "x": 12, "y": 2 }, + { "label": "K211", "matrix": [2, 11], "x": 13, "y": 2 }, + { "label": "K212", "matrix": [2, 12], "x": 14, "y": 2 }, + { "label": "K213", "matrix": [2, 13], "x": 15, "y": 2 }, + { "label": "K215", "matrix": [2, 15], "w": 2.25, "x": 16, "y": 2 }, + { "label": "K31", "matrix": [3, 1], "w": 2.25, "x": 1, "y": 3 }, + { "label": "K32", "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "label": "K33", "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "label": "K34", "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "label": "K35", "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "label": "K36", "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "label": "K38", "matrix": [3, 8], "x": 9.75, "y": 3 }, + { "label": "K39", "matrix": [3, 9], "x": 10.75, "y": 3 }, + { "label": "K310", "matrix": [3, 10], "x": 11.75, "y": 3 }, + { "label": "K311", "matrix": [3, 11], "x": 12.75, "y": 3 }, + { "label": "K312", "matrix": [3, 12], "x": 13.75, "y": 3 }, + { "label": "K313", "matrix": [3, 13], "x": 14.75, "y": 3 }, + { "label": "K314", "matrix": [3, 14], "w": 1.75, "x": 15.75, "y": 3 }, + { "label": "K315", "matrix": [3, 15], "x": 17.5, "y": 3 }, + { "label": "K41", "matrix": [4, 1], "w": 1.5, "x": 1, "y": 4 }, + { "label": "K42", "matrix": [4, 2], "w": 1.5, "x": 4, "y": 4 }, + { "label": "K44", "matrix": [4, 3], "x": 5.5, "y": 4 }, + { "label": "K46", "matrix": [4, 5], "w": 2.25, "x": 6.5, "y": 4 }, + { "label": "K49", "matrix": [4, 9], "w": 2.75, "x": 9.75, "y": 4 }, + { "label": "K411", "matrix": [4, 11], "w": 1.5, "x": 12.5, "y": 4 }, + { "label": "K415", "matrix": [4, 15], "w": 1.5, "x": 16.75, "y": 4 } + ] + } + } +} diff --git a/keyboards/viktus/osav2_topre/keymaps/default/keymap.c b/keyboards/viktus/osav2_topre/keymaps/default/keymap.c new file mode 100644 index 000000000000..b9561c9b3255 --- /dev/null +++ b/keyboards/viktus/osav2_topre/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Viktus Design 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_back_175u_shift( + KC_DEL, 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_TILDE, + 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, + 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(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_split_back_175u_shift( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_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 + ) +}; diff --git a/keyboards/viktus/osav2_topre/keymaps/via/keymap.c b/keyboards/viktus/osav2_topre/keymaps/via/keymap.c new file mode 100644 index 000000000000..b9561c9b3255 --- /dev/null +++ b/keyboards/viktus/osav2_topre/keymaps/via/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Viktus Design 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_back_175u_shift( + KC_DEL, 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_TILDE, + 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, + 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(1), + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL + ), + [1] = LAYOUT_split_back_175u_shift( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_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 + ) +}; diff --git a/keyboards/viktus/osav2_topre/keymaps/via/rules.mk b/keyboards/viktus/osav2_topre/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/viktus/osav2_topre/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/viktus/osav2_topre/osav2_topre.c b/keyboards/viktus/osav2_topre/osav2_topre.c new file mode 100644 index 000000000000..96b04090cf6f --- /dev/null +++ b/keyboards/viktus/osav2_topre/osav2_topre.c @@ -0,0 +1,49 @@ +/* Copyright 2023 Viktus Design 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 . + */ + +#include "quantum.h" +#include "ec.h" +#include "matrix.h" +//#include "debug.h" // needed for debugging + +#define RESET_PT 55 +#define ACTUATION_PT 65 + +// console debugging for pad values +/*void keyboard_post_init_kb() { + debug_enable = true; + debug_matrix = true; +}*/ + +void matrix_init_custom(void) { + ec_config_t ec_config = {.reset_pt = RESET_PT, .actuation_pt = ACTUATION_PT}; + + ec_init(&ec_config); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool updated = ec_matrix_scan(current_matrix); + + // console debugging for pad values + /*static int cnt = 0; + if (cnt++ == 300) { + cnt = 0; + ec_dprint_matrix(); + dprintf("\n"); + }*/ + + return updated; +} diff --git a/keyboards/viktus/osav2_topre/readme.md b/keyboards/viktus/osav2_topre/readme.md new file mode 100644 index 000000000000..6379644cd69e --- /dev/null +++ b/keyboards/viktus/osav2_topre/readme.md @@ -0,0 +1,25 @@ +# OSAv2 Topre + +![osav2_topre](https://i.imgur.com/WTRrpQFh.png) + +- Keyboard Maintainer: BlindAssassin111 +- Hardware Supported: OSAv2 Topre PCBs +- Hardware Availability: Viktus Design LLC + +Make example for this keyboard (after setting up your build environment): + + make viktus/osav2_topre:default + +Flashing example for this keyboard: + + make viktus/osav2_topre: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/viktus/osav2_topre/rules.mk b/keyboards/viktus/osav2_topre/rules.mk new file mode 100644 index 000000000000..037e26c530c7 --- /dev/null +++ b/keyboards/viktus/osav2_topre/rules.mk @@ -0,0 +1,3 @@ +CUSTOM_MATRIX = lite +QUANTUM_LIB_SRC += analog.c +SRC += ec.c diff --git a/keyboards/viktus/sp_mini/config.h b/keyboards/viktus/sp_mini/config.h index a5d99eb834fb..b6064e3f528e 100644 --- a/keyboards/viktus/sp_mini/config.h +++ b/keyboards/viktus/sp_mini/config.h @@ -35,7 +35,6 @@ along with this program. If not, see . #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -//#define RGBLIGHT_SPLIT #define RGBLED_NUM 24 // Number of LEDs /* diff --git a/keyboards/yoichiro/lunakey_mini/config.h b/keyboards/yoichiro/lunakey_mini/config.h index 9c2fd0d8eff4..d9c0e58f6459 100644 --- a/keyboards/yoichiro/lunakey_mini/config.h +++ b/keyboards/yoichiro/lunakey_mini/config.h @@ -18,9 +18,6 @@ along with this program. If not, see . #pragma once #define RGBLED_NUM 12 - #define RGBLIGHT_SPLIT - #define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/yoichiro/lunakey_mini/info.json b/keyboards/yoichiro/lunakey_mini/info.json index c255c431c225..59741d4aa01d 100644 --- a/keyboards/yoichiro/lunakey_mini/info.json +++ b/keyboards/yoichiro/lunakey_mini/info.json @@ -17,6 +17,7 @@ "soft_serial_pin": "D2" }, "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "split_count": [6, 6] }, "ws2812": { diff --git a/keyboards/yoichiro/lunakey_pico/config.h b/keyboards/yoichiro/lunakey_pico/config.h index cf819293be9a..a95edc0358b7 100644 --- a/keyboards/yoichiro/lunakey_pico/config.h +++ b/keyboards/yoichiro/lunakey_pico/config.h @@ -15,9 +15,6 @@ #define WS2812_PIO_USE_PIO1 -#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, \ - 11, 10, 9, 8, 7, 6 } - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/yoichiro/lunakey_pico/info.json b/keyboards/yoichiro/lunakey_pico/info.json index 2b477e726c25..bf4b2a251094 100644 --- a/keyboards/yoichiro/lunakey_pico/info.json +++ b/keyboards/yoichiro/lunakey_pico/info.json @@ -26,6 +26,7 @@ }, "rgblight": { "led_count": 12, + "led_map": [0, 1, 2, 3, 4, 5, 11, 10, 9, 8, 7, 6], "sleep": true, "split": true, "split_count": [6, 6], diff --git a/keyboards/yushakobo/navpad/10/rev1/info.json b/keyboards/yushakobo/navpad/10/rev1/info.json index bd20c0d0b479..a35dc4d5e977 100644 --- a/keyboards/yushakobo/navpad/10/rev1/info.json +++ b/keyboards/yushakobo/navpad/10/rev1/info.json @@ -2,6 +2,9 @@ "usb": { "device_version": "0.0.1" }, + "rgblight": { + "led_map": [0, 1, 2, 3, 4, 5, 6, 8, 7] + }, "matrix_pins": { "cols": ["F5", "F6", "B2", "B3", "B1", "F7"], "rows": ["D4", "C6", "D7", "E6", "B4", "F4"] diff --git a/keyboards/yushakobo/navpad/10_helix_r/config.h b/keyboards/yushakobo/navpad/10_helix_r/config.h index fd88d5eab695..19eabd8dcdb8 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/config.h +++ b/keyboards/yushakobo/navpad/10_helix_r/config.h @@ -18,14 +18,6 @@ along with this program. If not, see . #pragma once #define EE_HANDS - -# define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 8, 7, \ - 9, 10, 11, 12, 13, 14, \ - 20, 19, 18, 17, 16, 15, \ - 21, 22, 23, 24, 25, 26, \ - 33, 32, 31, 30, 29, 28, 27, \ - 34, 35, 36, 37, 38, 39, 40 } - # define RGBLED_NUM 9+32 # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/yushakobo/navpad/10_helix_r/info.json b/keyboards/yushakobo/navpad/10_helix_r/info.json index 9c51e8ad746e..2b14fccf5834 100644 --- a/keyboards/yushakobo/navpad/10_helix_r/info.json +++ b/keyboards/yushakobo/navpad/10_helix_r/info.json @@ -39,6 +39,7 @@ }, "rgblight": { "max_brightness": 120, + "led_map": [0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11, 12, 13, 14, 20, 19, 18, 17, 16, 15, 21, 22, 23, 24, 25, 26, 33, 32, 31, 30, 29, 28, 27, 34, 35, 36, 37, 38, 39, 40], "split_count": [9, 32] }, "processor": "atmega32u4", diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h index 00018d319c4c..118a47eba64f 100644 --- a/keyboards/yushakobo/quick17/config.h +++ b/keyboards/yushakobo/quick17/config.h @@ -42,11 +42,6 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE -# define RGBLIGHT_LED_MAP {\ - 6, 7, 12, 13, 14, 15,\ - 16, 17, 11, 10, 9, 8,\ - 0, 1, 2, 3, 4, 5\ - } # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 # define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/yushakobo/quick17/info.json b/keyboards/yushakobo/quick17/info.json index 1889a006438c..ce8c77933afe 100644 --- a/keyboards/yushakobo/quick17/info.json +++ b/keyboards/yushakobo/quick17/info.json @@ -12,7 +12,8 @@ "driver": "WS2812" }, "rgblight": { - "max_brightness": 150 + "max_brightness": 150, + "led_map": [6, 7, 12, 13, 14, 15, 16, 17, 11, 10, 9, 8, 0, 1, 2, 3, 4, 5] }, "matrix_pins": { "cols": ["F5", "D4", "E6", "F7", "C6", "D7"], diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 90a0f2083828..2030c82a1beb 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -152,22 +152,13 @@ void dynamic_keymap_reset(void) { for (int layer = 0; layer < DYNAMIC_KEYMAP_LAYER_COUNT; layer++) { for (int row = 0; row < MATRIX_ROWS; row++) { for (int column = 0; column < MATRIX_COLS; column++) { - if (layer < keymap_layer_count()) { - dynamic_keymap_set_keycode(layer, row, column, keycode_at_keymap_location_raw(layer, row, column)); - } else { - dynamic_keymap_set_keycode(layer, row, column, KC_TRANSPARENT); - } + dynamic_keymap_set_keycode(layer, row, column, keycode_at_keymap_location_raw(layer, row, column)); } } #ifdef ENCODER_MAP_ENABLE for (int encoder = 0; encoder < NUM_ENCODERS; encoder++) { - if (layer < encodermap_layer_count()) { - dynamic_keymap_set_encoder(layer, encoder, true, keycode_at_encodermap_location_raw(layer, encoder, true)); - dynamic_keymap_set_encoder(layer, encoder, false, keycode_at_encodermap_location_raw(layer, encoder, false)); - } else { - dynamic_keymap_set_encoder(layer, encoder, true, KC_TRANSPARENT); - dynamic_keymap_set_encoder(layer, encoder, false, KC_TRANSPARENT); - } + dynamic_keymap_set_encoder(layer, encoder, true, keycode_at_encodermap_location_raw(layer, encoder, true)); + dynamic_keymap_set_encoder(layer, encoder, false, keycode_at_encodermap_location_raw(layer, encoder, false)); } #endif // ENCODER_MAP_ENABLE } diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index ccea8d976a23..0bb3b99730f3 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -16,13 +16,9 @@ static bool PIXEL_RAIN(effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) { return; } - if (off) { - rgb_matrix_set_color(i, 0, 0, 0); - } else { - HSV hsv = {random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - RGB rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); - } + HSV hsv = (random8() & 2) ? (HSV){0, 0, 0} : (HSV){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + RGB rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(led_index, rgb.r, rgb.g, rgb.b); wait_timer = g_rgb_timer + interval(); }