Compare commits

...

265 Commits

Author SHA1 Message Date
Joel Challis
4abc3ceb4b Align drivers.txt with toolbox (#12741) 2021-04-30 02:48:34 +10:00
Wilba
05ee0afd54 Fix F13 LED issue for WT75-B, WT75-C (#12729) 2021-04-29 03:39:14 -07:00
Nick Brassel
54e8dd0885 Fix up bad keycode in #12405. (#12722) 2021-04-28 11:46:13 +01:00
Xelus22
63cdf80885 add default folder to standard (#12712) 2021-04-28 11:39:14 +10:00
alittlepeace
2af86cec3d YMDK Wings: Update config.h (#12718)
Adds Caps Lock LED indicator configuration.
2021-04-27 13:54:34 -07:00
James Young
e5cde191e1 Add flashing instructions to GMMK Pro readme (#12719) 2021-04-27 12:36:53 -07:00
W. Ducky
7be4047df0 GMMK Pro: Fixed Bootmagic Lite support; personal keymap; VIA support (#12554)
* Added WholesomeDucky keymap for GMMK Pro

* Finalized keymap & added 1000hz polling for GMMK Pro

* Corrected for RAlt and Fn being swapped

* Fixed RAlt and Fn being swapped in the layout definition. Updated personal keymap to reflect fixed layout.

* Removed an old comment from personal keymap for GMMK Pro

* added VIA support

* Defined bootmagic row and column for GMMK Pro Esc key

* Update keyboards/gmmk/pro/config.h

* Update keyboards/gmmk/pro/keymaps/via/keymap.c

* Update keyboards/gmmk/pro/keymaps/via/keymap.c
2021-04-27 11:37:11 -07:00
Mango The Fourth
3fe356e65c Add Draculad keyboard (#12604)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: mangoiv <mangoiv@outlook.com>
2021-04-27 19:41:11 +02:00
Ryan Mitchell
b95231c1e3 GMMK Pro: add RESET binding, fix layout macro bug (#12684)
* add RESET binding, fix layout mod key bug (fixes #12683)

* remove underscore #define and use core's instead
2021-04-27 10:23:41 -07:00
James Young
f9fb52951d Update noroadsleft userspace and keymaps (2021-04-26) (#12711)
* Update noroadsleft userspace and keymaps (2021-04-26)

- add Discipline keymap
- move Emulated Non-US Backslash, Numeric Keypad and F13-F24 code fully to userspace
- re-add some custom keycode handling I accidentally deleted
- update VRSN keycode
- update KC60 and userspace readmes

* remove Git readme from kc60 keymap

* update kc60:noroadsleft readme

Concatenates this readme into one file, and updates the image links.
2021-04-26 23:44:45 -07:00
Andrew Kannan
b5419bd574 Add python-version to gitignore (#12678) 2021-04-26 21:18:17 +02:00
Xelus22
8f660ca1e6 [Keyboard] fix planck light via endpoints (#12701) 2021-04-26 10:24:19 -07:00
Xelus22
2f47bafd6a fix configs (#12631) 2021-04-26 12:52:00 +10:00
Luis Moreno
417a07c22d [Config] Add VSCode workspace files to .gitignore (#12469) 2021-04-26 06:46:28 +10:00
Xelus22
611cd80861 [Keyboard] Ninjin (#12496)
* ninjin init

* put in gpl thing

* underglow

* update to latest chibios

* fix gpl headers

* remove other files

* fix header

* Update keyboards/xelus/ninjin/readme.md

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/xelus/ninjin/mcuconf.h

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Update keyboards/xelus/ninjin/halconf.h

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-25 18:57:22 +10:00
peepeetee
89bd04b9eb peepeetee's *very janky* hub16 keymap (#12506)
* peepeetee's bodged hub16 keymap

* add layer 3 lighting

* actually adds layer 3 lighting

* fixes layer 0; behavior is that layor 0 is unaltered from base pattern, while other states have distinct solid colors
2021-04-25 14:02:42 +10:00
calebchongc
5b394e82c9 Update checking board master function (#12493)
changed is_master to is_keyboard_master()
2021-04-25 13:59:37 +10:00
Sergey Vlasov
da6e888a32 Do not leak weak mods from tap dance to the interrupting keypress (#12471)
Tap dance callbacks may register weak mods; one case when it happens
is when a tap dance registers a key with modifiers.  When the tap
dance is interrupted by pressing another key, these weak mods could
affect the interrupting key (normally any stale weak mods are cleared
at the start of action_exec() when handling a keypress event, but the
tap dance interrupt check code is called later, and the weak mods left
by that code were not cleared).  Add another clear_weak_mods() call to
preprocess_tap_dance() to make sure that the interrupting keypress is
not affected by unrelated weak mods from the previous tap dance.

Fixes #12445.
2021-04-25 13:41:37 +10:00
github-actions[bot]
d3bf3d3b1c Format code according to conventions (#12681)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-25 13:15:48 +10:00
Purdea Andrei
dbd65d01b6 Fix how USB queue overflow is handled in chibios. (#12576)
* Fix how USB queue overflow is handled in chibios.

This commit reverts PR 12472 (commit c823fe2d3f),
and it implements the original intent of the commit in a better way.
The original intent of the above mentioned commit was to not deadlock the
keyboard when console is enabled, and hid_listen is not started.

The above mentioned commit had a few drawbacks:
1) When a lot of data was printed to the console, the queue would get full,
and drop data, even if hid_listen was running. (For example having matrix debug
enabled just didn't work right at all)
2) I believe the function in which this was implemented is used by all other
USB endpoints, so with the above change, overflow, and data loss could
happen in other important functions of QMK as well.

This commit implements deadlock prevention in a slightly similar way to how
it's done on AVR. There is an additional static local variable, that memorizes
whether the console has timeouted before. If we are in the timeouted=false
state, then we send the character normally with a 5ms timeout. If it does
time out, then hid_listen is likely not running, and future characters should
not be sent with a timeout, but those characters should still be sent if there
is space in the queue. The difference between the AVR implementation and this
one is that the AVR implementation checks the queue state directly, but this
implementation instead attempts to write the character with a zero timeout.
If it fails, then we remain in the timeouted=true state, if it succeeds, then
hid_listen started removing data from the queue, so we can go out of the
timeouted=true state.

* Added comment explaining the timeouted logic to console flow control.

* Console flow control: refactor chibios flowcontrol code to make it more readable, and rename the timeouted variable to timed_out on both chibios and lufa. Changed comments to says timed_out is an approximation of listener_disconnected, to make it clear that it's not the same thing

* fix typo
2021-04-25 13:11:41 +10:00
Albert Y
c7ca67a036 Add RGB matrix suspend wake function for Planck/rev6 (#12290)
* Add RGB matrix suspend wake function for Planck/rev6

* Update suggested definition to allow user override.

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: filterpaper <filterpaper@localhost>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-25 11:47:43 +10:00
Nick Brassel
b88498ba85 Fix CLI incorrectly following DEFAULT_FOLDER (#12529)
* Attempt to sort out incorrectly following DEFAULT_FOLDER.

* Fix CI checks.

* qmk pyformat
2021-04-25 11:15:54 +10:00
Leon Anavi
0c50a9eae9 [Keymap] Add Git keymap for ANAVI Macro Pad 8 (#12436)
Git keymap for ANAVI Macro Pad 8 with the following shortcuts.
On the first row from left to right:

- git status
- git log
- git pull
- git push

On the second row from left to right:

- git diff
- git add
- git commit
- FN key to switch to the 2nd layout and control lights

Reduce the number of supported RGB animations and effects in
config.h to shrink the firmware size and fit it on the device.

Signed-off-by: Leon Anavi <leon@anavi.org>
2021-04-25 11:14:28 +10:00
gkeyboard
35944df7b0 Add lm60n keyboard (#12408)
Add lm60n keyboard
2021-04-25 11:04:38 +10:00
Matthew Dias
2a45d99059 Add m3n3van rev2 (#12405)
* Add m3n3van rev2

* Add via support
2021-04-25 11:02:00 +10:00
Christian Fehmer
06f8cb1b8a Add VIA support for Filco Majestouch 2 /w The Tiger Lily (#12401) 2021-04-25 11:00:56 +10:00
Pavlos Vinieratos
b2b075c123 not accessible and not needed anyway for a test keymap (#12366) 2021-04-25 11:00:12 +10:00
SonOfAres
54dc6b7bf2 adding keyboard (#12414)
* adding keyboard

* Update keyboards/iriskeyboards/readme.md - picture size

Co-authored-by: Ryan <fauxpark@gmail.com>

* Delete iriskeyboards.json, it belongs in VIA repo

* Update info.json

* Update readme.md

* Update keyboards/iriskeyboards/keymaps/default/keymap.c

Removing unnecessary layers

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-22 17:15:28 -04:00
George Wietor
ffa1507c2c VIA support for Planck Rev6 (#9144)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: George Wietor <george@LIGHT-GRAY.local>
Co-authored-by: Jack Humbert <jack.humb@gmail.com>
2021-04-22 10:13:44 -07:00
rainkeebs
4f2afaa6fb Delilah keyboard added (#12638)
* Delilah keyboard added

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

* removed unnecessary lines as per review

* removed unnecessary lines as per review

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-22 10:58:09 -04:00
MechMaster48
0b6d8150e4 Personal keymap for dztech DZ60RGB plus README.md (#12485)
* Personal keymap and README to go along with it.

* Noticed typo in README and removed name from comment in keymap

* Added GPL copyright notice
2021-04-21 19:50:26 -04:00
Joshua Coffey
054adbaf1e Update for the dodger keymap for the Planck (#12456) 2021-04-20 21:01:54 +02:00
Drashna Jaelre
6b5e349d7e Add additional info to PR Checklist (#12630)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-04-20 20:12:57 +02:00
Joel Challis
1cecd593c8 Fix for gcc10 teensy_lc eeprom build warning (#12587) 2021-04-20 10:51:55 -07:00
Brandon Claveria
2bccb7132d [Keyboard] Siris (#12415)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2021-04-20 10:50:06 -07:00
mechlovin
0d5458a7ad [Keyboard] add adelais rev4 (#12443) 2021-04-20 10:47:58 -07:00
Felix Jen
cce9ddff80 [Keyboard] Added BKS65 Solder PCB (#12451)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-20 10:47:31 -07:00
Christiano Haesbaert
d330203486 [Keyboard] Add amigopunk, a handwired 75% ALPS (#12489)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-20 10:46:19 -07:00
kb-elmo
45a557641d [Keyboard] Matrix 1.2og AVR PCB - VIA support (#12534) 2021-04-20 10:24:36 -07:00
Mikkel Jeppesen
271c7d4923 [Keyboard] Added support for the older no_led revision (#12563) 2021-04-20 10:23:00 -07:00
duoshock
54bad99e0e [Keyboard] Update ISO Macro vendor ID to meet VIA requirement (#12564)
Co-authored-by: online <33636898+online@users.noreply.github.com>
2021-04-20 10:22:29 -07:00
kb-elmo
9a3ba6874c [Keyboard] fix bella debounce (#12568) 2021-04-20 10:21:59 -07:00
yynmt
5f670fbdc4 [Keyboard] Add Acperience12 macropad (#12573)
Co-authored-by: yynmt <yynmt@yynmt.com>
2021-04-20 10:21:39 -07:00
Dimitris Papavasiliou
bd07120d33 [Keyboard] Fix and improve SPI transport in the Lagrange (#12606)
Co-authored-by: Dimitris Papavasiliou <dpapavas@gmail.com>
2021-04-20 10:17:39 -07:00
AlisGraveNil
4ff16fe73e [Keyboard] doodle macropad - 03/14 (#12243)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-20 09:59:05 -07:00
mechlovin
21c147c11b [Keyboard] Refactor IF87_rev1 (#12574) 2021-04-20 09:56:32 -07:00
tszaboo
752f5d6eb6 [Keyboard] Fixing files for Orto4exent (#12607)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-20 09:32:20 -07:00
obosob
b6c353db0c [Keyboard] Set OLED_DISPLAY_128X64 for Arch-36 (#12609)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-20 09:23:48 -07:00
GLozares
666944df2e [Keyboard] Add millipad keypad and default keymap (#12522) 2021-04-20 09:15:21 -07:00
Xelus22
3d37afd495 [Keyboard] Pachi Mini 32u4 (#12533)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-20 09:11:48 -07:00
Joel Challis
f778ede8bd Initial firmware for Forever65 (#12572) 2021-04-20 16:17:47 +01:00
yiancar
8405d28670 [Keyboard] Carbo65 (#12406)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 21:12:48 -07:00
Jos Boersema
f93ad79f41 [Keymap] Minifan minor issues (#12592) 2021-04-19 19:40:18 -07:00
kiwikey
dffa089173 [Keyboard] Add Wanderland - An Alice-layout keyboard (#12516)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 11:04:03 -07:00
Jaehee
3990c0f43d [Keyboard] Add jkdlab/binary_monkey (#12374)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-19 09:39:54 -07:00
peepeetee
20f35afd53 Fix bm68rgb led map (#12503) 2021-04-19 20:15:23 +10:00
AaronVerDow
00eea387fc [Keymap] Iracing replay keymap (#12461)
Co-authored-by: Aaron VerDow <aaron@verdow.com>
2021-04-19 02:23:20 -07:00
Robert Verst
2274631c8f [Keymap] Fix handling of RV_LOCK and RV_SNAP for windows (#12498)
Co-authored-by: Robert Verst <robert.verst@tobit.com>
2021-04-19 02:22:49 -07:00
jack
81be065fa5 [Keyboard] VIA Support for LCK75 (#12402) 2021-04-19 02:22:18 -07:00
Wilba
53a35c0d0c [Keyboard] Update RAMA WORKS M50-A (#12459) 2021-04-19 02:21:27 -07:00
Michael Stapelberg
cfbd9ba0e7 eclipse: recommend changing the default project make target (#12447)
This is required for example for quickly iterating with a debugger, where
Eclipse will build the project automatically.

It’s also shorter than the previous steps, which I think might not have been
updated since
https://qmk.fm/changes/2017-09-08-making-from-root-and-no-more-makefiles
2021-04-19 02:20:17 -07:00
Benedict Tan
5581ea8809 [Keyboard] Update dz60rgb default keymap (#12488)
The keymap for this PCB as of April 5, 2020 has a 4rth, largely superfluous layer, creating a total of 5 layers.

When ported to VIA, this results in a layer that users can access but cannot edit. I propose removing this layer completely along with it's access from the default.
2021-04-19 01:20:51 -07:00
Sergey Vlasov
fe9bd0afb9 Fix F303 audio output on A4 with the dac_basic driver (#12480)
The dac_basic driver did not work properly with `#define AUDIO_PIN A4`
(instead of configuring the A4 pin, the driver actually was switching
the A5 pin to analog mode, breaking any other usage of that pin in
addition to emitting a distorted signal on the improperly configured
A4 pin).  Fix the code to configure the A4 pin as intended.
2021-04-19 00:32:14 -07:00
Michael Stapelberg
17c880b076 [Keymap] add kinesis/keymaps/stapelberg (#12430) 2021-04-18 23:42:40 -07:00
Alexander Kagno
ef6802ca60 New keyboard keymap, small keymap updates to mm2 keymap (#12310)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Alex <alex@turncommerce.com>
2021-04-18 23:17:34 -07:00
Wilba
c7adb7a352 [Keyboard] Add wilba.tech WT60-G2 (#12395) 2021-04-18 23:12:48 -07:00
Wilba
10dfc8d92f [Keyboard] Add wilba.tech WT65-FX (#12394) 2021-04-18 23:12:26 -07:00
Wilba
c7214e1d13 [Keyboard] Add wilba.tech WT65-F (#12393) 2021-04-18 23:12:05 -07:00
Eric Wood
94d9d2bb31 [Keyboard] Add handwired/frankie_macropad (#12349)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-18 23:04:16 -07:00
Conor Burns
0b560673ce [Keyboard] Updates for 0xCB 1337 (#12336) 2021-04-18 23:00:05 -07:00
Ben Fiedler
2b7078cd21 [Keymap] add my quefrency layout (#12104) 2021-04-18 22:44:23 -07:00
Angel Rojas
99c46e4b73 [Keyboard] Add G1_65 keyboard (#12140)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-18 22:30:36 -07:00
maz0r
1e19227b31 [Keyboard] Capsunlocked CU80 Squish and Refactor (#12193)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-04-18 22:24:30 -07:00
LIParadise
9b8c5c1860 [Keyboard] Helen80 matrix fixes (#11969)
Co-authored-by: LIParadise <a58524andy>
2021-04-18 22:05:21 -07:00
Sanctified-git
0afbf8cc3c [Keyboard] Add Dystopia keyboard (#11997)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: Sanctified <Sanctified@users.noreply.github.com>
2021-04-18 21:53:33 -07:00
MelGeek
2aab8a114e [Keyboard] Update MJ61 architecture to support multi version (#11787)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-18 21:02:13 -07:00
RinoSolutions
6b2a3a67a6 [Keyboard] Adding of Monarch keyboard (#11769)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Ramon Imbao <ramonimbao@gmail.com>
2021-04-18 20:54:07 -07:00
Ian McLinden
cfefecd951 [Keyboard] Added Koolertron AMAG23 (#11725) 2021-04-18 20:44:32 -07:00
Oliver Gaskell
05357d7937 [Keyboard] Add Tau4 keyboard (#11361)
with default and i2cscanner keymaps

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-04-18 20:36:40 -07:00
Nick Brassel
a0089aa345 Fixup Satisfaction75 bootprocess. (#12621)
- Use normal ChibiOS I2C driver.
- Move drawing code to housekeeping -- previously it was during matrix
  scan, which gets executed during bootmagic checks. However, bootmagic
  is invoked before QWIIC subsystem is enabled, which means I2C isn't
  configured yet. All I2C calls to the OLED fail with timeouts while
  bootmagic is being checked. Housekeeping ensures this is executed once
  the system has initialised and settled.
- QWIIC OLED driver: properly clear out OLED buffer when clearing screen.
2021-04-19 13:08:01 +10:00
Richard Dawe
eb7e668eb9 Add RGB controls to picture; label Layer 3 correctly (#12337) 2021-04-18 18:39:15 -04:00
Giorgi Chavchanidze
a3d717cb83 Keymap: Orthocarpus keymap for idobo (#12462)
* Keymap: Orthocarpus keymap for idobo

* Update keyboards/idobo/keymaps/gkbd_75/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Giorgi Chavchanidze <giorgi@vivaldi.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-18 18:22:56 -04:00
Antoine R. Dumont
fd65451679 keyboardio/atreus: Add ardumont keymap (#12479) 2021-04-18 18:14:23 -04:00
Pierre Chevalier
d0973e1cfb Add ferris 0.2 (#12133)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-18 17:51:45 +02:00
MarioCorona
c32264d9b7 mcrown crkbd new keymap (#12092)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-04-17 17:46:46 +02:00
Harshit Goel
09a392433a Ergodone via support (#11618)
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-04-16 16:26:19 +02:00
sendmmsg
3975c712f0 Bug in beautifier script, compound modifiers not correctly parsed (#12595) 2021-04-16 16:23:30 +02:00
Wilba
a8c013a145 Fix audio on WT60-XT (#12526) 2021-04-15 13:19:41 -04:00
Jay Greco
a69616c45c Optimize NIBBLE oled_bongocat keymap to reduce flash usage (#12330)
* Optimize with squeez-o frame compression

Adds VIA support!

* Clean up for PR

+ Add copyright header
- Remove debug print statements
2021-04-15 13:04:26 -04:00
MechMerlin
39d31d3ee4 update readme (#12322) 2021-04-15 13:01:25 -04:00
Zach White
588bcdc8ca Add support for tab completion (#12411)
* Add support for tab completion

* make flake8 happy

* Add documentation
2021-04-14 19:00:22 -07:00
Jan Christoph Ebersbach
b33e6793de Dactyl manuform 5x6 2 5 keymap (#11353)
* feat(keymap): add DactylManuform w/ 2 extra keys and 5 thumb keys

* fix(keymap): add missing readme

* chore: add gpl2 license header

* chore: add gpl2 license header

* docs[dactyl_manuform_5x6_2_5]: reformat readme

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-14 17:51:08 -04:00
Marius Kavoliunas
bcceb701cd [Keyboard] CyberGear Macro25 (#12518)
* add cybergear macro25 keyboard

* add readme and fix file namings

* rename readme.md

* separate default and via keymaps

* add info.json

* unify info.json and key coordinates

* remove via json

* add missing via layers

* Update keyboards/cybergear/macro25/keymaps/via/rules.mk

* Update keyboards/cybergear/macro25/macro25.c

* Update keyboards/cybergear/macro25/macro25.h

* Update keyboards/cybergear/macro25/readme.md

* Update keyboards/cybergear/macro25/readme.md

* Update keyboards/cybergear/macro25/readme.md

* Update keyboards/cybergear/macro25/readme.md

* remove unnecessary config.h parameters

* Update keyboards/cybergear/macro25/config.h

* remove MATRIX_ROWS and COLS from config.h

* Apply suggestions from code review

set to LAYOUT_ortho_2x5 and fix grammar
2021-04-14 13:38:27 -07:00
J.Flanagan
9dea6f7720 [Keyboard] Add Caffeinated Studios Serpent65 (#12578) 2021-04-13 20:08:42 -07:00
James Young
b64dabdffd Correct layout macro name in Cannonkeys Ortho75 info.json (#12581) 2021-04-13 18:31:51 -07:00
Leon Anavi
a2ac6f50aa [Keymap] ANAVI Macro Pad 2 add Google Meet keymap (#12449)
This keymap for ANAVI Macro Pad 2 contains a couple of shortcuts
for Google Meet:

- left key: turn on/off the microphone (mute button)
- right key: turn on/off the camera

Signed-off-by: Leon Anavi <leon@anavi.org>
2021-04-13 11:52:13 +02:00
Kyle McCreery
1a7a821582 Merc updates (#12289) 2021-04-12 20:40:38 +02:00
jackytrabbit
50e0f5dc80 Update layout option for lazydesigners/THE40 (#12312) 2021-04-12 19:55:57 +02:00
Arthur Tabatchnic
0f516d9026 A few small typo fixes in docs (#12524) 2021-04-11 12:50:45 +02:00
swampmonster
b23eeb6a14 Documentation update (#12484)
Update documentation to reflect what the actual target flags are

Co-authored-by: swampmonster <>
2021-04-11 12:49:12 +02:00
Joseph Whom
1298eab6ab Update readme.md (#12502)
Noticed a letter missing in "compiling".
2021-04-11 12:46:43 +02:00
Hawley Waldman
98939868fa Update github instruction link in newbs_getting_started.md (#12510)
Clarify that the link to the github/forking instructions is a link to how to fork this project. Previous wording implied that the link was to a how-to-use github in general page.
2021-04-11 12:45:30 +02:00
github-actions[bot]
7daa2e210c Format code according to conventions (#12540)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-10 17:34:26 +01:00
Michael Stapelberg
7d953332e0 ChibiOS USB driver: prevent deadlock with CONSOLE_ENABLE = yes (#12472)
Before this commit, attaching an ARM-based (i.e. ChibiOS-based) keyboard that
uses CONSOLE_ENABLE = yes and produces debug messages would deadlock the
keyboard unless one was running hid_listen.

With this commit, dead-locking writes to the queue are detected and prevented.

fixes #5631
2021-04-10 16:03:38 +01:00
Álvaro A. Volpato
03685309fd Reverse K0E and K0G (#12491)
Co-authored-by: Gondolindrim <alvaro.augusto.volpato@gmail.com>
2021-04-10 23:23:08 +10:00
Eithan Shavit
e09ca63317 [Keyboard] Add afternoonlabs/oceanbreeze (#12299)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Eithan Shavit <eithan@fb.com>
2021-04-09 22:57:30 -07:00
Ryo Maeda
3dbb7f261d [Keymap] Remove LAYOUT_kc macros from edvorakjp keymaps (#12217) 2021-04-09 17:37:49 -07:00
littleferris
93e8a401df [Keyboard] ergosaurus - add VIA support, enabled RGB (#12126)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-04-09 14:36:18 -07:00
hadi
7f9409bbb3 [Keyboard] Added senselessclay had60 (#12093)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-09 14:31:57 -07:00
kiwikey
633464acfa Add VIA keymap for Kawii9 (#12521)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-09 21:05:14 +02:00
mechlovin
f744e22b49 Add TH1800 PCB, Hex6C PCB, Rogue87 PCB, Rouge87 PCB, Infinity87 series (#11977)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
Co-authored-by: vuhopkep <boy9x0@gmail.com>
2021-04-09 20:48:30 +02:00
peepeetee
1a913aa12e Fix Breaking Change date (#12272) 2021-04-09 12:41:29 +10:00
Adrian
75f83210f4 Add new handwired keyboard (Ergocheap) (#11857)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-08 18:47:24 +02:00
Ryan
2170b75b26 qmk chibios-confmigrate: Make -i and -r required (#12515) 2021-04-08 14:16:15 +10:00
Kosuke Adachi
d1270c9d55 Update info.json to correctly. (#12507) 2021-04-07 09:57:36 -04:00
Ryan
546dfce209 Add info.json for CK60i (#12318) 2021-04-07 20:03:45 +10:00
SneakboxKB
e0614e4f52 Disarray ProductID change (#12440)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: mujimanic <64090325+mujimanic@users.noreply.github.com>
Co-authored-by: Zach White <skullydazed@gmail.com>
2021-04-04 11:09:43 +02:00
Takeshi ISHII
49dc332a04 [Keymap] cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows (#12259)
* cleanup keyboards/helix/{rev2|rev3_5rows}/keymaps/five_rows

* Made the layout data easier to read.
  * helix/rev2/keymaps/five_rows/keymap.c
  * helix/rev3_5rows/keymaps/five_rows/keymap.c

* The following two were made the same.
  * keymaps/five_rows/config.h
  * keymaps/five_rows/oled_display.c

The binary of the compilation result has not changed.

* update keyboards/helix/rev2/keymaps/five_rows/rules.mk

KEYBOARD_LOCAL_FEATURES_MK was moved to the end.

* add '#define DISABLE_SYNC_TIMER' into helix/rev3_5rows/keymaps/five_rows/config.h

The sync timer features worsen the matrix scan rate of the Helix keyboard. I'm not sure if it makes sense to have sync timer features enabled on the Helix keyboard. So in my keymap I disable this.
2021-04-04 04:42:29 +09:00
Joel Challis
60e1910e5b Add WSL specific logic for avrdude device detection (#12392) 2021-04-03 17:29:06 +01:00
Excitable Snowball
4e2ab3a177 Remove wave from requirements-dev.txt (#12387)
This resolves to <https://pypi.org/project/Wave/>, but the places where
the `wave` module is imported make it clear that the standard library
module <https://docs.python.org/3/library/wave.html> was intended.

Was originally added in #11820 and used in the following files:
* `util/sample_parser.py`
* `util/wavetable_parser.py`
2021-04-03 09:15:39 -07:00
Zach White
41f649c9a9 fix line endings 2021-04-03 08:27:46 -07:00
Steve Purcell
d91938c19d [nix] Use niv and poetry2nix to more easily manage dependencies (#11181)
* [nix] Update nixpkgs to avoid issues with Big Sur

The older nixpkgs snapshot did not contain nix changes to the
compiler/linker hooks that are necessary for compatibility with MacOS
Big Sur. The fix is simply to update to a newer snapshot.

* [nix] Add a poetry manifest and use poetry to build the Python env

* [nix] Use niv to manage upstream sources like nixpkgs

* [nix] Update to newer nixpkgs snapshot

* [nix] Bump python package versions
2021-04-03 08:05:46 -07:00
TurtleHunter
a3cd1290be 3 new LED effect animations (#9827)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Erovia <Erovia@users.noreply.github.com>
2021-04-03 16:41:54 +02:00
kb-elmo
7d33d1bace Added Epoch80 (#12307) 2021-04-03 15:51:21 +02:00
github-actions[bot]
4b9f5578a0 [CI] Format code according to conventions (#12468)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-04-03 20:13:45 +11:00
James Young
59c8672f5c kingly_keys/ave: move RGBLight config to keyboard level (#12457)
QMK Configurator's API can't use the RGBLight configurator when it's defined at keymap level.
2021-04-02 23:20:11 -07:00
Michael Stapelberg
a7920acff5 keymaps: fix kinesis default keymap progrm/reset keycode (#12429)
The right-most top-most key on the Kinesis Advantage keyboard is labeled
“Progrm” and was meant to enter the Teensy bootloader as per the comment.

However, the keycode was set to KC_1, which just produces a “1”.
It should be RESET instead.

This commit fixes KC_1 to RESET in all files where the fix is needed.
The other files have already been fixed independently.
2021-04-02 22:12:24 -07:00
Robert Verst
79a87a9c2b [Keymap] Fixing userspace rverst (#12422)
Co-authored-by: Robert Verst <robert.verst@tobit.com>
2021-04-02 22:06:02 -07:00
Dylan Khor
8d3581a49f [Keymap] Remove kc keymap from khord chocopad keymap (#12409)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 21:44:37 -07:00
kaylanm
cd96377312 [Keyboard] Add GON NerD TKL VIA keymap (#12309)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 21:20:34 -07:00
MCKeebs
8b98e67643 [Keyboard] Add pkb65 keyboard (#12230)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 21:18:15 -07:00
MechMerlin
6876263961 [Keyboard] KBD67 Hotswap VIA Support (#12351)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 20:58:42 -07:00
Wilba
4caeb64888 [Keyboard] Added wilba.tech WT70-JB (#12347)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 20:57:18 -07:00
Wilba
70540a1f74 [Keyboard] Added RAMA WORKS KARA (#12346)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 20:48:26 -07:00
jrdsgl
f0dc206784 [Keyboard] Update sixkeyboard VID/PID (#12345)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 20:44:06 -07:00
Jason Yamada-Hanff
caca8949de [Keymap] remove kc layout from levinson jyh keymap (#12301)
Co-authored-by: Jason Yamada-Hanff <jyamada-hanff@chromologic.com>
2021-04-02 19:04:28 -07:00
adamkraus6
0232941b1d [Keyboard] Added VIA support to dmqdesign/spin (#12300)
Co-authored-by: Kraus, Adam <adam.kraus@mines.sdsmt.edu>
2021-04-02 19:02:26 -07:00
Danny
63445be4e5 [Keyboard] Add FoldKB (#12255)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 17:51:39 -07:00
Paul James
619885b484 [Keyboard] Add Lumberjack keyboard (#12124) 2021-04-02 17:25:23 -07:00
dsanchezseco
6592f83589 [Keymap] for Ibm m122 (#11704)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-04-02 14:44:46 -07:00
Duong Anh
43d74d7fa5 [Keyboard] Add CherryB Studio Keyboards (#11475)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-04-02 14:25:44 -07:00
Ryan
cd981ec56a qmk doctor: Fix WSL /mnt check (#12466) 2021-04-02 22:24:09 +01:00
Ryan
12f308748f qmk doctor: Display macOS and Windows versions, and add WSL warning for /mnt (#12441) 2021-04-02 21:44:27 +11:00
peepeetee
ac0ba832c7 change BM68 RGB USB Device descriptor device name (#12418)
* change styling USB Device descriptor device name to reflect stylistic choices of the developer
2021-03-31 18:58:23 -07:00
Nick Brassel
c5ddada32e Remove leftover old implementations of the lily58 split code. (#12442) 2021-04-01 00:09:01 +11:00
github-actions[bot]
8a950a7116 Format code according to conventions (#12437)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-31 10:16:14 +11:00
Nick Brassel
64551a8386 Allow for clang-format up to v20. (#12407) 2021-03-31 09:33:26 +11:00
kb-elmo
ae59a51193 Added the 64_ansi (GK64) layout to DZ60 (#12378)
* add gk64 layout

* Apply suggestions from code review
2021-03-28 20:46:17 -07:00
Zach White
5dc7951dc0 add utf-8 encoding to the open() call (#12388) 2021-03-27 08:55:47 -07:00
James Young
a866fbf381 handwired/rs60: use LAYOUT_ortho_5x12 directly (#12397)
This commit renames the macro LAYOUT to LAYOUT_ortho_5x12, and removes the alias.
2021-03-27 19:03:42 +11:00
joedinkle
8af7200085 Pull Request for babyV keyboard (#12112)
* Add files via upload

* Add files via upload

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update Readme.md

* Update Readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Create CaseFiles

* Delete CaseFiles

* Create Readme.md

* Add files via upload

* Add files via upload

* Add files via upload

* Create Readme.md

* Create Readme.md

* Create Readme.md

* Delete S50-Top.dxf

* Delete S50-Top.svg

* Add files via upload

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* Updating encoder code.

* Update encoder code.

* Case files and encoder update.

* Update encoder code.

* Updates to encoder code.

* Syntax fixes.

* Create readme.md

* Add files via upload

* Create readme.md

* Add files via upload

* Removed case files from s50 branch

* Format changes.

* Add case files to Master branch

* Syntax fixes

* Recommended code changes for pull request into QMK.

* Recommended change for pull request.

* Delete config.h

* Delete config.h

* Delete config.h

* Delete config.h

* Delete config.h

* Delete config.h

* Add config.h and rules.mk files to the joedinkle layout for autoshift.

* Delete S50-Top-New.dxf

* Delete S50-Top-New.svg

* New case files

Revision to S50 top file.

* Added 3D printed case STL and DXF files.

* Create readme.md

* Update readme.md

* Added babyV firmware

* Update readme.md

* QMK PR preperations.

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Delete rules.mk

* Delete config.h

* Delete keymap.c

* Delete readme.md

* Changes for QMK formatting.

* Removed excess files

Removed case files and schematics from the joedinkle branch. The joedinkle branch is primarily for QMK PRs. These files will remain in the master branch of this fork.

* Add SPRH keyboard

* Formatting and cleanup.

* Edits to default Layout

* Readme Update

* Formatting changes.

* Deleted obsolete code.

* Formatting changes and file removal for QMK PR

* Deleted S50

S50 is a completed keyboard and is located in the Master Branch. S50 removed from the in progress branch.

* Delete Read Me

* Replaced S50 files accidentally deleted in merge.

* Added split layout for SPRH

* Added Files for Blvd PCB

* Add PCB files for Blvd

* Added compressed kicad projects

* Removed obsolete PCB files

* Added PCB files

* Added personal babyV keymap.

* Update readme.md

* Update readme.md

* Update readme.md

* Update readme.md

* babyV-added info.json and updated default keymap

* Added case files for babyV

* Update readme.md

* Update readme.md

* Update readme.md

* Updated default keymap.

* Cleaned up keymap folder.

* Added info.json for babyV

* babyV updates

* PR preps

* PR preps

* Update .gitignore

* Delete Backlight.png

* Delete MCU.png

* Delete Matrix.png

* Delete readme.md

* Rename Readme.md to readme.md

* Requested PR changes.

* Update rules.mk

* Update rules.mk

* readme and rules.mk updates

* Update keyboards/eyeohdesigns/babyv/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/eyeohdesigns/babyv/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/eyeohdesigns/babyv/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/eyeohdesigns/babyv/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/eyeohdesigns/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/eyeohdesigns/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update readme.md

* Update keyboards/eyeohdesigns/babyv/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-26 13:58:13 -04:00
Anthon van der Neut
f028dbf179 Minor typo in comments Colemak DM-MK -> DH-MK (#10721) 2021-03-26 23:37:17 +11:00
Matt Snell
aa2b4a688b [docs] Add IO Warning to WSL section of Getting Started (#12384)
* Add IO Warning to WSL section of Getting Started

* FauxPark suggestion (thanks!)

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-26 13:21:21 +11:00
Drashna Jaelre
57475caab0 Fix issues when manually shifting characters and Auto Shift (#12083)
Specifically, when using the Auto-Shift feature, if you hold and roll shift, it would not actually shift the character that you hit after the shift
2021-03-25 23:41:19 +11:00
Sendy Aditya Suryana
34205f5bb5 Add new Keyboard: SENDYYeah Bevi (#12011)
* Add bevi Keyboard

* Update readme

* Change image embed

* Update instructions to compile

* beVi initial

* Enable NKRO

* Update README

* Revert Lily58 rules.mk

* Revert h87a info.json

* Add URL and maintainer in info.json

* Update year

* Add layer 1

* Tidying up

* Fix keymap

* Add one line at end of file

* Replicate default keymap to via

* Update keyboards/sendyyeah/bevi/bevi.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Remove comment on layout macro definition

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Sendy Aditya Suryana <sendy.suryana@go-jek.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-25 23:39:35 +11:00
Takeshi Nishio
9f1608a6a2 Add unison v04 keyboard (#11982)
* Update: JonesのMIDIキーマップをベースに初期作成。AudioとMIDIの同時使用はファームウェアサイズ的に厳しい。

* Update: Unison用のIDへ変更

* Update: Audioはデフォとせず、OLEDをデフォとした。

* Update: v03基板から実際に動くものとなったため、v01からv03に変更。基本的な設定を完了。

* Update: 基本的なキーマップを作成

* Update: キーマップ、ロータリーエンコーダの感度を調整。

* TEST: BOOTMAGIC = lite でどうなるのかテスト

* Update: Jones ---> Unison

* TEST: BOOTMAGIC = lite で、TABキーでBootloaerに入る設定

* Update: インデント

* Update: QMKの一般的な表記に合わせ、 k(col)(row) から k(row)(col) へ変更。

* Update: 自前のカスタムマトリクスを使用せず、COL2ROW方式で総当たりマトリクスを動作させるテストを開始。

特に問題なく動作している。

* TEST: BOOTMAGICテスト用コード追加

* Update: 主に中央部分のキーマップ変更

* TEST: COL2ROWで、COLのピンの順番を変えてキーを読むテスト

* Update: QMKの仕様上、MacではKC_PSCRがFキーとして判定されるため、スクリーンショット用マクロを用意した。

* TEST: COL2ROWで、ROWとCOLのピン定義をずらした状態で、BOOTMAGIC = lite の(0,0)キーに引っかからない。

* Update: ロータリーエンコーダにマウスホイールを割り当て

* Update: 自明のコメントを削除

* Update: NKRO指定時は、NKRO動作を強制。

* Update: MIDIなしのとき、AUDIOのフル機能がファームウェアサイズ内に収まることをチェック。

* Update: Bootmagicテスト完了のため、無効化。

* TEST: LED動作チェック。

* Update: キーマップを、LOWER, RAISEを中心に大幅変更。

数字を左手レイヤーキーではなく、右手レイヤーキーにしたことで、CMD+Qによる誤爆アプリ終了を避ける狙いもある。

* Update: 未使用のNumレイヤとTapDanceを削除。

* Update: MIDI関連の設定を多数追加。

* New: Add Sequencer keymap

* enumの開始を明記

* TAP_DANCEを無効化

* シーケンサーで、トラック単位の有効・無効の切り替えを追加。※動作せず

* デバッグ用設定をテスト

* Change custom keycode name for classification.

* Add LED update on sequencer step.

* change LED adjusting value.

* TEST: SQ_T related things.

* DEBUG

* Increase track 6 ---> 8. Add track indicator.

* Add sequencer step viewer.

* Move Bootmagic lite position to keyboard's config.

* Revert matrix as phisically connected.

* Change default RGB lighting animation.

* Remove MIDI options from keyboard's config.

* change version

* Remove unused.

* Delete unused. Round-Robin matrix woks with COL2ROW.

* Delete unused. Round-Robin matrix woks with COL2ROW.

* Formatting.

* Formatting.

* Remove unused.

* No enum.

* LED setting for Sequencer layer.

* Add TODO flag

* Remove unused.

* change LCTL

* Update Rotary Encoder setting.

* revert to default

* Add TODO flag.

* Update to latest information.

* Update to latest information.

* Add v04

* Move keymaps directory to just under keyboard directory.

* Add music layout.

* Update to Unison layout.

* Add default keymap.

* Update readme description.

* Commenting.

* Exclude non-PR files.

* Change keymap name more general.

* Remove unused

* Commenting.

* Remove unused.

* Commenting.

* Change Macro name for consistency.

* Add tempo definition.

* Change transparent to noop for better musical play.

* Add Rotary Encoder push functions for Sequencer.

* FIX printscreen to work _WIN layer.

* Fix style name.

* Change keymap style from PC to Music.

* Adjust LED number and index to v04 PCB.

* Commenting.

* Add #ifdef block to LED config related.

* Change Sequencer display function from Rotary Encoder right-3 to right-4.

* Change default animations.

* Set LED effect range. Add LED reset on layer change.

* Remove unused.

* Commenting.

* Commenting.

* Use function to change Sequencer track indicator.

* Use function to change Sequencer track indicator.

* Remove unused

* Add PC-style keymap.

* Adjust keymap.

* Add micro volume control for Mac.

* Adjust keymap.

* Adjust cursor block.

* Adjust grave and tild in layer.

* Change magic-key position to Left-Bottom where both Music-style and Terminal-style have a key.

* Change LED settings for front-side 9 LEDs.

* Change keymap name.

* Update supported functions.

* Adjust indicator dimmer.

* Remove unused.

* Add underglow support.

* Add rotary encoder keymap at Adjust layer for test hardware function.

* Disable rotary encoders.

* Change description.

* Add support for underglow.

Disable knight animation to prevent unnatural feeling when underglow not installed.

* Commenting.

* Formatting.

* Turn on default layer indicator.

* remove duplication

* Change VID for via.

* Initial commit for VIA.

* Add layout option.

* restore AUDIO enabled.

* Removed a JSON file for VIA app, not for QMK.

* Remove non-related files for PR.

* Add keymap for music layout.

* Add photo links.

* Commenting.

* Apply PR checklist.

* Change unused function to "no".

* Add keymap image and change keymap as image shows.

* Change bootloader entering key to widely known "Left-Top".

* Turn off ENCODER by default.

* Add VIA keymap.

* Change VID unique.

https://github.com/qmk/qmk_firmware/pull/11982#discussion_r582276979

* Add config option to prepare future release, #11820.

https://github.com/qmk/qmk_firmware/pull/11820

* Remove old defines for Audio.

Co-authored-by: Takeshi Nishio <kkeennnn@gmail.com>
2021-03-25 23:38:31 +11:00
github-actions[bot]
0a056cfd81 Format code according to conventions (#12380)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-25 23:18:59 +11:00
purple-rw
5c1442766c fix permissive hold when both PERMISSIVE_HOLD_PER_KEY and TAPPING_TERM_PER_KEY are defined (#12125)
Co-authored-by: checyr <32964049+checyr@users.noreply.github.com>
2021-03-25 23:13:41 +11:00
즈눅
816f2f9cc2 Fix Kinetic speed condition (#12139) 2021-03-25 23:11:16 +11:00
ploopyco
666623d39a ADNS-5050 / Ploopy Nano / Ploopy Mini Trackballs (#11994)
* added adns5050 sensor code, as well as implementations for the Ploopy Mini and the Ploopy Nano

* fixed spurious scrolling issue

* recommended fixes for pr linting and cleanup
2021-03-25 23:10:55 +11:00
Albert Y
0eabb01e27 Minor improvements to BM68RGB (#12156)
* Minor improvements to BM68RGB

* Add grave esc and LTO support

* Move comments to end of line

* Document the use of qmk script for compiling and flashing

* Revert arrow key flags back to mod

* Update keyboards/bm68rgb/bm68rgb.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/bm68rgb/bm68rgb.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove grave escape

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update tab spacing

Co-authored-by: Ryan <fauxpark@gmail.com>

* Reverted make default

Co-authored-by: Ryan <fauxpark@gmail.com>

* Reverted make flash

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: filterpaper <filterpaper@localhost>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 23:08:04 +11:00
Takeshi ISHII
b664db3cf3 Removed unused RGBLED_TIMER_TOP and F_CPU macros from quantum/rgblight.[ch] (#12233) 2021-03-25 23:05:38 +11:00
Naoto Takai
a5ecd4eb87 Make the size of MATRIX_ROW_PINS and MATRIX_ROW_PINS_RIGHT the same (#12203)
* Make the size of MATRIX_ROW_PINS and MATRIX_ROW_PINS_RIGHT the same

* Use NO_PIN instead of duplicate pin
2021-03-25 23:05:05 +11:00
Sendy Aditya Suryana
f3f444c1df Add Nix Studio OXALYS80 Keyboard (#12118)
* Initial commit of OXALYS80 firmware

* Remove comments

* Add new return in info.json

* Fix pin output init for scroll lock indicator

* Update keyboards/nix_studio/oxalys80/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/nix_studio/oxalys80/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/nix_studio/oxalys80/oxalys80.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/nix_studio/oxalys80/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/nix_studio/oxalys80/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/nix_studio/oxalys80/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/nix_studio/oxalys80/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Delete keymaps config.h

* Update keyboards/nix_studio/oxalys80/config.h

Co-authored-by: Sendy Aditya Suryana <sendy.suryana@go-jek.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-25 23:04:02 +11:00
Takeshi ISHII
81c51ec51c [Keymap] Update keyboards/helix/pico/keymaps/mtei/keymap.c (#12188)
* update keyboards/helix/pico/keymaps/mtei/keymap.c

Stopped using the LAYOUT_kc macro. (this is response to #12160)

There is no change in the generated binary.

* small update pico/keymaps/mtei/keymap.c
2021-03-25 23:02:54 +11:00
Leon Anavi
b5a12fa6d3 [Keymap] ANAVI Macro Pad 2 add git keymap (#12212)
This keymap for ANAVI Macro Pad 2 contains popular git commands
typed out and executed with a single key:

- left key: git commit -s
- right key: git push

Signed-off-by: Leon Anavi <leon@anavi.org>
2021-03-25 23:01:45 +11:00
Albert Y
29c82cfb33 Add RGB Matrix suspend wake functions to BM40 (#12246)
* Add suspend wake functions for RGB Matrix

* Add suspension RGB functions to Planck/rev6 and Preonic/rev3

* Add suspend wake to Mark 65

* Revert changes to planck and preonic

* Remove changes to The Mark65

Co-authored-by: filterpaper <filterpaper@localhost>
2021-03-25 23:01:03 +11:00
Matt W
2cd684f8e0 add massdrop/alt/hlmtre keymap, add .exe to gitignore (#12191)
* add massdrop/alt/hlmtre keymap, add .exe to gitignore

* changes request in PR (license header and fix gitignore)

Co-authored-by: Matt Weller <matthew.weller@nvih.org>
2021-03-25 22:55:01 +11:00
Blake
c4d05010cb Add Daisy, a macropad with dual rotary encoders + update Scarlet readme.md (#12221)
* Daisy first commit buggy

* buggy still underglow crash

* Daisy V1

* ReadMe Updates
2021-03-25 22:53:30 +11:00
Albert Y
6276f54752 Add suspend wake functions for The Mark:65's RGB Matrix (#12245)
* Add suspend wake functions for RGB Matrix

* Add USB suspend definition to config.h

Co-authored-by: filterpaper <filterpaper@localhost>
2021-03-25 22:52:53 +11:00
jakobkg
8e820cde13 Fix handling multiples of the same MIDI note (fixes bug brought up in issue #10199) (#11639)
* Fix handling multiples of the same MIDI note

* Extend MIDI note status to fix note releases
2021-03-25 22:51:57 +11:00
TerryMathews
572395ac20 TKC GodSpeed75: add RGB LED support (#12278)
* GodSpeed75: add RGB support

* GodSpeed75: minor updates

* GodSpeed75: minor updates

* GodSpeed75: restore chconf.h

* GodSpeed75: restore chconf.h

* GodSpeed75: restore chconf.h
2021-03-25 22:51:02 +11:00
peepeetee
95c74ae4ae add via support for bm68rgb (#12275)
* add via support for bm68rgb

* add newline to keymap.c
2021-03-25 22:50:17 +11:00
kopibeng
3fc710e0b1 Add XT65 keyboard (#11998)
* Add XT65 keyboard

* Create readme.md

* Updated readme.md and rules.mk

* Updated config.h and readme.md

* Update imgur link

* Update keyboards/kopibeng/xt65/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/kopibeng/xt65/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/kopibeng/xt65/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kopibeng/xt65/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kopibeng/xt65/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kopibeng/xt65/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/kopibeng/xt65/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 22:49:37 +11:00
kb-elmo
dd0a35273c added twelvekey (#12281)
* added twelvekey

* rename layout
2021-03-25 22:48:59 +11:00
Matteo Montemarani
cf7404630e ISO Layouts fix (#12319) 2021-03-25 22:47:03 +11:00
André Silva
ef872595ae update shell.nix (#12295) 2021-03-25 22:45:55 +11:00
Purdea Andrei
eac9ee8d3f Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation (#12306)
* Improve upon the 'Caveats' section of the Layers and Mod-Tap documentation

* Update docs/mod_tap.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update docs/feature_layers.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update docs/mod_tap.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Added a line saying that remote desktop problems may also be mitigated by defining TAP_CODE_DELAY

* Update docs/mod_tap.md

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 22:44:28 +11:00
James Young
1d706bd77c handwired/bolek: correct key object order (#12356) 2021-03-25 22:38:52 +11:00
Zach White
3e60997edb Add a qmk format-json command that will format JSON files (#12372)
* Add a command to format json files

* change to work after rebase

* add test for qmk format-json

* add documentation for qmk format-json

* Update lib/python/qmk/cli/format/json.py
2021-03-25 22:38:10 +11:00
Wilba
a74846a0db Added wilba.tech WT60-H2 (#12348)
* Added wilba.tech WT60-H2

* fix typo

* Fix error in keymap
2021-03-25 22:36:52 +11:00
Wilba
038d9118b6 Added wilba.tech WT65-G2 (#12360) 2021-03-25 22:36:24 +11:00
Wilba
be771e5fd2 Added wilba.tech WT60-H3 (#12354)
* Added wilba.tech WT60-H2

* fix typo
2021-03-25 22:35:54 +11:00
Andrew-Fahmy
1fbee7c316 (Re)Fixing K-type RGB lighting (#12084)
* initial rgb driver fix

* added underglow LEDs and fixed typo in RGB locations

* removed test code

* added my key maps

* updated rgb keymap to work with changes

* refactored my code to make it more maintainable and updated keymaps.

* added GPL licence

* Turned off matrix scan rate debug info

* added checks if RGB matrix is enabled to fix errors when building keymaps without RGB matrix enabled

* Apply suggestions from code review by fauxpark

Co-authored-by: Ryan <fauxpark@gmail.com>

* Renamed led driver file to be less ambiguous

* Renamed is31fl3733 driver files to is31fl3733-dual

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 22:35:18 +11:00
Brandon Claveria
8b39ae13c7 add equator (#12369)
Co-authored-by: Swiftrax <swiftrax@gmail.com>
2021-03-25 22:34:29 +11:00
Joel Challis
1bb6d8de6f Fix USER_PRINT on avr/atsam (#12269)
* Fix USER_PRINT on avr/atsam

* Update tmk_core/common/arm_atsam/_print.h

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 22:33:53 +11:00
Ryan Roden-Corrent
a888057453 Fix a small typo in cli_commands.md (#12379) 2021-03-25 22:31:05 +11:00
Ryan
eae7343741 Move API_SYSEX_MAX_SIZE out of config_common.h (#12302) 2021-03-25 22:30:42 +11:00
Armando Magalhães
c59fb1b477 feat(keymaps): Changes to crkbd/keymaps/armand1m layout and README.md update (#12252)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-25 18:06:30 +11:00
James Young
e7cb7bc737 Roses Lite layout macro touch-up (#12357) 2021-03-25 18:05:59 +11:00
Xelus22
1ed48c774e add valor_frl_tkl info.json (#12359)
* add info.json

* remove macro keys to correct layout
2021-03-24 22:28:54 -07:00
github-actions[bot]
54b80ecf9f [CI] Format code according to conventions (#12363)
* Format code according to conventions

* Update lib/python/qmk/cli/generate/api.py

* Update lib/python/qmk/cli/generate/api.py

Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Zach White <skullydazed@gmail.com>
2021-03-24 20:33:25 -07:00
sbuller
97a73637e0 [Keyboard] Preserve signedness from opt_encoder_handler for scroll data on ploopy devices (#12223) 2021-03-24 18:33:06 -07:00
Ryan
653ecf91c2 More Tap Dance docs improvements (#12358) 2021-03-24 19:46:22 +00:00
Joel Challis
b7870ae78c Workaround for recent changes to mouse keycodes (#12367) 2021-03-24 19:38:35 +00:00
Zach White
299008be36 Add support for qmk_configurator style aliases (#11954)
* Add support for qmk_configurator style aliases

* add the keyboard aliases to the api data

* add support for a keyboard metadata file

* make flake8 happy
2021-03-24 09:26:38 -07:00
Ryan
723d9af04d Add info.json for handwired/datahand (#12320) 2021-03-24 21:12:55 +11:00
James Young
6edcbdca19 [Keyboard] YMDK YM68 (#12352)
* [Keyboard] YMDK YM68

Converted from a KBFirmware JSON file provided via the vendor's product listing.

PCB supports Backlight on B6 and RGB Underglow on E2, but the LEDs are not pre-soldered according to the PCB photos.

* update VENDOR_ID and PRODUCT_ID
2021-03-24 02:07:12 -07:00
James Young
2882ee9f55 Configurator bugfix for GMMK Pro (#12353) 2021-03-24 15:24:20 +11:00
Ryan
78149505f9 Fix Uni660 linker errors (#12341) 2021-03-24 13:03:43 +11:00
duoshock
7b07ce3fef Add UC-1 keypad (#11926)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: online <33636898+online@users.noreply.github.com>
2021-03-24 13:00:07 +11:00
Viktor Eikman
d395c81606 Configurator fixes for handwired/concertina/64key (#12316)
* Fixed bug that was hiding a key in info.json.

* Improvements to presentation.
2021-03-23 11:18:19 -07:00
Danny
be257b6f9f Add Sinc Rev. 2 (#12138) 2021-03-23 11:11:07 -04:00
Luca Di Bartolomeo
d4a8123267 Update readme.md on quefrency (#12276)
* Update readme.md on quefrency

Fix incorrect flashing instructions

* Update keyboards/keebio/quefrency/readme.md
2021-03-23 00:00:34 -07:00
Zach White
e1a7027fe8 use layout aliases when processing info.json (#12333) 2021-03-22 18:58:07 -07:00
kb-elmo
c5b0366a25 Fix Kira80 license headers (#12303)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
2021-03-21 13:43:04 +11:00
James Young
217e3a59c4 Boston: correct LAYOUT macro data (#12282)
- correct macro reference
- add missing encoder position
- correct maintainer value to reference keyboard maintainer's GitHub account
- remove trailing whitespace
2021-03-20 14:53:02 +11:00
noclew
0ab88f5342 [Keyboard] Vanana, Vaguette Lite, and Waaffle (#11441)
* added Vanana / Vaguette Lite / Waaffle

* changed extra GPIO allocations of Waaffle and Vanana

* Apply suggestions from code review

changed layout name of vaguette Lite / requested by drashna

* Apply suggestions from code review

Requested keymap changes have been made.

* all changes requested by collaborators are made

* RGB config updated / keymap updated

* fixed vaguette lite info.json

* fixed vaguette lite info.json

* fixed vaguette lite info.json

* Apply suggestions from code review

request changes are made

* pre rename h

* vaguettelite reanmed to lowercases

* fixed vanana keymap

* Apply suggestions from code review

* changed Bootmagic key of VaguetteLite as suggested

* Updated via keymap of Vaguette Lite as suggested

* add vaguette lite 6.25 layout

* added vaguette lite noclew keymap

* updated vaguette lite 6.25u keymap description

* updated vanana default keymap

* updated keymap spacing

* reabased from the official repo

* Update keymap.c

fixed vaguette lite keymap

* Apply suggestions from code review

All the requested changes by a collaborator were made.

* updated info.json of Vanana and readme files of Vanana and waffle

* rename LAYOUT_waaffle to LAYOUT_ortho_5x16

Also adjusts the info.json data to put a visual gap between the extension and main PCBs.

* make rules.mk and info.json specific to rev3

Removes nckiibs/waaffle as a build target, as it redirects to the only extant revision in the repository.

* add controller board build targets

Adds build targets for Pro Micro and Elite-C builds, with appropriate defaults for each.

Running `make nckiibs/waaffle/rev3` defaults to a Pro Micro-based build.
2021-03-19 17:12:38 -07:00
James Young
8dfe37a3a3 Sirius UniGo66 touch-up (#12280)
* un-nest layout macros

* use #pragma once include guard in unigo66.h

* unify rules.mk to QMK AVR template

- remove Bootloader selection comment block
- unify Build Option header comment
- align Build Option rules and inline comments

* remove unused LAYOUT_all macro

* update readme.md to match QMK template
2021-03-19 12:36:52 -07:00
Ryan
69eca63a84 qmk doctor: Don't run udev checks under WSL (#12231) 2021-03-19 04:24:21 +11:00
Xelus22
a5576f9738 [Keyboard] Add Pachi (#12132)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-19 01:25:37 +11:00
kb-elmo
c833b77646 Fixed keymap names of Noah AVR (#12265)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-19 00:17:21 +11:00
James Young
ed446360a4 Aleblazer Zodiark touch-up (#12279) 2021-03-18 14:38:08 +11:00
github-actions[bot]
9807225f90 [CI] Format code according to conventions (#12277)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-18 12:28:50 +11:00
Ryan
9331c22620 XT converter cleanup (#12264) 2021-03-18 11:48:09 +11:00
Salman
cc84831cae Adding Keyboard: GMMK Pro (#12030)
* GMMK Pro QMK Firmware Code

* info.json added

* updated info.json for the unused keys

* redoing info.json

* readme for pro

* gmmk initial readme

* pipeline fix, issue with compiling gmmk.h

* gmmk pro code formatting changes

* removed rules.mk

* noci file

* Updates

* updated matrix function to match keymap

* updating the keymap layout, renaming matrix, updating layout name to LAYOUT

* fauxpark changes added

* PID VID updates

* removed chconfig and made rules.mk comments cleaner

Co-authored-by: Drashna Jael're <drashna@live.com>
2021-03-18 09:33:16 +11:00
klausweiss
f490777502 [Keyboard] Add handwired/bolek keyboard (#12234)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-17 10:07:56 -07:00
Felix Springer
6e79767f5a [Keymap] jumper149 keymap for the dztech/dz65rgb (#12142) 2021-03-17 10:02:00 -07:00
Robert Verst
3bc7f46412 [Keymap] Add userspace rverst (#12205)
Co-authored-by: Robert Verst <robert.verst@tobit.com>
2021-03-17 09:44:21 -07:00
tszaboo
8a2d3a8861 [Keyboard] Add support for ortho4exent (#11699)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-16 23:50:22 -07:00
im a can what do you think lmao?
538194344a [Keyboard] add oled and encoder function to lck75 (#11825)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-16 23:48:03 -07:00
Salicylic-acid3
23765332fa [Keyboard] Modification of ErgoArrows info.json (#11980)
The order of key descriptions in ErgoArrows info.json was wrong, so it has been corrected.
2021-03-16 23:47:18 -07:00
Matthew Dias
163e9b02bf [Keyboard] Add barleycorn smd keyboard (#12200) 2021-03-16 23:31:58 -07:00
devriesp
90f95de5c9 [Keyboard] add via keymap to afternoonlabs breeze keyboard (#12247) 2021-03-16 23:22:43 -07:00
kaylanm
ffc4380b30 [Keyboard] Add KMAC VIA keymap (#12224) 2021-03-16 23:17:40 -07:00
James Young
314ef9df03 Pimentoso Paddino02 clean-up (#12263)
* fork rules.mk to be version-specific

* remove pimentoso/paddino02 as a keyboard target

This commit makes it so QMK API doesn't identify pimentoso/paddino02 as a build target on its own, because there's no actionable code here.

* add image to readme.md

* unify rules.mk files to QMK AVR template

- remove Bootloader selection comment block
- sort Build Option rules
- unify inline comments
2021-03-16 23:00:43 -07:00
peepeetee
563be8ca2a Add bootmagic support for hub16 and hub20 (#12257) 2021-03-17 15:57:51 +11:00
Ryan
e527b375e8 TKC M0lly refactor (#12227) 2021-03-17 15:56:45 +11:00
Mojitas
4e8a218d17 [Keymap] Mojito - removed layer macros (#12201)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-16 20:09:45 -07:00
peepeetee
57de02c9f2 [Keyboard] fix bm68rgb default keymap (#12199) 2021-03-16 20:05:20 -07:00
Kyle McAlpine
3c4972a53f [Keyboard] Fix issue with process_record_kb in Torn (#12189) 2021-03-16 19:49:48 -07:00
stanrc85
6af387ec6f [Keymap] stanrc85 keymap updates (#12184) 2021-03-16 19:44:13 -07:00
Gavin Austin
554b73643d [Keyboard] Added Roses Lite Support (#12173)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-16 19:23:35 -07:00
Simon Arlott
e941ae3811 [Keyboard] Add YMDK NP24 (ATmega32U4 with 6 RGB LEDs) (#12120) 2021-03-16 18:39:09 -07:00
James Young
f75420c209 box75: fix key positioning in info.json (#12256)
* fix key positioning for box75
2021-03-16 00:00:59 -07:00
Matteo Montemarani
d99806cc27 Pizza Keyboards Pizza65 addition (#11604)
* Added Pizza65 from Pizza Keyboards

Addition of Pizza65

* Update pizza65.h

* Update info.json

* Update mcuconf.h

* Update rules.mk

* Updated makefile

* Update keyboards/pizzakeyboards/pizza65/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/pizzakeyboards/pizza65/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/ansi_blocker_doublebs/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/default/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/via/keymap.c

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/readme.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/pizzakeyboards/pizza65/info.json

Co-authored-by: Ryan <fauxpark@gmail.com>

* Chibios Config migration

* Update keyboards/pizzakeyboards/pizza65/readme.md

Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>

* Update keyboards/pizzakeyboards/pizza65/readme.md

Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>

* Update keyboards/pizzakeyboards/pizza65/pizza65.h

Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>

* Update rules.mk

nk rollover activation

* conf updates

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker/keymap.c

Co-authored-by: Davide Riccardo Caliendo <drc0@users.noreply.github.com>

* Update keyboards/pizzakeyboards/pizza65/keymaps/iso_blocker_doublebs/keymap.c

Co-authored-by: Davide Riccardo Caliendo <drc0@users.noreply.github.com>

* Update keymap.c

thanks to Acaban

* Update pizza65.h

update to the iso_blocker_doublebs layout macro

* Delete chconf.h

Deleting after the ChibiOS-conf migration.

* Delete config.h

Deleting after the ChibiOS-conf migration.

* Revert "Delete config.h"

This reverts commit 16d64619e6.

* Delete mcuconf.h

Deleting after ChibiOS-conf migration.

* Delete halconf.h

Deleting after ChibiOS-conf migrations.

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Jonas Gessner <JonasGessner@users.noreply.github.com>
Co-authored-by: Davide Riccardo Caliendo <drc0@users.noreply.github.com>
2021-03-16 10:09:29 +11:00
kb-elmo
cd8497b9fb add support for Noah AVR PCB (#11563)
* add support for Noah AVR PCB

* Update info.json

* Update readme.md

* Update keyboards/kb_elmo/noah_avr/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keymap.c

* Apply suggestions from code review

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-16 10:03:16 +11:00
James Young
469b4b21d2 Fixes for recent info.json files (#12248) 2021-03-16 07:45:39 +11:00
vattern
926389f3a7 Keyboard/grandiceps (#11933)
* Add Grandiceps keyboard

* Fix info.json

* Fix typo

* Fix typo

* cleanup format

* move mcu files to root

* Updated with PR changes

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* PR issues for chibios confmigrate

* PR Changes

Co-authored-by: Thys de Wet <thys@vectorphoto.co.uk>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-15 17:42:09 +00:00
James Young
52b7ebd6be M10-A refactor (#12242) 2021-03-15 19:25:00 +11:00
James Young
2e50b34c67 Add missing info.json files for keyboards (#12239)
Recent changes to QMK Configurator's API have made it so an info.json file is required for QMK Configurator to know how to render the keyboard in question.

This PR adds info.json files for keyboards that did not have them, with a few exceptions for boards whose layouts I was unable to determine.

* add info.json file for 2key2crawl

* add info.json file for 40percentclub/4x4

* add info.json file for 40percentclub/5x5

* add info.json file for 4pplet/aekiso60/rev_a

* add info.json file for 4pplet/steezy60/rev_a

* add info.json file for 6ball

* add info.json file for 7c8/framework

* add info.json file for aeboards/constellation

* add info.json file for alpine65

* add info.json file for aplyard/aplx6

* add info.json file for arch_36

* add info.json file for arisu

* add info.json file for box75

* add info.json file for butterstick

* add info.json file for four_banger

* add info.json file for geekboards/tester

* add info.json file for handwired/2x5keypad

* add info.json file for handwired/412_64

* add info.json file for handwired/42

* add info.json file for handwired/aplx2

* add info.json file for handwired/brain

* add info.json file for handwired/cans12er

* add info.json file for handwired/ck4x4

* add info.json file for handwired/d48

* add info.json file for handwired/dactyl_manuform/dmote/62key

* add info.json file for handwired/daishi

* add info.json file for handwired/hexon38

* add info.json file for handwired/jot50

* add info.json file for handwired/jotanck

* add info.json file for handwired/jotpad16

* add info.json file for handwired/k8split

* add info.json file for handwired/myskeeb

* add info.json file for handwired/nicekey

* add info.json file for handwired/onekey

* add info.json file for handwired/postageboard

* add info.json file for handwired/riblee_f401

* add info.json file for handwired/riblee_f411

* add info.json file for handwired/rs60

* add info.json file for handwired/splittest

* add info.json file for handwired/trackpoint

* add info.json file for handwired/traveller

* add info.json file for hhkb_lite_2

* add info.json file for honeycomb

* add info.json file for ivy/rev1

* add info.json file for keebio/viterbi

* add info.json file for laptreus

* add info.json file for latin47ble

* add info.json file for latin64ble

* add info.json file for launchpad/rev1

* add info.json file for lets_split_eh/eh

* add info.json file for mechmini/v1

* add info.json file for meira

* add info.json file for meishi

* add info.json file for merge/iso_macro

* add info.json file for mschwingen/modelm

* add info.json file for pabile/p20

* add info.json files for pimentoso/paddino02

rev1, rev2/left, and rev2/right

* add info.json file for rgbkb/pan

* add info.json files for runner3680

3x6, 3x7, 3x8, 4x6, 4x7, 4x8, 5x6, 5x7, and 5x8

* add info.json file for sck/gtm

* add info.json file for splitish

* add info.json file for standaside

* add info.json file for ungodly/launch_pad

* add info.json file for xelus/trinityxttkl

* Revert "add info.json file for rgbkb/pan"

This reverts commit 280b89bc61.

* correct maintainer for ivy/rev1
2021-03-15 01:06:55 -07:00
github-actions[bot]
a18e1305b3 Format code according to conventions (#12244)
Co-authored-by: QMK Bot <hello@qmk.fm>
2021-03-15 12:21:14 +11:00
xyzz
0779c34db8 Fix keycode mappings for via and ensure they don't change within protocol (#12130)
* Fix keycode mappings for via and ensure they don't change within protocol

* Update keycodes

* Fix broken keyboards

* added the missing keycodes found in via

* Remove invalid keycodes

Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
2021-03-15 12:19:01 +11:00
NightlyBoards
9e1d04fea7 [Keyboard] Added Adellein Keyboard/PCB (#11547) 2021-03-14 14:51:21 -07:00
yhaliaw
b44bffe954 [Keymap] Add yhaliaw keymap for Planck/Rev6.1. (#11318) 2021-03-14 13:19:05 -07:00
Ryan
739925c902 Add info.json for RGBKB Pan (#12218) 2021-03-15 07:17:09 +11:00
Monksoffunk
45e6bb7add Add Cassette42 (#10562)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-15 06:55:59 +11:00
milestogo
7b7689d307 [Keymap] miles2go userspace update, add functions for babblepaste library, add prime_e keybard keymap (#9196)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-14 12:23:30 -07:00
peepeetee
aa73411c14 Update RGB matrix effects documentation (#12181)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-13 11:37:39 +11:00
yiancar
b96c18c952 Hand 88 (#11963)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-13 09:37:41 +11:00
Dan Thomas
225bff226f fix info.json layout name for boardsource/5x12 (#12145) 2021-03-13 08:57:50 +11:00
Xelus22
5d7ad69cd8 [Bugs] Fix VIA Compiles (#12186) 2021-03-12 13:50:15 -08:00
Albert Y
b8ad5f4249 Document LED physical location index for Planck and Preonic (#12147)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-03-13 08:47:45 +11:00
Albert Y
63f9e7ee86 Enable default features on VIA keymap for Lily58 (#12185)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-03-12 18:43:31 +11:00
Ryan
88dce24375 Remove hex_to_keycode and move tap_random_base64 to send_string.c (#12079) 2021-03-12 18:03:44 +11:00
Nick Brassel
ea2a7c5ea4 ChibiOS conf upgrade for boston (#12170)
boston - 8bded9dabff58de6febd927d4ad976bb743696a3
2021-03-12 17:33:48 +11:00
Alexander Kagno
0ad7833ca4 [Keymap] arkag Userspace updated (#12183)
Co-authored-by: Alex <alex@turncommerce.com>
2021-03-11 10:01:53 -08:00
Joel Challis
790f94533c Refactor to use led config - Part 6 (#12115)
* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* Convert to config

* revert changes
2021-03-10 22:48:18 +00:00
somepin
9089244db7 Add VIA support to doodboard/duckboard_r2 (#12028)
* Update R1 keymap and config

* Add duckboard R2

* Add VIA support for duckboard R2

* Set bootmagic lite row and column

* Update config.h

* Update keyboards/doodboard/duckboard/config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update config.h

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-03-09 21:17:35 -08:00
Ryan
aed8bace97 Fix typo in get_git_version() (#12182) 2021-03-10 08:36:39 +11:00
Danny
4f5e0dd325 Add BFO-9000 info.json (#12179) 2021-03-09 10:36:38 -08:00
Zach White
6d8d20774f improve detection of community layout support 2021-03-09 08:04:07 -08:00
Armando Magalhães
2aa38f5bd3 [Keymap] add crkbd/keymaps/armand1m (#12098) 2021-03-07 15:33:40 -08:00
maz0r
75fd6bd269 [Keyboard] Capsunlocked CU80 - added variant's for RGB matrix support (#12019)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-03-07 12:20:02 -08:00
Zach White
86e6be342c minor change to trigger api update 2021-03-07 08:14:43 -08:00
1572 changed files with 57585 additions and 10360 deletions

1
.gitattributes vendored
View File

@@ -92,3 +92,4 @@ GRAPHICS
# hex files
*.hex binary
*.eep binary
nix/sources.nix linguist-generated=true

2
.gitignore vendored
View File

@@ -50,6 +50,7 @@ doxygen/
.browse.VC.db*
*.stackdump
# Let these ones be user specific, since we have so many different configurations
*.code-workspace
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/tasks.json
@@ -71,6 +72,7 @@ id_rsa_*
# python things
__pycache__
.python-version
# prerequisites for updating ChibiOS
/util/fmpp*

View File

@@ -0,0 +1,443 @@
{
# Format for each entry:
# <alias>: {
# target: <keyboard_folder>,
# layouts: {
# <layout_alias>: <layout_target>
# }
# }
#
# Both target and layouts are optional.
'2_milk': {
target: 'spaceman/2_milk'
},
'aeboards/ext65': {
target: 'aeboards/ext65/rev1'
},
'ai03/equinox': {
target: 'ai03/equinox/rev1'
},
aleth42: {
target: 'aleth42/rev1'
},
alice: {
target: 'tgr/alice'
},
angel17: {
target: 'angel17/alpha'
},
angel64: {
target: 'angel64/alpha'
},
at101_blackheart: {
target: 'at101_bh'
},
'atom47/rev2': {
target: 'maartenwut/atom47/rev2'
},
'atom47/rev3': {
target: 'maartenwut/atom47/rev3'
},
bear_face: {
target: 'bear_face/v1'
},
'bpiphany/pegasushoof': {
target: 'bpiphany/pegasushoof/2013'
},
chavdai40: {
target: 'chavdai40/rev1'
},
'candybar/lefty': {
target: 'tkc/candybar/lefty'
},
'candybar/righty': {
target: 'tkc/candybar/righty'
},
canoe: {
target: 'percent/canoe'
},
'cmm_studio/saka68': {
target: 'cmm_studio/saka68/solder'
},
'crkbd/rev1': {
target: 'crkbd/rev1/legacy'
},
'doro67/multi': {
layouts: {
LAYOUT_ansi: 'LAYOUT_65_ansi_blocker'
}
},
'doro67/regular': {
layouts: {
LAYOUT: 'LAYOUT_65_ansi_blocker'
}
},
'doro67/rgb': {
layouts: {
LAYOUT: 'LAYOUT_65_ansi_blocker'
}
},
drakon: {
target: 'jagdpietr/drakon'
},
'dztech/dz60rgb': {
target: 'dztech/dz60rgb/v1'
},
'dztech/dz60rgb_ansi': {
target: 'dztech/dz60rgb_ansi/v1'
},
'dztech/dz60rgb_wkl': {
target: 'dztech/dz60rgb_wkl/v1'
},
'dztech/dz65rgb': {
target: 'dztech/dz65rgb/v1'
},
eek: {
target: 'eek/silk_down'
},
ergoinu: {
target: 'dm9records/ergoinu'
},
'exclusive/e85': {
target: 'exclusive/e85/hotswap'
},
gh60: {
target: 'gh60/revc'
},
'handwired/ferris': {
target: 'ferris/0_1'
},
'helix/pico/sc/back': {
target: 'helix/pico/sc'
},
'helix/pico/sc/under': {
target: 'helix/pico/sc'
},
'helix/rev2/back/oled': {
target: 'helix/rev2/back'
},
'helix/rev2/oled': {
target: 'helix/rev2'
},
'helix/rev2/oled/back': {
target: 'helix/rev2/back'
},
'helix/rev2/oled/under': {
target: 'helix/rev2/under'
},
'helix/rev2/sc/back': {
target: 'helix/rev2/sc'
},
'helix/rev2/sc/oled': {
target: 'helix/rev2/sc'
},
'helix/rev2/sc/oledback': {
target: 'helix/rev2/sc'
},
'helix/rev2/sc/oledunder': {
target: 'helix/rev2/sc'
},
'helix/rev2/sc/under': {
target: 'helix/rev2/sc'
},
'helix/rev2/under': {
target: 'helix/rev2/sc'
},
'helix/rev2/under/oled': {
target: 'helix/rev2/under'
},
id80: {
target: 'id80/ansi'
},
idb_60: {
target: 'idb/idb_60',
layouts: {
LAYOUT: 'LAYOUT_all'
}
},
jones: {
target: 'jones/v03_1'
},
katana60: {
target: 'rominronin/katana60/rev1'
},
'kbdfans/kbd67mkiirgb': {
target: 'kbdfans/kbd67/mkiirgb',
layouts: {
LAYOUT: 'LAYOUT_65_ansi_blocker'
}
},
'kbdfans/kbd67/mkiirgb': {
target: 'kbdfans/kbd67/mkiirgb/v1'
},
'keebio/dsp40': {
target: 'keebio/dsp40/rev1'
},
'keycapsss/plaid_pad': {
target: 'keycapsss/plaid_pad/rev1'
},
kudox: {
target: 'kudox/rev1'
},
'lfkeyboards/lfk78': {
target: 'lfkeyboards/lfk78/revj'
},
'lfkeyboards/smk65': {
target: 'lfkeyboards/smk65/revb'
},
'maartenwut/atom47/rev2': {
target: 'evyd13/atom47/rev2'
},
'maartenwut/atom47/rev3': {
target: 'evyd13/atom47/rev3'
},
'maartenwut/eon40': {
target: 'evyd13/eon40'
},
'maartenwut/eon65': {
target: 'evyd13/eon65'
},
'maartenwut/eon75': {
target: 'evyd13/eon75'
},
'maartenwut/eon87': {
target: 'evyd13/eon87'
},
'maartenwut/eon95': {
target: 'evyd13/eon95'
},
'maartenwut/gh80_1800': {
target: 'evyd13/gh80_1800'
},
'maartenwut/gh80_3700': {
target: 'evyd13/gh80_3700'
},
'maartenwut/minitomic': {
target: 'evyd13/minitomic'
},
'maartenwut/mx5160': {
target: 'evyd13/mx5160'
},
'maartenwut/nt660': {
target: 'evyd13/nt660'
},
'maartenwut/omrontkl': {
target: 'evyd13/omrontkl'
},
'maartenwut/plain60': {
target: 'evyd13/plain60'
},
'maartenwut/pockettype': {
target: 'evyd13/pockettype'
},
'maartenwut/quackfire': {
target: 'evyd13/quackfire'
},
'maartenwut/solheim68': {
target: 'evyd13/solheim68'
},
'maartenwut/ta65': {
target: 'evyd13/ta65'
},
'maartenwut/wasdat': {
target: 'evyd13/wasdat'
},
'maartenwut/wasdat_code': {
target: 'evyd13/wasdat_code'
},
'maartenwut/wonderland': {
target: 'evyd13/wonderland'
},
'mechlovin/hannah910': {
target: 'mechlovin/hannah910/rev1'
},
'mechlovin/adelais/rgb_led': {
target: 'mechlovin/adelais/rgb_led/rev1'
},
'mechlovin/adelais/standard_led': {
target: 'mechlovin/adelais/standard_led/rev2'
},
'mechlovin/delphine': {
target: 'mechlovin/delphine/mono_led'
},
'mechlovin/hannah60rgb': {
target: 'mechlovin/hannah60rgb/rev1'
},
'melgeek/z70ultra': {
target: 'melgeek/z70ultra/rev1'
},
'mechlovin/hannah65': {
target: 'mechlovin/hannah65/rev1'
},
model01: {
target: 'keyboardio/model01'
},
m0lly: {
target: 'tkc/m0lly'
},
'montsinger/rebound': {
target: 'montsinger/rebound/rev1'
},
nomu30: {
target: 'nomu30/rev1'
},
'noxary/268_2': {
layouts: {
LAYOUT: 'LAYOUT_65_ansi_blocker'
}
},
oddball: {
target: 'oddball/v1'
},
omnikey_blackheart: {
target: 'omnikey_bh'
},
'pabile/p20': {
target: 'pabile/p20/ver1'
},
'pancake/feather': {
target: 'spaceman/pancake/feather'
},
'pancake/promicro': {
target: 'spaceman/pancake/promicro'
},
'percent/canoe': {
layouts: {
LAYOUT_iso: 'LAYOUT_65_iso_blocker'
}
},
plaid: {
target: 'dm9records/plaid'
},
plain60: {
target: 'maartenwut/plain60'
},
'ploopyco/trackball': {
target: 'ploopyco/trackball/rev1_005'
},
polilla: {
target: 'polilla/rev1'
},
'preonic/rev1': {
layouts: {
LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12'
}
},
'preonic/rev2': {
layouts: {
LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12'
}
},
'preonic/rev3': {
layouts: {
LAYOUT_preonic_grid: 'LAYOUT_ortho_5x12'
}
},
'primekb/prime_l': {
target: 'primekb/prime_l/v1'
},
'primekb/prime_l_v2': {
target: 'primekb/prime_l/v2'
},
'projectkb/alice': {
target: 'projectkb/alice/rev1'
},
'rama/koyu': {
target: 'wilba_tech/rama_works_koyu'
},
'rama/m6_a': {
target: 'wilba_tech/rama_works_m6_a'
},
'rama/m6_b': {
target: 'wilba_tech/rama_works_m6_b'
},
'rama/m10_b': {
target: 'wilba_tech/rama_works_m10_b'
},
'rama/m60_a': {
target: 'wilba_tech/rama_works_m60_a'
},
'rama/u80_a': {
target: 'wilba_tech/rama_works_u80_a'
},
'ramonimbao/herringbone': {
target: 'ramonimbao/herringbone/v1'
},
'rgbkb/pan': {
target: 'rgbkb/pan/rev1/32a'
},
'rgbkb/pan/rev1': {
target: 'rgbkb/pan/rev1/32a'
},
romac: {
target: 'kingly_keys/romac'
},
ropro: {
target: 'kingly_keys/ropro'
},
satan: {
target: 'gh60/satan'
},
skog: {
target: 'percent/skog'
},
speedo: {
target: 'cozykeys/speedo/v2'
},
stoutgat: {
target: 'tkw/stoutgat/v1'
},
suihankey: {
target: 'suihankey/split/alpha'
},
ta65: {
target: 'maartenwut/ta65'
},
tartan: {
target: 'dm9records/tartan'
},
tkc1800: {
target: 'tkc/tkc1800'
},
'tkw/stoutgat/v2': {
target: 'tkw/stoutgat/v2/f411'
},
underscore33: {
target: 'underscore33/rev1'
},
vinta: {
layouts: {
LAYOUT_67_ansi: 'LAYOUT_65_ansi_blocker'
}
},
wasdat: {
target: 'maartenwut/wasdat'
},
'westfoxtrot/cypher': {
target: 'westfoxtrot/cypher/rev1'
},
'whale/sk': {
target: 'whale/sk/v3'
},
'xelus/dawn60': {
target: 'xelus/dawn60/rev1'
},
'xelus/valor': {
target: 'xelus/valor/rev1'
},
yd60mq: {
target: 'yd60mq/12led'
},
ymd75: {
target: 'ymd75/rev1'
},
z150_blackheart: {
target: 'z150_bh'
},
zeal60: {
target: 'wilba_tech/zeal60'
},
zeal65: {
target: 'wilba_tech/zeal65'
}
}

View File

@@ -29,6 +29,7 @@
* [Overview](cli.md)
* [Configuration](cli_configuration.md)
* [Commands](cli_commands.md)
* [Tab Completion](cli_tab_complete.md)
* Using QMK
* Guides

View File

@@ -15,7 +15,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
The next Breaking Change is scheduled for February 27, 2021.
The next Breaking Change is scheduled for May 29, 2021.
### Important Dates

View File

@@ -131,6 +131,16 @@ Check your environment and report problems only:
qmk doctor -n
## `qmk format-json`
Formats a JSON file in a (mostly) human-friendly way. Will usually correctly detect the format of the JSON (info.json or keymap.json) but you can override this with `--format` if neccesary.
**Usage**:
```
qmk format-json [-f FORMAT] <json_file>
```
## `qmk info`
Displays information about keyboards and keymaps in QMK. You can use this to get information about a keyboard, show the layouts, display the underlying key matrix, or to pretty-print JSON keymaps.
@@ -170,7 +180,7 @@ qmk json2c [-o OUTPUT] filename
## `qmk c2json`
Creates a keymap.json from a keymap.c.
**Note:** Parsing C source files is not easy, therefore this subcommand may not work your keymap. In some cases not using the C pre-processor helps.
**Note:** Parsing C source files is not easy, therefore this subcommand may not work with your keymap. In some cases not using the C pre-processor helps.
**Usage**:

27
docs/cli_tab_complete.md Normal file
View File

@@ -0,0 +1,27 @@
# Tab Completion for QMK
If you are using Bash 4.2 or later, Zsh, or FiSH you can enable Tab Completion for the QMK CLI. This will let you tab complete the names of flags, keyboards, files, and other `qmk` options.
## Setup
There are several ways you can setup tab completion.
### For Your User Only
Add this to the end of your `.profile` or `.bashrc`:
source ~/qmk_firmware/util/qmk_tab_complete.sh
If you put `qmk_firmware` into another location you will need to adjust this path.
### System Wide Symlink
If you want the tab completion available to all users of the system you can add a symlink to the `qmk_tab_complete.sh` script:
`ln -s ~/qmk_firmware/util/qmk_tab_complete.sh /etc/profile.d/qmk_tab_complete.sh`
### System Wide Copy
In some cases a symlink may not work. Instead you can copy the file directly into place. Be aware that updates to the tab complete script may happen from time to time, you will want to recopy the file periodically.
cp util/qmk_tab_complete.sh /etc/profile.d

View File

@@ -8,7 +8,7 @@ To activate this feature, add `AUDIO_ENABLE = yes` to your `rules.mk`.
On Atmega32U4 based boards, up to two simultaneous tones can be rendered.
With one speaker connected to a PWM capable pin on PORTC driven by timer 3 and the other on one of the PWM pins on PORTB driven by timer 1.
The following pins can be configured as audio outputs in `config.h` - for one speaker set eiter one out of:
The following pins can be configured as audio outputs in `config.h` - for one speaker set either one out of:
* `#define AUDIO_PIN C4`
* `#define AUDIO_PIN C5`
@@ -166,7 +166,7 @@ The available keycodes for audio are:
!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely.
## Tempo
the 'speed' at which SONGs are played is dictated by the set Tempo, which is measured in beats-per-minute. Note lenghts are defined relative to that.
the 'speed' at which SONGs are played is dictated by the set Tempo, which is measured in beats-per-minute. Note lengths are defined relative to that.
The initial/default tempo is set to 120 bpm, but can be configured by setting `TEMPO_DEFAULT` in `config.c`.
There is also a set of functions to modify the tempo from within the user/keymap code:
```c
@@ -291,7 +291,7 @@ You can configure the default, min and max frequencies, the stepping and built i
|--------|---------------|-------------|
| `AUDIO_CLICKY_FREQ_DEFAULT` | 440.0f | Sets the default/starting audio frequency for the clicky sounds. |
| `AUDIO_CLICKY_FREQ_MIN` | 65.0f | Sets the lowest frequency (under 60f are a bit buggy). |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_MAX` | 1500.0f | Sets the highest frequency. Too high may result in coworkers attacking you. |
| `AUDIO_CLICKY_FREQ_FACTOR` | 1.18921f| Sets the stepping of UP/DOWN key codes. This is a multiplicative factor. The default steps the frequency up/down by a musical minor third. |
| `AUDIO_CLICKY_FREQ_RANDOMNESS` | 0.05f | Sets a factor of randomness for the clicks, Setting this to `0f` will make each click identical, and `1.0f` will make this sound much like the 90's computer screen scrolling/typing effect. |
| `AUDIO_CLICKY_DELAY_DURATION` | 1 | An integer note duration where 1 is 1/16th of the tempo, or a sixty-fourth note (see `quantum/audio/musical_notes.h` for implementation details). The main clicky effect will be delayed by this duration. Adjusting this to values around 6-12 will help compensate for loud switches. |

View File

@@ -171,7 +171,7 @@ BACKLIGHT_DRIVER = software
#### Multiple Backlight Pins :id=multiple-backlight-pins
Most keyboards have only one backlight pin which control all backlight LEDs (especially if the backlight is connected to an hardware PWM pin).
Most keyboards have only one backlight pin which controls all backlight LEDs (especially if the backlight is connected to a hardware PWM pin).
In software PWM, it is possible to define multiple backlight pins, which will be turned on and off at the same time during the PWM duty cycle.
This feature allows to set, for instance, the Caps Lock LED's (or any other controllable LED) brightness at the same level as the other LEDs of the backlight. This is useful if you have mapped Control in place of Caps Lock and you need the Caps Lock LED to be part of the backlight instead of being activated when Caps Lock is on, as it is usually wired to a separate pin from the backlight.

View File

@@ -19,12 +19,10 @@ These functions allow you to activate layers in various ways. Note that layers a
### Caveats :id=caveats
Currently, `LT()` and `MT()` are limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. Specifically, dual function keys like `LT` and `MT` use a 16 bit keycode. 4 bits are used for the function identifier, the next 12 are divided into the parameters. Layer Tap uses 4 bits for the layer (and is why it's limited to layers 0-15, actually), while Mod Tap does the same, 4 bits for the identifier, 4 bits for which mods are used, and all of them use 8 bits for the keycode. Because of this, the keycode used is limited to `0xFF` (0-255), which are the basic keycodes only.
Currently, the `layer` argument of `LT()` is limited to layers 0-15, and the `kc` argument to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 4 bits are used for the function identifier and 4 bits for the layer, leaving only 8 bits for the keycode.
Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
Additionally, if at least one right-handed modifier is specified in a Mod Tap or Layer Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two.
## Working with Layers :id=working-with-layers
Care must be taken when switching layers, it's possible to lock yourself into a layer with no way to deactivate that layer (without unplugging your keyboard.) We've created some guidelines to help users avoid the most common problems.

View File

@@ -254,6 +254,9 @@ enum rgb_matrix_effects {
RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard
RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue
RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation
RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back
RGB_MATRIX_HUE_PENDULUM, // Hue shifts up a slight ammount in a wave to the right, then back to the left
RGB_MATRIX_HUE_WAVE, // Hue shifts up a slight ammount and then back down in a wave to the right
#if define(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
RGB_MATRIX_TYPING_HEATMAP, // How hot is your WPM!
RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation
@@ -281,8 +284,10 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|Define |Description |
|-------------------------------------------------------|-----------------------------------------------|
|`#define DISABLE_RGB_MATRIX_SOLID_COLOR` |Disables `RGB_MATRIX_SOLID_COLOR` |
|`#define DISABLE_RGB_MATRIX_ALPHAS_MODS` |Disables `RGB_MATRIX_ALPHAS_MODS` |
|`#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN` |Disables `RGB_MATRIX_GRADIENT_UP_DOWN` |
|`#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT` |Disables `MATRIX_GRADIENT_LEFT_RIGHT` |
|`#define DISABLE_RGB_MATRIX_BREATHING` |Disables `RGB_MATRIX_BREATHING` |
|`#define DISABLE_RGB_MATRIX_BAND_SAT` |Disables `RGB_MATRIX_BAND_SAT` |
|`#define DISABLE_RGB_MATRIX_BAND_VAL` |Disables `RGB_MATRIX_BAND_VAL` |
@@ -293,20 +298,23 @@ You can disable a single effect by defining `DISABLE_[EFFECT_NAME]` in your `con
|`#define DISABLE_RGB_MATRIX_CYCLE_ALL` |Disables `RGB_MATRIX_CYCLE_ALL` |
|`#define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT` |Disables `RGB_MATRIX_CYCLE_LEFT_RIGHT` |
|`#define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN` |Disables `RGB_MATRIX_CYCLE_UP_DOWN` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN` |Disables `RGB_MATRIX_CYCLE_OUT_IN` |
|`#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL` |Disables `RGB_MATRIX_CYCLE_OUT_IN_DUAL` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |Disables `RGB_MATRIX_RAINBOW_MOVING_CHEVRON` |
|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` |
|`#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL` |Disables `RGB_MATRIX_CYCLE_PINWHEEL` |
|`#define DISABLE_RGB_MATRIX_CYCLE_SPIRAL` |Disables `RGB_MATRIX_CYCLE_SPIRAL` |
|`#define DISABLE_RGB_MATRIX_DUAL_BEACON` |Disables `RGB_MATRIX_DUAL_BEACON` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_BEACON` |Disables `RGB_MATRIX_RAINBOW_BEACON` |
|`#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Disables `RGB_MATRIX_RAINBOW_PINWHEELS` |
|`#define DISABLE_RGB_MATRIX_RAINDROPS` |Disables `RGB_MATRIX_RAINDROPS` |
|`#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Disables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|`#define DISABLE_RGB_MATRIX_HUE_BREATHING` |Disables `RGB_MATRIX_HUE_BREATHING` |
|`#define DISABLE_RGB_MATRIX_HUE_PENDULUM` |Disables `RGB_MATRIX_HUE_PENDULUM` |
|`#define DISABLE_RGB_MATRIX_HUE_WAVE ` |Disables `RGB_MATRIX_HUE_WAVE ` |
|`#define DISABLE_RGB_MATRIX_TYPING_HEATMAP` |Disables `RGB_MATRIX_TYPING_HEATMAP` |
|`#define DISABLE_RGB_MATRIX_DIGITAL_RAIN` |Disables `RGB_MATRIX_DIGITAL_RAIN` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |Disables `RGB_MATRIX_SOLID_REACTIVE_SIMPLE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE` |Disables `RGB_MATRIX_SOLID_REACTIVE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_WIDE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |Disables `RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE` |
|`#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS` |Disables `RGB_MATRIX_SOLID_REACTIVE_CROSS` |

View File

@@ -76,7 +76,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
};
// Add tap dance item in place of a key code
// Add tap dance item to your keymap in place of a keycode
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ...
TD(TD_ESC_CAPS)
@@ -206,20 +206,22 @@ You will need a few things that can be used for 'Quad Function Tap-Dance'.
You'll need to add these to the top of your `keymap.c` file, before your keymap.
```c
typedef enum {
TD_NONE,
TD_UNKNOWN,
TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_TAP,
TD_DOUBLE_HOLD,
TD_DOUBLE_SINGLE_TAP, // Send two single taps
TD_TRIPLE_TAP,
TD_TRIPLE_HOLD
} td_state_t;
typedef struct {
bool is_press_action;
uint8_t state;
} tap;
enum {
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP,
DOUBLE_HOLD,
DOUBLE_SINGLE_TAP, // Send two single taps
TRIPLE_TAP,
TRIPLE_HOLD
};
td_state_t state;
} td_tap_t;
// Tap dance enums
enum {
@@ -227,7 +229,7 @@ enum {
SOME_OTHER_DANCE
};
uint8_t cur_dance(qk_tap_dance_state_t *state);
td_state_t cur_dance(qk_tap_dance_state_t *state);
// For the x tap dance. Put it here so it can be used in any keymap
void x_finished(qk_tap_dance_state_t *state, void *user_data);
@@ -261,61 +263,61 @@ Now, at the bottom of your `keymap.c` file, you'll need to add the following:
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
* letter 'p', the word 'pepper' would be quite frustating to type.
*
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
* For the third point, there does exist the 'TD_DOUBLE_SINGLE_TAP', however this is not fully tested
*
*/
uint8_t cur_dance(qk_tap_dance_state_t *state) {
td_state_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
// Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'.
else return SINGLE_HOLD;
else return TD_SINGLE_HOLD;
} else if (state->count == 2) {
// DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
// TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
// action when hitting 'pp'. Suggested use case for this return value is when you want to send two
// keystrokes of the key, and not the 'double tap' action/macro.
if (state->interrupted) return DOUBLE_SINGLE_TAP;
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
if (state->interrupted) return TD_DOUBLE_SINGLE_TAP;
else if (state->pressed) return TD_DOUBLE_HOLD;
else return TD_DOUBLE_TAP;
}
// Assumes no one is trying to type the same letter three times (at least not quickly).
// If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
// an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
// an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP'
if (state->count == 3) {
if (state->interrupted || !state->pressed) return TRIPLE_TAP;
else return TRIPLE_HOLD;
} else return 8; // Magic number. At some point this method will expand to work for more presses
if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP;
else return TD_TRIPLE_HOLD;
} else return TD_UNKNOWN;
}
// Create an instance of 'tap' for the 'x' tap dance.
static tap xtap_state = {
// Create an instance of 'td_tap_t' for the 'x' tap dance.
static td_tap_t xtap_state = {
.is_press_action = true,
.state = 0
.state = TD_NONE
};
void x_finished(qk_tap_dance_state_t *state, void *user_data) {
xtap_state.state = cur_dance(state);
switch (xtap_state.state) {
case SINGLE_TAP: register_code(KC_X); break;
case SINGLE_HOLD: register_code(KC_LCTRL); break;
case DOUBLE_TAP: register_code(KC_ESC); break;
case DOUBLE_HOLD: register_code(KC_LALT); break;
case TD_SINGLE_TAP: register_code(KC_X); break;
case TD_SINGLE_HOLD: register_code(KC_LCTRL); break;
case TD_DOUBLE_TAP: register_code(KC_ESC); break;
case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
// Last case is for fast typing. Assuming your key is `f`:
// For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
// In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
case DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
case TD_DOUBLE_SINGLE_TAP: tap_code(KC_X); register_code(KC_X);
}
}
void x_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (xtap_state.state) {
case SINGLE_TAP: unregister_code(KC_X); break;
case SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case DOUBLE_TAP: unregister_code(KC_ESC); break;
case DOUBLE_HOLD: unregister_code(KC_LALT);
case DOUBLE_SINGLE_TAP: unregister_code(KC_X);
case TD_SINGLE_TAP: unregister_code(KC_X); break;
case TD_SINGLE_HOLD: unregister_code(KC_LCTRL); break;
case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
case TD_DOUBLE_HOLD: unregister_code(KC_LALT);
case TD_DOUBLE_SINGLE_TAP: unregister_code(KC_X);
}
xtap_state.state = 0;
xtap_state.state = TD_NONE;
}
qk_tap_dance_action_t tap_dance_actions[] = {
@@ -343,9 +345,11 @@ enum td_keycodes {
// Define a type containing as many tapdance states as you need
typedef enum {
SINGLE_TAP,
SINGLE_HOLD,
DOUBLE_SINGLE_TAP
TD_NONE,
TD_UNKNOWN,
TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_SINGLE_TAP
} td_state_t;
// Create a global instance of the tapdance state type
@@ -354,7 +358,7 @@ static td_state_t td_state;
// Declare your tapdance functions:
// Function to determine the current tapdance state
uint8_t cur_dance(qk_tap_dance_state_t *state);
td_state_t cur_dance(qk_tap_dance_state_t *state);
// `finished` and `reset` functions for each tapdance keycode
void altlp_finished(qk_tap_dance_state_t *state, void *user_data);
@@ -365,14 +369,14 @@ Below your `LAYOUT`, define each of the tapdance functions:
```c
// Determine the tapdance state to return
uint8_t cur_dance(qk_tap_dance_state_t *state) {
td_state_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (state->interrupted || !state->pressed) return SINGLE_TAP;
else return SINGLE_HOLD;
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
else return TD_SINGLE_HOLD;
}
if (state->count == 2) return DOUBLE_SINGLE_TAP;
else return 3; // Any number higher than the maximum state value you return above
if (state->count == 2) return TD_DOUBLE_SINGLE_TAP;
else return TD_UNKNOWN; // Any number higher than the maximum state value you return above
}
// Handle the possible states for each tapdance keycode you define:
@@ -380,13 +384,13 @@ uint8_t cur_dance(qk_tap_dance_state_t *state) {
void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
td_state = cur_dance(state);
switch (td_state) {
case SINGLE_TAP:
case TD_SINGLE_TAP:
register_code16(KC_LPRN);
break;
case SINGLE_HOLD:
case TD_SINGLE_HOLD:
register_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_on(_MY_LAYER)` here
break;
case DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term
case TD_DOUBLE_SINGLE_TAP: // Allow nesting of 2 parens `((` within tapping term
tap_code16(KC_LPRN);
register_code16(KC_LPRN);
}
@@ -394,13 +398,13 @@ void altlp_finished(qk_tap_dance_state_t *state, void *user_data) {
void altlp_reset(qk_tap_dance_state_t *state, void *user_data) {
switch (td_state) {
case SINGLE_TAP:
case TD_SINGLE_TAP:
unregister_code16(KC_LPRN);
break;
case SINGLE_HOLD:
case TD_SINGLE_HOLD:
unregister_mods(MOD_BIT(KC_LALT)); // For a layer-tap key, use `layer_off(_MY_LAYER)` here
break;
case DOUBLE_SINGLE_TAP:
case TD_DOUBLE_SINGLE_TAP:
unregister_code16(KC_LPRN);
}
}
@@ -420,17 +424,19 @@ Tap Dance can be used to mimic MO(layer) and TG(layer) functionality. For this e
The first step is to include the following code towards the beginning of your `keymap.c`:
```c
// Define a type for as many tap dance states as you need
typedef enum {
TD_NONE,
TD_UNKNOWN,
TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_TAP
} td_state_t;
typedef struct {
bool is_press_action;
uint8_t state;
} tap;
// Define a type for as many tap dance states as you need
enum {
SINGLE_TAP = 1,
SINGLE_HOLD,
DOUBLE_TAP
};
td_state_t state;
} td_tap_t;
enum {
QUOT_LAYR, // Our custom tap dance key; add any other tap dance keys to this enum
@@ -439,7 +445,7 @@ enum {
// Declare the functions to be used with your tap dance key(s)
// Function associated with all tap dances
uint8_t cur_dance(qk_tap_dance_state_t *state);
td_state_t cur_dance(qk_tap_dance_state_t *state);
// Functions associated with individual tap dances
void ql_finished(qk_tap_dance_state_t *state, void *user_data);
@@ -450,31 +456,31 @@ Towards the bottom of your `keymap.c`, include the following code:
```c
// Determine the current tap dance state
uint8_t cur_dance(qk_tap_dance_state_t *state) {
td_state_t cur_dance(qk_tap_dance_state_t *state) {
if (state->count == 1) {
if (!state->pressed) return SINGLE_TAP;
else return SINGLE_HOLD;
} else if (state->count == 2) return DOUBLE_TAP;
else return 8;
if (!state->pressed) return TD_SINGLE_TAP;
else return TD_SINGLE_HOLD;
} else if (state->count == 2) return TD_DOUBLE_TAP;
else return TD_UNKNOWN;
}
// Initialize tap structure associated with example tap dance key
static tap ql_tap_state = {
static td_tap_t ql_tap_state = {
.is_press_action = true,
.state = 0
.state = TD_NONE
};
// Functions that control what our tap dance key does
void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
ql_tap_state.state = cur_dance(state);
switch (ql_tap_state.state) {
case SINGLE_TAP:
case TD_SINGLE_TAP:
tap_code(KC_QUOT);
break;
case SINGLE_HOLD:
case TD_SINGLE_HOLD:
layer_on(_MY_LAYER);
break;
case DOUBLE_TAP:
case TD_DOUBLE_TAP:
// Check to see if the layer is already set
if (layer_state_is(_MY_LAYER)) {
// If already set, then switch it off
@@ -489,10 +495,10 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
void ql_reset(qk_tap_dance_state_t *state, void *user_data) {
// If the key was held down and now is released then switch off the layer
if (ql_tap_state.state == SINGLE_HOLD) {
if (ql_tap_state.state == TD_SINGLE_HOLD) {
layer_off(_MY_LAYER);
}
ql_tap_state.state = 0;
ql_tap_state.state = TD_NONE;
}
// Associate our tap dance key with its functionality
@@ -505,7 +511,7 @@ The above code is similar to that used in previous examples. The one point to no
The use of `cur_dance()` and `ql_tap_state` mirrors the above examples.
The `case:SINGLE_TAP` in `ql_finished` is similar to the above examples. The `SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
The `case: TD_SINGLE_TAP` in `ql_finished` is similar to the above examples. The `TD_SINGLE_HOLD` case works in conjunction with `ql_reset()` to switch to `_MY_LAYER` while the tap dance key is held, and to switch away from `_MY_LAYER` when the key is released. This mirrors the use of `MO(_MY_LAYER)`. The `TD_DOUBLE_TAP` case works by checking whether `_MY_LAYER` is the active layer, and toggling it on or off accordingly. This mirrors the use of `TG(_MY_LAYER)`.
`tap_dance_actions[]` works similar to the above examples. Note that I used `ACTION_TAP_DANCE_FN_ADVANCED_TIME()` instead of `ACTION_TAP_DANCE_FN_ADVANCED()`. This is because I like my `TAPPING_TERM` to be short (\~175ms) for my non-tap-dance keys but find that this is too quick for me to reliably complete tap dance actions - thus the increased time of 275ms here.

View File

@@ -22,8 +22,8 @@ The `<target>` means the following
The following targets are for developers:
* `show-path` shows the path of the source and object files.
* `dump-vars` dumps the makefile variable.
* `show_path` shows the path of the source and object files.
* `dump_vars` dumps the makefile variable.
* `objs-size` displays the size of individual object files.
* `show_build_options` shows the options set in 'rules.mk'.
* `check-md5` displays the md5 checksum of the generated binary file.

View File

@@ -50,11 +50,13 @@ For convenience, QMK includes some Mod-Tap shortcuts to make common combinations
## Caveats
Unfortunately, these keycodes cannot be used in Mod-Taps or Layer-Taps, since any modifiers specified in the keycode are ignored.
Currently, the `kc` argument of `MT()` is limited to the [Basic Keycode set](keycodes_basic.md), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 3 bits are used for the function identifier, 1 bit for selecting right or left mods, and 4 bits to tell which mods are used, leaving only 8 bits for the keycode. Additionally, if at least one right-handed modifier is specified in a Mod-Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two - for example, Left Control and Right Shift would become Right Control and Right Shift.
Additionally, you may run into issues when using Remote Desktop Connection on Windows. Because these codes send shift very fast, Remote Desktop may miss the codes.
Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance.md#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab. In the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
You may also run into issues when using Remote Desktop Connection on Windows. Because these keycodes send key events faster than a human, Remote Desktop could miss them.
To fix this, open Remote Desktop Connection, click on "Show Options", open the the "Local Resources" tab, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly.
It can also be mitigated by increasing [`TAP_CODE_DELAY`](config_options.md#behaviors-that-can-be-configured).
## Other Resources

View File

@@ -65,7 +65,7 @@ For example, the `planck/rev5` with a `default` keymap will have this filename:
planck_rev5_default.hex
```
Once you have located your firmware file drag it into the "Local file" box in QMK Toolbox, or click "Open" and navigate to where your firmware file is stored.
Once you have located your firmware file, drag it into the "Local file" box in QMK Toolbox, or click "Open" and navigate to where your firmware file is stored.
### Flash Your Keyboard

View File

@@ -70,6 +70,8 @@ Install the QMK CLI by running:
### ** Linux/WSL **
?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197).
#### Prerequisites
You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them:
@@ -170,7 +172,7 @@ Once that completes, re-run `qmk setup` to complete the setup and checks.
?> The qmk home folder can be specified at setup with `qmk setup -H <path>`, and modified afterwards using the [cli configuration](cli_configuration.md?id=single-key-example) and the variable `user.qmk_home`. For all available options run `qmk setup --help`.
?> If you already know [how to use GitHub](getting_started_github.md), we recommend that you create your own fork and use `qmk setup <github_username>/qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message.
?> If you already know how to use GitHub, [we recommend that you follow these instructions](getting_started_github.md) and use `qmk setup <github_username>/qmk_firmware` to clone your personal fork. If you don't know what that means you can safely ignore this message.
## 4. Test Your Build Environment

View File

@@ -50,7 +50,7 @@ This is the most important plugin as it will allow Eclipse to _understand_ AVR C
### [ANSI Escape in Console](https://marketplace.eclipse.org/content/ansi-escape-console)
This plugin is necessary to properly display the colored build output generated by the QMK makefile.
1. Open <kbd><kbd>Help</kbd> > <kbd>Eclipse Marketplace…</kbd></kbd>
1. Open <kbd>Help</kbd> > <kbd>Eclipse Marketplace…</kbd>
2. Search for _ANSI Escape in Console_
3. Click the <samp>Install</samp> button of the plugin
4. Follow the instructions and agree again with the security warning for unsigned content.
@@ -59,7 +59,7 @@ Once both plugins are installed, restart Eclipse as prompted.
# Configure Eclipse for QMK
## Importing the Project
1. Click <kbd><kbd>File</kbd> > <kbd>New</kbd> > <kbd>Makefile Project with Existing Code</kbd></kbd>
1. Click <kbd>File</kbd> > <kbd>New</kbd> > <kbd>Makefile Project with Existing Code</kbd>
2. On the next screen:
* Select the directory where you cloned the repository as _Existing Code Location_;
* (Optional) Give a different name to the project¹, e.g. _QMK_ or _Quantum_;
@@ -73,16 +73,18 @@ Once both plugins are installed, restart Eclipse as prompted.
¹ There might be issues for importing the project with a custom name. If it does not work properly, try leaving the default project name (i.e. the name of the directory, probably `qmk_firmware`).
## Build Your Keyboard
We will now configure a make target that cleans the project and builds the keymap of your choice.
1. On the right side of the screen, select the <kbd>Make Target</kbd> tab
2. Expand the folder structure to the keyboard of your choice, e.g. `qmk_firmware/keyboards/ergodox`
3. Right-click on the keyboard folder and select <kbd>New…</kbd> (or select the folder and click the <kbd>New Make Target</kbd> icon above the tree)
4. Choose a name for your build target, e.g. _clean \<your keymap\>_
5. Make Target: this is the arguments that you give to `make` when building from the command line. If your target name does not match these arguments, uncheck <kbd>Same as target name</kbd> and input the correct arguments, e.g. `clean <your keymap>`
6. Leave the other options checked and click <kbd>OK</kbd>. Your make target will now appear under the selected keyboard.
7. (Optional) Toggle the <kbd>Hide Empty Folders</kbd> icon button above the targets tree to only show your build target.
8. Double-click the build target you created to trigger a build.
9. Select the <kbd>Console</kbd> view at the bottom to view the running build.
We will now change the default make target of the the project from `all` to the
specific keyboard and keymap combination we are working on,
e.g. `kinesis/kint36:stapelberg`. This way, project-wide actions like cleaning
and building the project will complete quickly, instead of taking a long time or
outright locking up Eclipse.
1. Focus an editor tab within the project
2. Open the `Project` > `Properties` window, then select the `C/C++ Build` list
entry and switch to the `Behavior` tab.
3. Change the default `Make build target` text fields for all enabled builds
from `all` to e.g. `kinesis/kint41:stapelberg`.
4. Verify your setup works by selecting `Project` > `Clean...`.
[1]: https://en.wikipedia.org/wiki/Eclipse_(software)

View File

@@ -68,6 +68,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- bare minimum required code for a board to boot into QMK should be present
- initialisation code for the matrix and critical devices
- mirroring existing functionality of a commercial board (like custom keycodes and special animations etc.) should be handled through non-`default` keymaps
- VIAL-related files or changes will not be accepted, as they are not used by QMK firmware (no VIAL-specific core code has been submitted or merged)
- `keyboard.c`
- empty `xxxx_xxxx_kb()` or other weak-defined default implemented functions removed
- commented-out functions removed too
@@ -94,6 +95,8 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- standard layouts preferred in these keymaps, if possible
- submitters can have a personal (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap
- submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board
- Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards)
Also, specific to ChibiOS:
- **strong** preference to using existing ChibiOS board definitions.
@@ -127,3 +130,9 @@ There are instructions on how to keep your fork updated here:
Thanks for contributing!
```
## Review Process
In general, we want to see two (or more) approvals that are meaningful (e.g. that have inspected code) before a PR will be considered for merge. These reviews are not limited to collaborators -- any community member willing to put in the time is welcomed (and encouraged). The only difference is that your checkmark won't be green, and that's fine!
Additionally, PR reviews are something that is done in our free time. We are not paid nor compensated for the time we spend reviewing, as it is a labor of love. As such, this means that it can take time for us to get to your Pull Request. Things like family, or life can get in the way of us getting to PRs, and burnout is a serious concern. The QMK firmware repository averages 200 PRs opened and 200 PRs merged every month, so please have patience.

View File

@@ -206,6 +206,8 @@ void clear_screen(void) {
send_data(0);
}
}
memset(micro_oled_screen_current, 0, LCDWIDTH * LCDHEIGHT / 8);
}
/** \brief Clear SSD1306's memory.

View File

@@ -36,12 +36,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
{ E6, B4, B2 } \
}
#define TAP_CODE_DELAY 10
#define ENCODER_DIRECTION_FLIP
#define ENCODER_RESOLUTION 4
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define BACKLIGHT_PIN B5
// #define BACKLIGHT_BREATHING
#define BACKLIGHT_BREATHING
#define BACKLIGHT_LEVELS 7
#define RGB_DI_PIN D3
@@ -52,8 +53,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
#define RGBLIGHT_ANIMATIONS
// #define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
@@ -65,6 +70,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_RESYNC_ENABLE
/* Oled Size */
#define OLED_DISPLAY_128X64
#define OLED_FONT_END 255
#define OLED_FONT_H "gfxfont.c"
/* QMK DFU */
#define QMK_LED B0

View File

@@ -0,0 +1,276 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "progmem.h"
static const unsigned char font[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0x00, 0xE0, 0xFC, 0x1E, 0x06, 0xC6,
0xC6, 0x06, 0x1E, 0xFC, 0xE0, 0x00,
0x00, 0x00, 0x60, 0xE0, 0x80, 0x00,
0x00, 0x80, 0xE0, 0x60, 0x00, 0x00,
0x00, 0x00, 0xE0, 0xF8, 0x3C, 0x0E,
0x06, 0x06, 0x06, 0x0E, 0x0C, 0x00,
0x00, 0x00, 0xFE, 0xFE, 0x86, 0x86,
0x86, 0x86, 0x8C, 0x78, 0x70, 0x00,
0x00, 0x0E, 0x0E, 0x06, 0x06, 0xFE,
0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0C, 0x8E, 0x86, 0x86, 0x86,
0x86, 0x86, 0xCE, 0xFE, 0x7C, 0x00,
0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
0x06, 0xE6, 0xE6, 0x3E, 0x3E, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x06, 0x78, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0x1C, 0x02, 0x01, 0x04, 0x18,
0x00, 0x00, 0x00, 0x02, 0x0C, 0x00,
0x80, 0x80, 0x71, 0x02, 0x1C, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x78, 0x06, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
0x00, 0x00, 0xFC, 0xFC, 0xFC, 0xFC,
0xFC, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0,
0x00, 0x00, 0x40, 0xF0, 0xFC, 0xFF,
0xFF, 0xFC, 0xF0, 0xC0, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x3F, 0x78, 0x60, 0x63,
0x63, 0x60, 0x78, 0x3F, 0x07, 0x00,
0x00, 0x00, 0x60, 0x79, 0x19, 0x06,
0x06, 0x19, 0x79, 0x60, 0x00, 0x00,
0x00, 0x00, 0x07, 0x1F, 0x3C, 0x70,
0x60, 0x60, 0x60, 0x70, 0x30, 0x00,
0x00, 0x00, 0x7F, 0x7F, 0x61, 0x61,
0x61, 0x61, 0x31, 0x1E, 0x0E, 0x00,
0x00, 0x60, 0x60, 0x60, 0x60, 0x7F,
0x7F, 0x60, 0x60, 0x60, 0x60, 0x00,
0x00, 0x30, 0x71, 0x61, 0x61, 0x61,
0x61, 0x61, 0x73, 0x7F, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7F,
0x7F, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0xBC,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x87, 0x38, 0x40, 0x80, 0x08, 0x08,
0x08, 0x04, 0x04, 0x02, 0x02, 0x01,
0x00, 0x00, 0x80, 0x40, 0x38, 0x87,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0xBC, 0x03, 0x00, 0x00, 0x00, 0x00,
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0,
0xFC, 0xFE, 0xFC, 0xF8, 0xF9, 0xF3,
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x70, 0xD0, 0x70, 0x00, 0x07, 0x05,
0x07, 0x02, 0x02, 0x82, 0xC2, 0x42,
0x7E, 0xC0, 0xC0, 0xC0, 0x40, 0x7E,
0x42, 0xC2, 0x82, 0x02, 0x02, 0x07,
0x05, 0x07, 0x00, 0x70, 0xD0, 0x70,
0x00, 0x00, 0x00, 0x80, 0x40, 0x20,
0x10, 0xC8, 0xC8, 0x84, 0x04, 0x02,
0x02, 0x02, 0x02, 0xC2, 0xC2, 0xC2,
0xC2, 0xC4, 0xC4, 0xC8, 0x88, 0x90,
0x20, 0x40, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xFD, 0x05, 0x04, 0x04, 0x04,
0x1F, 0x30, 0x40, 0x87, 0x9F, 0x1F,
0x01, 0x81, 0xFF, 0xFF, 0x00, 0x00,
0x1E, 0x9E, 0x86, 0x40, 0x30, 0x1F,
0x04, 0x04, 0x04, 0x05, 0xFD, 0x01,
0x00, 0x0F, 0x70, 0x80, 0x00, 0x00,
0x00, 0x00, 0x80, 0xE0, 0xF8, 0x3E,
0x0F, 0x03, 0x00, 0xFF, 0xFF, 0x01,
0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
0x00, 0x00, 0x80, 0x70, 0x0F, 0x00,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00,
0xC0, 0xF0, 0xFC, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0x03, 0x03,
0x03, 0x03, 0x07, 0xFF, 0xFF, 0xFF,
0xDF, 0x9F, 0x3F, 0x3C, 0x70, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xC0, 0x5F, 0xD0, 0x90, 0x90, 0x90,
0xFC, 0x06, 0x01, 0xF8, 0xFC, 0xFC,
0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00,
0x3C, 0x3C, 0x30, 0x01, 0x06, 0xFC,
0x90, 0x90, 0x90, 0xD0, 0x5F, 0xC0,
0x00, 0xF0, 0x0E, 0x01, 0x00, 0x00,
0x00, 0x00, 0x01, 0x03, 0x07, 0x1E,
0x3C, 0xF0, 0xE0, 0xFF, 0xFF, 0x80,
0x80, 0x80, 0x80, 0xC1, 0xC1, 0xFF,
0x3E, 0x00, 0x01, 0x0E, 0xF0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x05, 0x07, 0x00, 0x70, 0x50,
0x70, 0x20, 0x20, 0x20, 0x21, 0x3F,
0x01, 0x61, 0x9F, 0x9F, 0x61, 0x01,
0x3F, 0x21, 0x20, 0x20, 0x20, 0x70,
0x50, 0x70, 0x00, 0x07, 0x05, 0x07,
0x00, 0x00, 0x00, 0x01, 0x02, 0x04,
0x08, 0x10, 0x13, 0x23, 0x20, 0x40,
0x40, 0x40, 0x40, 0x43, 0x43, 0x40,
0x40, 0x20, 0x20, 0x10, 0x10, 0x08,
0x04, 0x02, 0x01, 0x00, 0x00, 0x00,
0x07, 0x07, 0x07, 0x07, 0x0F, 0x0F,
0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x3F,
0x3F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF,
0x00, 0x80, 0xC0, 0x70, 0x7C, 0x3F,
0x3F, 0x1F, 0x0F, 0x0F, 0x07, 0x07,
0x07, 0x03, 0x03, 0x02, 0x00, 0x00,
0x00, 0x00, 0x02, 0x03, 0x03, 0x07,
0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E,
0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00,
};

View File

@@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include <stdio.h>
enum layer_names {
_HOME,
@@ -51,11 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_RGB)) {
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
#ifdef RGBLIGHT_ENABLE
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
#endif
} else if (IS_LAYER_ON(_BLED)) {
if (clockwise) {
backlight_increase();
@@ -82,74 +85,27 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
}
static void render_logo(void) {
static const char PROGMEM logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
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, 0x80, 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, 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,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05,
0xf8, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78,
0x38, 0x3f, 0x1c, 0x0e, 0x0e, 0x0e, 0xfe, 0x0e, 0x0e, 0x1e, 0x1c, 0x3f, 0x38, 0x78, 0x70, 0xe0,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0xf8, 0x05, 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, 0x40, 0xa0,
0x13, 0xa2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc,
0xfe, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3c, 0x3c, 0x00, 0x00,
0x01, 0xff, 0xff, 0xff, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xa2, 0x13, 0xa0, 0x40, 0x00,
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x80, 0xc0, 0x40,
0x40, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf9, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x0f,
0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x0e, 0x0e, 0x80, 0xc0,
0xc0, 0xff, 0xff, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf9, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x31, 0x40, 0x4e, 0x40, 0x31, 0x1f, 0x00, 0x00, 0x61, 0x16, 0x08, 0x16, 0x61,
0x00, 0x00, 0x1f, 0x31, 0x60, 0x40, 0x40, 0x60, 0x20, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x64, 0x3b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
0x40, 0x40, 0x00, 0x00, 0x00, 0x20, 0x64, 0x44, 0x44, 0x6e, 0x3b, 0x00, 0x00, 0x20, 0x64, 0x44,
0x44, 0x6e, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x08, 0x14,
0x23, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07,
0x0f, 0xfe, 0x1e, 0x1c, 0x1c, 0x1c, 0xff, 0x1c, 0x1c, 0x1c, 0x1e, 0xfe, 0x0f, 0x07, 0x03, 0x03,
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x11, 0x0a, 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, 0x10, 0x28, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x1f, 0x00, 0x00, 0x10, 0x28, 0x47, 0x28, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x28, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const char PROGMEM raw_logo[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
};
oled_write_raw_P(logo, sizeof(logo));
oled_write_P(qmk_logo, false);
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_info(void) {
@@ -174,16 +130,39 @@ static void render_info(void) {
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool full) {
#ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
if (full) {
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
#endif
}
void oled_task_user(void) {
static bool finished_timer = false;
if ((timer_elapsed(startup_timer) < 3000) && !finished_timer) {
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
render_logo();
} else {
finished_timer = true;
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_info();
render_rgbled_status(true);
render_logo_font();
}
}
#endif

View File

@@ -0,0 +1,168 @@
/*
Copyright 2021 0xCB - Conor Burns
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include <stdio.h>
enum layer_names {
_HOME,
_MISC,
_RGB,
_BLED
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_HOME] = LAYOUT(
KC_MPRV, KC_MNXT, KC_MPLY,
KC_PGUP, KC_PGDN, TO(3),
KC_HOME, KC_END, TO(1)
),
[_MISC] = LAYOUT(
_______, _______, _______,
_______, _______, TO(0),
_______, _______, TO(2)
),
[_RGB] = LAYOUT(
RGB_HUI, RGB_HUD, RGB_MOD,
RGB_SAI, RGB_SAD, TO(1),
RGB_SPI, RGB_SPD, TO(3)
),
[_BLED] = LAYOUT(
BL_STEP, BL_BRTG, BL_TOGG,
BL_ON, BL_OFF, TO(2),
BL_INC, BL_DEC, TO(0)
)
};
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_RGB)) {
#ifdef RGBLIGHT_ENABLE
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
#endif
} else if (IS_LAYER_ON(_BLED)) {
if (clockwise) {
backlight_increase();
} else {
backlight_decrease();
}
} else {
if (clockwise) {
tap_code16(C(A(KC_UP)));
} else {
tap_code16(C(A(KC_DOWN)));
}
}
}
#endif
/* oled stuff :) */
#ifdef OLED_DRIVER_ENABLE
uint16_t startup_timer;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
startup_timer = timer_read();
return rotation;
}
static void render_logo(void) {
static const char PROGMEM raw_logo[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
};
oled_write_P(qmk_logo, false);
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_info(void) {
oled_write_P(PSTR("Layer: "), false);
switch (get_highest_layer(layer_state)) {
case _HOME:
oled_write_ln_P(PSTR("HOME"), false);
break;
case _MISC:
oled_write_ln_P(PSTR("MISC"), false);
break;
case _RGB:
oled_write_ln_P(PSTR("RGB"), false);
break;
case _BLED:
oled_write_ln_P(PSTR("Backlight"), false);
break;
default:
oled_write_ln_P(PSTR("Undefined"), false);
}
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool full) {
#ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
if (full) {
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
#endif
}
void oled_task_user(void) {
static bool finished_timer = false;
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
render_logo();
} else {
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_info();
render_rgbled_status(true);
render_logo_font();
}
}
#endif

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#include <stdio.h>
enum layer_names {
_HOME,
@@ -51,11 +52,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef ENCODER_ENABLE
void encoder_update_user(uint8_t index, bool clockwise) {
if (IS_LAYER_ON(_RGB)) {
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
#ifdef RGBLIGHT_ENABLE
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
#endif
} else if (IS_LAYER_ON(_BLED)) {
if (clockwise) {
backlight_increase();
@@ -82,74 +85,27 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
}
static void render_logo(void) {
static const char PROGMEM logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
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, 0x80, 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, 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,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05,
0xf8, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x70, 0x78,
0x38, 0x3f, 0x1c, 0x0e, 0x0e, 0x0e, 0xfe, 0x0e, 0x0e, 0x1e, 0x1c, 0x3f, 0x38, 0x78, 0x70, 0xe0,
0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0xf8, 0x05, 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, 0x40, 0xa0,
0x13, 0xa2, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfc,
0xfe, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x3c, 0x3c, 0x00, 0x00,
0x01, 0xff, 0xff, 0xff, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xa2, 0x13, 0xa0, 0x40, 0x00,
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0xc0, 0x40, 0x40, 0xc0, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x80, 0xc0, 0x40,
0x40, 0xc0, 0x80, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf9, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x7f, 0xff, 0xff, 0xc0, 0x80, 0x80, 0x0f,
0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x0e, 0x0e, 0x80, 0xc0,
0xc0, 0xff, 0xff, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf9, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x31, 0x40, 0x4e, 0x40, 0x31, 0x1f, 0x00, 0x00, 0x61, 0x16, 0x08, 0x16, 0x61,
0x00, 0x00, 0x1f, 0x31, 0x60, 0x40, 0x40, 0x60, 0x20, 0x00, 0x00, 0x7f, 0x44, 0x44, 0x64, 0x3b,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
0x40, 0x40, 0x00, 0x00, 0x00, 0x20, 0x64, 0x44, 0x44, 0x6e, 0x3b, 0x00, 0x00, 0x20, 0x64, 0x44,
0x44, 0x6e, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x08, 0x14,
0x23, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x07, 0x07,
0x0f, 0xfe, 0x1e, 0x1c, 0x1c, 0x1c, 0xff, 0x1c, 0x1c, 0x1c, 0x1e, 0xfe, 0x0f, 0x07, 0x03, 0x03,
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x11, 0x0a, 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, 0x10, 0x28, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x1f, 0x00, 0x00, 0x10, 0x28, 0x47, 0x28, 0x10, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x28, 0x44, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const char PROGMEM raw_logo[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
static void render_logo_font(void) {
static const char PROGMEM qmk_logo[] = {
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
};
oled_write_raw_P(logo, sizeof(logo));
oled_write_P(qmk_logo, false);
}
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
static void render_info(void) {
@@ -174,16 +130,39 @@ static void render_info(void) {
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
static void render_rgbled_status(bool full) {
#ifdef RGBLIGHT_ENABLE
char buf[30];
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
if (full) {
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
rgblight_get_mode(),
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
rgblight_get_val()/RGBLIGHT_VAL_STEP);
} else {
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
}
oled_write(buf, false);
} else {
oled_write_ln_P(PSTR("\n"), false);
}
#endif
}
void oled_task_user(void) {
static bool finished_timer = false;
if ((timer_elapsed(startup_timer) < 3000) && !finished_timer) {
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
render_logo();
} else {
finished_timer = true;
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_info();
render_rgbled_status(true);
render_logo_font();
}
}
#endif

View File

@@ -0,0 +1,25 @@
{
"keyboard_name": "2Key2CrawlPad",
"url": "",
"maintainer": "qmk",
"width": 6.5,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K15", "x":4, "y":0},
{"label":"K10", "x":0, "y":1},
{"label":"K11", "x":1, "y":1},
{"label":"K12", "x":2, "y":1},
{"label":"K13", "x":3, "y":1},
{"label":"K14", "x":4, "y":1},
{"label":"K16", "x":5.5, "y":0.5}
]
}
}
}

View File

@@ -0,0 +1,197 @@
{
"keyboard_name": "40percent.club 4x4",
"url": "",
"maintainer": "qmk",
"height": 4,
"width": 4,
"layouts": {
"LAYOUT_ortho_4x4": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3}
]
},
"LAYOUT_ortho_4x8": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3}
]
},
"LAYOUT_ortho_4x12": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3}
]
},
"LAYOUT_ortho_4x16": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":12, "y":1},
{"x":13, "y":1},
{"x":14, "y":1},
{"x":15, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":2},
{"x":15, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3},
{"x":12, "y":3},
{"x":13, "y":3},
{"x":14, "y":3},
{"x":15, "y":3}
]
}
}
}

View File

@@ -0,0 +1,183 @@
{
"keyboard_name": "40percent.club 4x4",
"url": "",
"maintainer": "qmk",
"height": 4,
"width": 4,
"layouts": {
"LAYOUT_ortho_5x5": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4}
]
},
"LAYOUT_ortho_5x10": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4},
{"x":5, "y":4},
{"x":6, "y":4},
{"x":7, "y":4},
{"x":8, "y":4},
{"x":9, "y":4}
]
},
"LAYOUT_ortho_5x15": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1},
{"x":3, "y":1},
{"x":4, "y":1},
{"x":5, "y":1},
{"x":6, "y":1},
{"x":7, "y":1},
{"x":8, "y":1},
{"x":9, "y":1},
{"x":10, "y":1},
{"x":11, "y":1},
{"x":12, "y":1},
{"x":13, "y":1},
{"x":14, "y":1},
{"x":0, "y":2},
{"x":1, "y":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":2},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3},
{"x":12, "y":3},
{"x":13, "y":3},
{"x":14, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4},
{"x":5, "y":4},
{"x":6, "y":4},
{"x":7, "y":4},
{"x":8, "y":4},
{"x":9, "y":4},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13, "y":4},
{"x":14, "y":4}
]
}
}
}

View File

@@ -0,0 +1,81 @@
{
"keyboard_name": "AEKISO60 Rev A",
"url": "",
"maintainer": "4pplet",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0, "w":1.25},
{"x":1.25, "y":0},
{"x":2.25, "y":0},
{"x":3.25, "y":0},
{"x":4.25, "y":0},
{"x":5.25, "y":0},
{"x":6.25, "y":0},
{"x":7.25, "y":0},
{"x":8.25, "y":0},
{"x":9.25, "y":0},
{"x":10.25, "y":0},
{"x":11.25, "y":0},
{"x":12.25, "y":0},
{"x":13.25, "y":0, "w":1.75},
{"x":0, "y":1, "w":1.75},
{"x":1.75, "y":1},
{"x":2.75, "y":1},
{"x":3.75, "y":1},
{"x":4.75, "y":1},
{"x":5.75, "y":1},
{"x":6.75, "y":1},
{"x":7.75, "y":1},
{"x":8.75, "y":1},
{"x":9.75, "y":1},
{"x":10.75, "y":1},
{"x":11.75, "y":1},
{"x":12.75, "y":1},
{"x":0, "y":2, "w":2},
{"x":2, "y":2},
{"x":3, "y":2},
{"x":4, "y":2},
{"x":5, "y":2},
{"x":6, "y":2},
{"x":7, "y":2},
{"x":8, "y":2},
{"x":9, "y":2},
{"x":10, "y":2},
{"x":11, "y":2},
{"x":12, "y":2},
{"x":13, "y":2},
{"x":14, "y":1, "h":2},
{"x":0, "y":3, "w":1.5},
{"x":1.5, "y":3},
{"x":2.5, "y":3},
{"x":3.5, "y":3},
{"x":4.5, "y":3},
{"x":5.5, "y":3},
{"x":6.5, "y":3},
{"x":7.5, "y":3},
{"x":8.5, "y":3},
{"x":9.5, "y":3},
{"x":10.5, "y":3},
{"x":11.5, "y":3},
{"x":12.5, "y":3, "w":1.5},
{"x":14, "y":3},
{"x":0, "y":4, "w":1.5},
{"x":1.5, "y":4, "w":1.25},
{"x":2.75, "y":4, "w":1.5},
{"x":4.25, "y":4, "w":2.75},
{"x":7, "y":4},
{"x":8, "y":4, "w":2.75},
{"x":10.75, "y":4, "w":1.5},
{"x":12.25, "y":4, "w":1.25},
{"x":13.5, "y":4, "w":1.5}
]
}
}
}

View File

@@ -0,0 +1,87 @@
{
"keyboard_name": "Steezy60 Rev A",
"url": "",
"maintainer": "4pplet",
"width": 15,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2},
{"x":13.75, "y":2, "w":1.25},
{"x":0, "y":3},
{"x":1, "y":3},
{"x":2, "y":3},
{"x":3, "y":3},
{"x":4, "y":3},
{"x":5, "y":3},
{"x":6, "y":3},
{"x":7, "y":3},
{"x":8, "y":3},
{"x":9, "y":3},
{"x":10, "y":3},
{"x":11, "y":3},
{"x":12, "y":3},
{"x":13, "y":3},
{"x":14, "y":3},
{"x":0, "y":4},
{"x":1, "y":4},
{"x":2, "y":4},
{"x":3, "y":4},
{"x":4, "y":4, "w":2.25},
{"x":6.25, "y":4, "w":1.5},
{"x":7.75, "y":4, "w":2.25},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13, "y":4},
{"x":14, "y":4}
]
}
}
}

20
keyboards/6ball/info.json Normal file
View File

@@ -0,0 +1,20 @@
{
"keyboard_name": "6-Ball",
"url": "",
"maintainer": "qmk",
"width": 3,
"height": 3,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0.5},
{"x":1, "y":0},
{"x":2, "y":0.5},
{"x":0, "y":1.5},
{"x":1, "y":2},
{"x":2, "y":1.5}
]
}
}
}

View File

@@ -0,0 +1,210 @@
{
"keyboard_name": "Framework",
"url": "",
"maintainer": "stevennguyen",
"width": 12,
"height": 5,
"layouts": {
"LAYOUT_ortho_5x12": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4},
{"x": 5, "y": 4},
{"x": 6, "y": 4},
{"x": 7, "y": 4},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
},
"LAYOUT_ortho_5x12_1x2uC": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4},
{"x": 5, "y": 4, "w": 2},
{"x": 7, "y": 4},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
},
"LAYOUT_preonic_2x2u": {
"layout": [
{"x": 0, "y": 0},
{"x": 1, "y": 0},
{"x": 2, "y": 0},
{"x": 3, "y": 0},
{"x": 4, "y": 0},
{"x": 5, "y": 0},
{"x": 6, "y": 0},
{"x": 7, "y": 0},
{"x": 8, "y": 0},
{"x": 9, "y": 0},
{"x": 10, "y": 0},
{"x": 11, "y": 0},
{"x": 0, "y": 1},
{"x": 1, "y": 1},
{"x": 2, "y": 1},
{"x": 3, "y": 1},
{"x": 4, "y": 1},
{"x": 5, "y": 1},
{"x": 6, "y": 1},
{"x": 7, "y": 1},
{"x": 8, "y": 1},
{"x": 9, "y": 1},
{"x": 10, "y": 1},
{"x": 11, "y": 1},
{"x": 0, "y": 2},
{"x": 1, "y": 2},
{"x": 2, "y": 2},
{"x": 3, "y": 2},
{"x": 4, "y": 2},
{"x": 5, "y": 2},
{"x": 6, "y": 2},
{"x": 7, "y": 2},
{"x": 8, "y": 2},
{"x": 9, "y": 2},
{"x": 10, "y": 2},
{"x": 11, "y": 2},
{"x": 0, "y": 3},
{"x": 1, "y": 3},
{"x": 2, "y": 3},
{"x": 3, "y": 3},
{"x": 4, "y": 3},
{"x": 5, "y": 3},
{"x": 6, "y": 3},
{"x": 7, "y": 3},
{"x": 8, "y": 3},
{"x": 9, "y": 3},
{"x": 10, "y": 3},
{"x": 11, "y": 3},
{"x": 0, "y": 4},
{"x": 1, "y": 4},
{"x": 2, "y": 4},
{"x": 3, "y": 4},
{"x": 4, "y": 4, "w": 2},
{"x": 6, "y": 4, "w": 2},
{"x": 8, "y": 4},
{"x": 9, "y": 4},
{"x": 10, "y": 4},
{"x": 11, "y": 4}
]
}
}
}

View File

@@ -1 +1,2 @@
VIA_ENABLE = yes
VIA_ENABLE = yes
LEADER_ENABLE = no

View File

@@ -0,0 +1,85 @@
{
"keyboard_name": "Constellation",
"url": "",
"maintainer": "Xelus22",
"width": 16,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":15, "y":1},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"label":"\"", "x":11.75, "y":2},
{"x":12.75, "y":2, "w":2.25},
{"x":15, "y":2},
{"x":0, "y":3, "w":2.25},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":7.25, "y":3},
{"x":8.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3, "w":1.75},
{"x":14, "y":3},
{"x":15, "y":3},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
{"x":3.75, "y":4, "w":6.25},
{"x":10, "y":4, "w":1.5},
{"x":11.5, "y":4, "w":1.5},
{"x":13, "y":4},
{"x":14, "y":4},
{"x":15, "y":4}
]
}
}
}

View File

@@ -0,0 +1,87 @@
/* Copyright 2021 eithanshavit
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_names {
_MAIN,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
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_LEFT, KC_DOWN, KC_RIGHT,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_LOWER] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_RAISE] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
_______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[3] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
)
};

View File

@@ -0,0 +1,5 @@
# Default Breeze Layout + VIA support
![Breeze Layout Image](https://i.imgur.com/O8FJWD6.jpeg)
This is the default suggested layout for Breeze Split Keyboard, with VIA support.

View File

@@ -0,0 +1,10 @@
VIA_ENABLE = yes
# LTO: link time optimization makes the build take slightly longer
# but makes the resulting .hex file smaller, which allows you to
# fit more features into smaller MCUs:
LTO_ENABLE = yes
# Support for these features make the hex file larger, but we want 'em:
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Support USB N-key roll over.

View File

@@ -4,9 +4,9 @@
Split ergonomics meets productivity. Breeze Rev1 is a split keyboard with 6×4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered.
* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit)
* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs)
* Hardware Supported: Breeze Rev1 PCB
* Hardware Availability: Coming soon
* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com)
Make example for this keyboard (after setting up your build environment):

View File

@@ -9,8 +9,8 @@ BOOTLOADER = caterina
#
SPLIT_KEYBOARD = yes
BOOTMAGIC_ENABLE = lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = no # Audio control and System control
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE

View File

@@ -0,0 +1,22 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION

View File

@@ -0,0 +1,71 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_names {
_MAIN,
_LOWER,
_RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_LOWER] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, _______, _______
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
),
[_RAISE] = LAYOUT(
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
_______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
//└────────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
)
};

View File

@@ -0,0 +1,5 @@
# Default Ocean Breeze Layout
![Ocean Breeze Layout Image](https://i.imgur.com/cXGLDVQ.png)
This is the default suggested layout for Ocean Breeze Split Keyboard.

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "oceanbreeze.h"

View File

@@ -0,0 +1,21 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#ifdef KEYBOARD_afternoonlabs_oceanbreeze_rev1
# include "rev1.h"
#endif

View File

@@ -0,0 +1,49 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* USB Device descriptor parameter */
#define VENDOR_ID 0x616C
#define PRODUCT_ID 0x0003
#define DEVICE_VER 0x0001
#define MANUFACTURER AfternoonLabs
#define PRODUCT OceanBreeze
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 12
#define MATRIX_COLS 9
// wiring of each half
#define MATRIX_ROW_PINS \
{ F4, F5, F6, F7, B1, B6 }
#define MATRIX_COL_PINS \
{ B2, D1, D0, D4, C6, D7, E6, B4, B5 }
#define SPLIT_HAND_PIN B3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
#define SOFT_SERIAL_PIN D2
#define DIODE_DIRECTION COL2ROW
#define BOOTMAGIC_LITE_ROW_RIGHT 0
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
#define BOOTMAGIC_LITE_ROW_LEFT 0
#define BOOTMAGIC_LITE_COLUMN_LEFT 5

View File

@@ -0,0 +1,86 @@
{
"keyboard_name": "OceanBreeze",
"url": "afternoonlabs.com",
"productId": "0x0003",
"maintainer": "afternoonlabs",
"width": 19,
"height": 6,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0.375},
{"x":1, "y":0.375},
{"x":2, "y":0.125},
{"x":3, "y":0},
{"x":4, "y":0.125},
{"x":5, "y":0.25},
{"x":9.75, "y":0.25},
{"x":10.75, "y":0.125},
{"x":11.75, "y":0},
{"x":12.75, "y":0.125},
{"x":13.75, "y":0.375},
{"x":14.75, "y":0.375},
{"x":16, "y":0.375},
{"x":17, "y":0.375},
{"x":18, "y":0.375},
{"x":0, "y":1.375},
{"x":1, "y":1.375},
{"x":2, "y":1.125},
{"x":3, "y":1},
{"x":4, "y":1.125},
{"x":5, "y":1.25},
{"x":9.75, "y":1.25},
{"x":10.75, "y":1.125},
{"x":11.75, "y":1},
{"x":12.75, "y":1.125},
{"x":13.75, "y":1.375},
{"x":14.75, "y":1.375},
{"x":16, "y":1.375},
{"x":17, "y":1.375},
{"x":18, "y":1.375},
{"x":0, "y":2.375},
{"x":1, "y":2.375},
{"x":2, "y":2.125},
{"x":3, "y":2},
{"x":4, "y":2.125},
{"x":5, "y":2.25},
{"x":9.75, "y":2.25},
{"x":10.75, "y":2.125},
{"x":11.75, "y":2},
{"x":12.75, "y":2.125},
{"x":13.75, "y":2.375},
{"x":14.75, "y":2.375},
{"x":17, "y":2.375},
{"x":0, "y":3.375},
{"x":1, "y":3.375},
{"x":2, "y":3.125},
{"x":3, "y":3},
{"x":4, "y":3.125},
{"x":5, "y":3.25},
{"x":6.25, "y":3.75},
{"x":8.5, "y":3.75},
{"x":9.75, "y":3.25},
{"x":10.75, "y":3.125},
{"x":11.75, "y":3},
{"x":12.75, "y":3.125},
{"x":13.75, "y":3.375},
{"x":14.75, "y":3.375},
{"x":16, "y":3.375},
{"x":17, "y":3.375},
{"x":18, "y":3.375},
{"x":2.5, "y":4.25},
{"x":3.5, "y":4.25},
{"x":4.5, "y":4.5},
{"x":6.25, "y":4.75},
{"x":8.5, "y":4.75},
{"x":10.25, "y":4.5},
{"x":11.25, "y":4.25},
{"x":12.25, "y":4.25}
]
}
}
}

View File

@@ -0,0 +1,15 @@
# Breeze
![Ocean Breeze Layout Image](https://i.imgur.com/cXGLDVQ.png)
Special Edition of the [Breeze](https://afternoonlabs.com). This one has two 1Us instead of the larger 2U on the thumb cluster.
* Keyboard Maintainer: [AfternoonLabs](https://github.com/afternoonlabs)
* Hardware Supported: Ocean Breeze Rev1 PCB
* Hardware Availability: [store.afternoonlab.com](https://store.afternoonlabs.com)
Make example for this keyboard (after setting up your build environment):
make afternoonlabs/oceanbreeze/rev1:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1,17 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "oceanbreeze.h"

View File

@@ -0,0 +1,44 @@
/* Copyright 2021 Afternoon Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "oceanbreeze.h"
#include "quantum.h"
#define XXX KC_NO
#define LAYOUT( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \
L30, L31, L32, L33, L34, L35, LT4, RT1, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \
LT0, LT1, LT2, LT3, RT2, RT3, RT4, RT5 \
) { \
{ L05, L04, L03, L02, L01, L00, XXX, XXX, XXX }, \
{ L15, L14, L13, L12, L11, L10, XXX, XXX, XXX }, \
{ L25, L24, L23, L22, L21, L20, XXX, XXX, XXX }, \
{ L35, L34, L33, L32, L31, L30, XXX, XXX, XXX }, \
{ LT3, LT2, LT1, LT0, XXX, XXX, XXX, XXX, XXX }, \
{ LT4, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, \
{ R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \
{ R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \
{ R20, R21, R22, R23, R24, R25, XXX, AUP, XXX }, \
{ R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \
{ RT2, RT3, RT4, RT5, XXX, XXX, XXX, XXX, XXX }, \
{ RT1, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \
}

View File

@@ -0,0 +1,23 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
SPLIT_KEYBOARD = yes

View File

@@ -2,11 +2,86 @@
"keyboard_name": "zodiark",
"url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark",
"maintainer": "Aleblazer",
"width": 19,
"height": 8.48,
"width": 18,
"height": 6.25,
"layouts": {
"LAYOUT": {
"layout": [{"label":"L03", "x":3, "y":0}, {"label":"R03", "x":15, "y":0}, {"label":"L02", "x":2, "y":0.125}, {"label":"L04", "x":4, "y":0.125}, {"label":"R02", "x":14, "y":0.125}, {"label":"R04", "x":16, "y":0.125}, {"label":"L05", "x":5, "y":0.25}, {"label":"R01", "x":13, "y":0.25}, {"label":"L00", "x":0, "y":0.53}, {"label":"L01", "x":1, "y":0.53}, {"label":"R05", "x":17, "y":0.53}, {"label":"R06", "x":18, "y":0.53}, {"label":"L13", "x":3, "y":1}, {"label":"R13", "x":15, "y":1}, {"label":"L12", "x":2, "y":1.125}, {"label":"L14", "x":4, "y":1.125}, {"label":"R12", "x":14, "y":1.125}, {"label":"R14", "x":16, "y":1.125}, {"label":"L15", "x":5, "y":1.25}, {"label":"R11", "x":13, "y":1.25}, {"label":"L10", "x":0, "y":1.53}, {"label":"L11", "x":1, "y":1.53}, {"label":"R15", "x":17, "y":1.53}, {"label":"R16", "x":18, "y":1.53}, {"label":"L06", "x":6, "y":1.7000000000000002}, {"label":"R00", "x":12, "y":1.7000000000000002}, {"label":"L23", "x":3, "y":2.0}, {"label":"R23", "x":15, "y":2.0}, {"label":"L22", "x":2, "y":2.125}, {"label":"L24", "x":4, "y":2.125}, {"label":"R22", "x":14, "y":2.125}, {"label":"R24", "x":16, "y":2.125}, {"label":"L25", "x":5, "y":2.25}, {"label":"R21", "x":13, "y":2.25}, {"label":"L20", "x":0, "y":2.5300000000000002}, {"label":"L21", "x":1, "y":2.5300000000000002}, {"label":"R25", "x":17, "y":2.5300000000000002}, {"label":"R26", "x":18, "y":2.5300000000000002}, {"label":"L16", "x":6, "y":2.7}, {"label":"R10", "x":12, "y":2.7}, {"label":"L33", "x":3, "y":3.0000000000000004}, {"label":"R33", "x":15, "y":3.0000000000000004}, {"label":"L32", "x":2, "y":3.1250000000000004}, {"label":"L34", "x":4, "y":3.1250000000000004}, {"label":"R32", "x":14, "y":3.1250000000000004}, {"label":"R34", "x":16, "y":3.1250000000000004}, {"label":"L35", "x":5, "y":3.2500000000000004}, {"label":"R31", "x":13, "y":3.2500000000000004}, {"label":"L30", "x":0, "y":3.5300000000000002}, {"label":"L31", "x":1, "y":3.5300000000000002}, {"label":"R35", "x":17, "y":3.5300000000000002}, {"label":"R36", "x":18, "y":3.5300000000000002}, {"label":"L43", "x":3, "y":4.0}, {"label":"R43", "x":15, "y":4.0}, {"label":"L42", "x":2, "y":4.125}, {"label":"R44", "x":16, "y":4.125}, {"label":"L44", "x":4, "y":4.13}, {"label":"R42", "x":14, "y":4.13}, {"label":"L40", "x":0, "y":4.53}, {"label":"L41", "x":1, "y":4.53}, {"label":"R45", "x":17, "y":4.53}, {"label":"R46", "x":18, "y":4.53}, {"label":"L26", "x":-0.33, "y":5.13}, {"label":"L36", "x":0.6699999999999999, "y":5.13}, {"label":"L45", "x":-0.83, "y":6.13, "w":1.5}, {"label":"L46", "x":0.67, "y":6.13}, {"label":"R30", "x":-2.1, "y":6.48}, {"label":"R20", "x":-1.1, "y":6.48}, {"label":"R40", "x":-2.1, "y":7.48}, {"label":"R41", "x":-1.1, "y":7.48, "w":1.5}]
"layout": [
{"x":0, "y":0.53},
{"x":1, "y":0.53},
{"x":2, "y":0.125},
{"x":3, "y":0},
{"x":4, "y":0.125},
{"x":5, "y":0.25},
{"x":12, "y":0.25},
{"x":13, "y":0.125},
{"x":14, "y":0},
{"x":15, "y":0.125},
{"x":16, "y":0.53},
{"x":17, "y":0.53},
{"x":0, "y":1.53},
{"x":1, "y":1.53},
{"x":2, "y":1.125},
{"x":3, "y":1},
{"x":4, "y":1.125},
{"x":5, "y":1.25},
{"x":6, "y":1.7},
{"x":11, "y":1.7},
{"x":12, "y":1.25},
{"x":13, "y":1.125},
{"x":14, "y":1},
{"x":15, "y":1.125},
{"x":16, "y":1.53},
{"x":17, "y":1.53},
{"x":0, "y":2.53},
{"x":1, "y":2.53},
{"x":2, "y":2.125},
{"x":3, "y":2},
{"x":4, "y":2.125},
{"x":5, "y":2.25},
{"x":6, "y":2.7},
{"x":11, "y":2.7},
{"x":12, "y":2.25},
{"x":13, "y":2.125},
{"x":14, "y":2},
{"x":15, "y":2.125},
{"x":16, "y":2.53},
{"x":17, "y":2.53},
{"x":0, "y":3.53},
{"x":1, "y":3.53},
{"x":2, "y":3.125},
{"x":3, "y":3},
{"x":4, "y":3.125},
{"x":5, "y":3.25},
{"x":6.5, "y":4.25},
{"x":7.5, "y":4.25},
{"x":9.5, "y":4.25},
{"x":10.5, "y":4.25},
{"x":12, "y":3.25},
{"x":13, "y":3.125},
{"x":14, "y":3},
{"x":15, "y":3.125},
{"x":16, "y":3.53},
{"x":17, "y":3.53},
{"x":0, "y":4.53},
{"x":1, "y":4.53},
{"x":2, "y":4.125},
{"x":3, "y":4},
{"x":4, "y":4.125},
{"x":6, "y":5.25, "w":1.5},
{"x":7.5, "y":5.25},
{"x":9.5, "y":5.25},
{"x":10.5, "y":5.25, "w":1.5},
{"x":13, "y":4.125},
{"x":14, "y":4},
{"x":15, "y":4.125},
{"x":16, "y":4.53},
{"x":17, "y":4.53}
]
}
}
}

View File

@@ -10,11 +10,11 @@ A split keyboard with 5x7 including a thumbcluster, encoders on each side, per k
Make example for this keyboard (after setting up your build environment):
make zodiark:default
make aleblazer/zodiark:default
Flashing example for this keyboard:
make zodiark:default:flash
make aleblazer/zodiark:default:flash
Remove TRRS cable from halves, plug into one side, press reset button when asked. Repeat process on the other side.

View File

@@ -0,0 +1,84 @@
{
"keyboard_name": "Alpine65",
"url": "",
"maintainer": "Gondolindrim",
"width": 16.25,
"height": 5.25,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":7, "y":0},
{"x":8, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0, "w":2},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":6.5, "y":1},
{"x":7.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1, "w":1.5},
{"x":15.25, "y":1.25},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":6.75, "y":2},
{"x":7.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2, "w":2.25},
{"x":15.25, "y":2.25},
{"x":0, "y":3, "w":2.25},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":7.25, "y":3},
{"x":8.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3, "w":1.75},
{"x":14.25, "y":3.25},
{"x":15.25, "y":3.25},
{"x":0, "y":4, "w":1.25},
{"x":1.25, "y":4, "w":1.25},
{"x":2.5, "y":4, "w":1.25},
{"x":3.75, "y":4, "w":6.25},
{"x":10, "y":4},
{"x":11, "y":4},
{"x":12, "y":4},
{"x":13.25, "y":4.25},
{"x":14.25, "y":4.25},
{"x":15.25, "y":4.25}
]
}
}
}

17
keyboards/amag23/amag23.c Normal file
View File

@@ -0,0 +1,17 @@
/* Copyright 2021
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "amag23.h"

32
keyboards/amag23/amag23.h Normal file
View File

@@ -0,0 +1,32 @@
/* Copyright 2021
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "quantum.h"
// clang-format off
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, \
K10, K11, K12, K13, K14, K15, \
K20, K21, K22, K23, K24, K25, \
K30, K31, K32, K33, K34 \
) { \
{ K00, K01, K02, K03, K04, K05 }, \
{ K10, K11, K12, K13, K14, K15 }, \
{ K20, K21, K22, K23, K24, K25 }, \
{ K30, K31, K32, K33, KC_NO, K34 } \
}
// clang-format on

50
keyboards/amag23/config.h Normal file
View File

@@ -0,0 +1,50 @@
/* Copyright 2021
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0x4B54 // "KT"
#define PRODUCT_ID 0x2323
#define DEVICE_VER 0x0001
#define MANUFACTURER Koolertron
#define PRODUCT AMAG23
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 6
#define MATRIX_ROW_PINS { A0, A1, A2, A3 }
#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION ROW2COL
#define RGBLED_NUM 7
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
/* 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

View File

@@ -0,0 +1,36 @@
{
"keyboard_name": "AMAG23",
"url": "http://www.koolertron.com/koolertron-one-handed-macro-mechanical-keyboard-rgb-led-backlit-portable-mini-onehanded-mechanical-gaming-keypad-23-fully-programmable-keys-blue-switches-p-874.html",
"maintainer": "ianmclinden",
"width": 6,
"height": 4,
"layouts": {
"LAYOUT_all": {
"layout": [
{"label":"K00", "x":0, "y":0},
{"label":"K01", "x":1, "y":0},
{"label":"K02", "x":2, "y":0},
{"label":"K03", "x":3, "y":0},
{"label":"K04", "x":4, "y":0},
{"label":"K05", "x":5, "y":0},
{"label":"K10", "x":0, "y":1},
{"label":"K11", "x":1, "y":1},
{"label":"K12", "x":2, "y":1},
{"label":"K13", "x":3, "y":1},
{"label":"K14", "x":4, "y":1},
{"label":"K15", "x":5, "y":1},
{"label":"K20", "x":0, "y":2},
{"label":"K21", "x":1, "y":2},
{"label":"K22", "x":2, "y":2},
{"label":"K23", "x":3, "y":2},
{"label":"K24", "x":4, "y":2},
{"label":"K25", "x":5, "y":2},
{"label":"K30", "x":0, "y":3},
{"label":"K31", "x":1, "y":3},
{"label":"K32", "x":2, "y":3},
{"label":"K33", "x":3, "y":3},
{"label":"K34", "x":4, "y":3, "w":2}
]
}
}
}

View File

@@ -0,0 +1,40 @@
/* Copyright 2021
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
BASE,
FN1
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_all( /* Base Layer */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y,
MO(FN1), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_Z, KC_X, KC_C, KC_B, KC_SPC
),
[FN1] = LAYOUT_all( /* Function Layer */
KC_NO, KC_NO, KC_NO, RGB_MOD, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
),
};
// clang-format on

View File

@@ -0,0 +1,14 @@
# Factory Keymap for Koolertron AMAG23
## Additional Notes
Default Keymap for AMAG23 as indicated on the original [product page](http://www.koolertron.com/koolertron-one-handed-macro-mechanical-keyboard-rgb-led-backlit-portable-mini-onehanded-mechanical-gaming-keypad-23-fully-programmable-keys-blue-switches-p-853.html).
## Keymap
![AMAG23 Factory Layout](https://i.imgur.com/c28RfwI.png)
## Build
To build the factory keymap, simply run:
make amag23:default

View File

@@ -0,0 +1,40 @@
/* Copyright 2021
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
enum layer_names {
BASE,
FN1
};
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT_all( /* Base Layer */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
MO(FN1), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_SPC
),
[FN1] = LAYOUT_all( /* Function Layer */
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
_______, RGB_TOG, RGB_VAI, RGB_MOD, RGB_HUI, _______,
_______, _______, RGB_VAD, RGB_RMOD,RGB_HUD, _______,
_______, _______, _______, _______, _______
),
};
// clang-format on

View File

@@ -0,0 +1,14 @@
# QWERT Keymap for Koolertron AMAG23
## Additional Notes
QWERT keymap, based on the left hand of an ortholinear layout.
## Keymap
![AMAG23 QWERT Layout](https://i.imgur.com/fiDUo77.png)
## Build
To build the factory keymap, simply run:
make amag23:qwert

View File

@@ -0,0 +1,27 @@
# AMAG23 (Koolertron)
![Koolertron AMAG23](https://i.imgur.com/DakwCxk.jpg)
One Handed Macro Mechanical Keyboard, 23 Key with optional RGB backlighting.
- Keyboard Maintainer: [ianmclinden](https://github.com/ianmclinden)
- Hardware Supported: AMAG23 (ATmega32A)
- Hardware Availability:
- [Newegg](https://www.newegg.com/p/32K-00H1-00001)
- [Amazon](https://www.amazon.com/Koolertron-Mechanical-Keyboard-One-Handed-Programmable/dp/B07RM1TBR8)
Make example for this keyboard (after setting up your build environment):
make amag23:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
make amag23:default:flash
**Reset Key**: Hold down the *Escape* key while plugging in the keyboard.
**Tips**:
- The keyboard comes with bootloadHID installed from factory.
- The RGB leds seem to be chained together in diagonal rows. The result is that only 7 individual colors are supported, and these are striped across the keypad.
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).

19
keyboards/amag23/rules.mk Normal file
View File

@@ -0,0 +1,19 @@
# MCU name
MCU = atmega32a
# Bootloader selection
BOOTLOADER = bootloadHID
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
WS2812_DRIVER = i2c

View File

@@ -0,0 +1,48 @@
/* Copyright 2021 Leon Anavi <leon@anavi.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum custom_keycodes {
GITCOMMIT = SAFE_RANGE,
GITPUSH
};
void keyboard_post_init_user(void) {
// Set backlight to the maximum brightness
backlight_level(2);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case GITCOMMIT:
if (record->event.pressed) {
SEND_STRING("git commit -s\n");
}
break;
case GITPUSH:
if (record->event.pressed) {
SEND_STRING("git push\n");
}
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
GITCOMMIT, GITPUSH
)
};

View File

@@ -0,0 +1,37 @@
/* Copyright 2021 Leon Anavi <leon@anavi.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
/*
* The keymap contains the following shortcuts for Google Meet:
*
* Ctrl+D: Mute/unmute my audio
* Ctrl+E: Start/stop video
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
LCTL(KC_D), LCTL(KC_E)
)
};
const uint16_t PROGMEM test_combo[] = {LCTL(KC_D), LCTL(KC_E), COMBO_END};
combo_t key_combos[COMBO_COUNT] = {COMBO_ACTION(test_combo)};
void process_combo_event(uint16_t combo_index, bool pressed) {
backlight_step();
}

View File

@@ -0,0 +1 @@
COMBO_ENABLE = yes

View File

@@ -0,0 +1,23 @@
/* Copyright 2021 Leon Anavi <leon@anavi.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#undef RGBLIGHT_ANIMATIONS
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_SNAKE

View File

@@ -0,0 +1,144 @@
/* Copyright 2021 Leon Anavi <leon@anavi.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#define _MAIN 0
#define _FN 1
/*
* This keymap contains the following shortcuts for Git. On the
* first row from left to right:
*
* git status
* git log
* git pull
* git push
*
* On the second row from left to right:
*
* git diff
* git add
* git commit
* FN key to switch to the 2nd layout and control lights
*
*/
enum custom_keycodes {
GITCOMMIT = SAFE_RANGE,
GITPUSH,
GITPULL,
GITSTATUS,
GITDIFF,
GITLOG,
GITADD
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case GITCOMMIT:
if (record->event.pressed) {
SEND_STRING("git commit -s\n");
}
break;
case GITPUSH:
if (record->event.pressed) {
SEND_STRING("git push\n");
}
break;
case GITPULL:
if (record->event.pressed) {
SEND_STRING("git pull\n");
}
break;
case GITSTATUS:
if (record->event.pressed) {
SEND_STRING("git status\n");
}
break;
case GITDIFF:
if (record->event.pressed) {
SEND_STRING("git diff ");
}
break;
case GITLOG:
if (record->event.pressed) {
SEND_STRING("git log\n");
}
break;
case GITADD:
if (record->event.pressed) {
SEND_STRING("git add ");
}
break;
}
return true;
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT_ortho_2x4(
GITSTATUS, GITLOG, GITPULL, GITPUSH,
GITDIFF, GITADD, GITCOMMIT, MO(_FN)
),
[_FN] = LAYOUT_ortho_2x4(
RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
BL_TOGG, BL_STEP, BL_BRTG, _______
)
};
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand
}
void oled_task_user(void) {
// Host Keyboard Layer Status
oled_write_ln_P(PSTR("ANAVI Macro Pad 8"), false);
oled_write_P(PSTR("Active layer: "), false);
switch (get_highest_layer(layer_state)) {
case _MAIN:
oled_write_ln_P(PSTR("Git"), false);
break;
case _FN:
oled_write_ln_P(PSTR("FN"), false);
break;
default:
// Or use the write_ln shortcut over adding '\n' to the end of your string
oled_write_ln_P(PSTR("N/A"), false);
}
// Host Keyboard LED Status
led_t led_state = host_keyboard_led_state();
oled_write_P(PSTR("Num Lock: "), false);
oled_write_ln_P(led_state.num_lock ? PSTR("On") : PSTR("Off"), false);
oled_write_P(PSTR("Caps Lock: "), false);
oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
oled_write_P(PSTR("Scroll Lock: "), false);
oled_write_ln_P(led_state.scroll_lock ? PSTR("On") : PSTR("Off"), false);
oled_write_P(PSTR("Backlit: "), false);
oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
#ifdef RGBLIGHT_ENABLE
static char rgbStatusLine1[26] = {0};
snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());
oled_write_ln(rgbStatusLine1, false);
static char rgbStatusLine2[26] = {0};
snprintf(rgbStatusLine2, sizeof(rgbStatusLine2), "h:%d s:%d v:%d", rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val());
oled_write_ln(rgbStatusLine2, false);
#endif
}
#endif

View File

@@ -0,0 +1,20 @@
{
"keyboard_name": "Aplx6",
"url": "",
"maintainer": "Aplyard",
"width": 3,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":0, "y":1},
{"x":1, "y":1},
{"x":2, "y":1}
]
}
}
}

View File

@@ -55,4 +55,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
11, 10, 9, 8, 7, 6 }
#endif
#define OLED_DISPLAY_128X64
#define EE_HANDS

View File

@@ -0,0 +1,52 @@
{
"keyboard_name": "Arch-36",
"url": "",
"maintainer": "obosob",
"width": 14,
"height": 5.1,
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
{"x":0, "y":1},
{"x":1, "y":0.25},
{"x":2, "y":0},
{"x":3, "y":0.375},
{"x":4, "y":0.5},
{"x":9, "y":0.5},
{"x":10, "y":0.375},
{"x":11, "y":0},
{"x":12, "y":0.25},
{"x":13, "y":1},
{"x":0, "y":2},
{"x":1, "y":1.25},
{"x":2, "y":1},
{"x":3, "y":1.375},
{"x":4, "y":1.5},
{"x":9, "y":1.5},
{"x":10, "y":1.375},
{"x":11, "y":1},
{"x":12, "y":1.25},
{"x":13, "y":2},
{"x":0, "y":3},
{"x":1, "y":2.25},
{"x":2, "y":2},
{"x":3, "y":2.375},
{"x":4, "y":2.5},
{"x":9, "y":2.5},
{"x":10, "y":2.375},
{"x":11, "y":2},
{"x":12, "y":2.25},
{"x":13, "y":3},
{"x":3.5, "y":3.5},
{"x":4.5, "y":3.7},
{"x":5.5, "y":4.1},
{"x":7.5, "y":4.1},
{"x":8.5, "y":3.7},
{"x":9.5, "y":3.5}
]
}
}
}

View File

@@ -16,19 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ares.h"
void keyboard_pre_init_kb(void) {
led_init_ports();
keyboard_pre_init_user();
}
void led_init_ports(void) {
setPinOutput(D1);
}
bool led_update_kb(led_t led_state) {
if (led_update_user(led_state)) {
writePin(D1, led_state.caps_lock);
}
return true;
}

View File

@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
#define LED_CAPS_LOCK_PIN D1
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 3

84
keyboards/arisu/info.json Normal file
View File

@@ -0,0 +1,84 @@
{
"keyboard_name": "Arisu",
"url": "https://github.com/FateNozomi/arisu-pcb",
"maintainer": "FateNozomi",
"width": 18.3,
"height": 5.25,
"layouts": {
"LAYOUT": {
"layout": [
{"x":0, "y":0},
{"x":1, "y":0},
{"x":2, "y":0},
{"x":3, "y":0},
{"x":4, "y":0},
{"x":5, "y":0},
{"x":6, "y":0},
{"x":9, "y":0},
{"x":10, "y":0},
{"x":11, "y":0},
{"x":12, "y":0},
{"x":13, "y":0},
{"x":14, "y":0},
{"x":15, "y":0},
{"x":16, "y":0},
{"x":17.3, "y":0},
{"x":0, "y":1, "w":1.5},
{"x":1.5, "y":1},
{"x":2.5, "y":1},
{"x":3.5, "y":1},
{"x":4.5, "y":1},
{"x":5.5, "y":1},
{"x":8.5, "y":1},
{"x":9.5, "y":1},
{"x":10.5, "y":1},
{"x":11.5, "y":1},
{"x":12.5, "y":1},
{"x":13.5, "y":1},
{"x":14.5, "y":1},
{"x":15.5, "y":1, "w":1.5},
{"x":17.3, "y":1},
{"x":0, "y":2, "w":1.75},
{"x":1.75, "y":2},
{"x":2.75, "y":2},
{"x":3.75, "y":2},
{"x":4.75, "y":2},
{"x":5.75, "y":2},
{"x":8.75, "y":2},
{"x":9.75, "y":2},
{"x":10.75, "y":2},
{"x":11.75, "y":2},
{"x":12.75, "y":2},
{"x":13.75, "y":2},
{"x":14.75, "y":2, "w":2.25},
{"x":17.3, "y":2},
{"x":0, "y":3, "w":2.25},
{"x":2.25, "y":3},
{"x":3.25, "y":3},
{"x":4.25, "y":3},
{"x":5.25, "y":3},
{"x":6.25, "y":3},
{"x":9.25, "y":3},
{"x":10.25, "y":3},
{"x":11.25, "y":3},
{"x":12.25, "y":3},
{"x":13.25, "y":3},
{"x":14.25, "y":3, "w":1.75},
{"x":16.3, "y":3.25},
{"x":0, "y":4, "w":1.5},
{"x":3.25, "y":4, "w":1.5},
{"x":4.75, "y":4, "w":2},
{"x":6.75, "y":4, "w":1.25},
{"x":8.75, "y":4, "w":2.75},
{"x":11.5, "y":4, "w":1.5},
{"x":15.3, "y":4.25},
{"x":16.3, "y":4.25},
{"x":17.3, "y":4.25}
]
}
}
}

View File

@@ -0,0 +1,16 @@
/* Copyright 2021 Matthew Dias
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "barleycorn_smd.h"

View File

@@ -0,0 +1,63 @@
/* Copyright 2021 Matthew Dias
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define XXX KC_NO
#include "quantum.h"
#define LAYOUT_all( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
}
#define LAYOUT_ansi( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
}
#define LAYOUT_iso( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
}

View File

@@ -0,0 +1,111 @@
/*
Copyright 2021 Matthew Dias
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
#define VENDOR_ID 0x7033
#define PRODUCT_ID 0x4749
#define DEVICE_VER 0x0001
#define MANUFACTURER P3D Store
#define PRODUCT Barleycorn SMD
/* key matrix size */
#define MATRIX_ROWS 5
#define MATRIX_COLS 18
/*
* Keyboard Matrix Assignments
*
* Change this to how you wired your keyboard
* COLS: AVR pins used for columns, left to right
* ROWS: AVR pins used for rows, top to bottom
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
*
*/
/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */
#define MATRIX_ROW_PINS { F5, F4, F1, F0, F6 }
#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, D5, D5, D5, D5, D5, D5, D5, D5, D5, D5 }
#define UNUSED_PINS
#define PORT_EXPANDER_ADDRESS 0x20
#define RGB_DI_PIN E6
#define RGBLED_NUM 15
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5 }
#define LED_CAPS_LOCK_PIN B2
#define LED_NUM_LOCK_PIN B3
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
#define USB_MAX_POWER_CONSUMPTION 400
/* 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
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* 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 NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION

View File

@@ -0,0 +1,283 @@
{
"keyboard_name": "Barleycorn SMD",
"maintainer": "matthewdias",
"width": 19.5,
"height": 5,
"layouts": {
"LAYOUT_all": {
"layout": [
{ "label": "0,0", "x": 0, "y": 0 },
{ "label": "0,1", "x": 1, "y": 0 },
{ "label": "0,2", "x": 2, "y": 0 },
{ "label": "0,3", "x": 3, "y": 0 },
{ "label": "0,4", "x": 4, "y": 0 },
{ "label": "0,5", "x": 5, "y": 0 },
{ "label": "0,6", "x": 6, "y": 0 },
{ "label": "0,7", "x": 7, "y": 0 },
{ "label": "0,8", "x": 8, "y": 0 },
{ "label": "0,9", "x": 9, "y": 0 },
{ "label": "0,10", "x": 10, "y": 0 },
{ "label": "0,11", "x": 11, "y": 0 },
{ "label": "0,12", "x": 12, "y": 0 },
{ "label": "0,13", "x": 13, "y": 0 },
{ "label": "1,13", "x": 14, "y": 0 },
{ "label": "0,14", "x": 15.5, "y": 0 },
{ "label": "0,15", "x": 16.5, "y": 0 },
{ "label": "0,16", "x": 17.5, "y": 0 },
{ "label": "0,17", "x": 18.5, "y": 0 },
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
{ "label": "1,1", "x": 1.5, "y": 1 },
{ "label": "1,2", "x": 2.5, "y": 1 },
{ "label": "1,3", "x": 3.5, "y": 1 },
{ "label": "1,4", "x": 4.5, "y": 1 },
{ "label": "1,5", "x": 5.5, "y": 1 },
{ "label": "1,6", "x": 6.5, "y": 1 },
{ "label": "1,7", "x": 7.5, "y": 1 },
{ "label": "1,8", "x": 8.5, "y": 1 },
{ "label": "1,9", "x": 9.5, "y": 1 },
{ "label": "1,10", "x": 10.5, "y": 1 },
{ "label": "1,11", "x": 11.5, "y": 1 },
{ "label": "1,12", "x": 12.5, "y": 1 },
{ "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
{ "label": "1,14", "x": 15.5, "y": 1 },
{ "label": "1,15", "x": 16.5, "y": 1 },
{ "label": "1,16", "x": 17.5, "y": 1 },
{ "label": "1,17", "x": 18.5, "y": 1 },
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
{ "label": "2,1", "x": 1.75, "y": 2 },
{ "label": "2,2", "x": 2.75, "y": 2 },
{ "label": "2,3", "x": 3.75, "y": 2 },
{ "label": "2,4", "x": 4.75, "y": 2 },
{ "label": "2,5", "x": 5.75, "y": 2 },
{ "label": "2,6", "x": 6.75, "y": 2 },
{ "label": "2,7", "x": 7.75, "y": 2 },
{ "label": "2,8", "x": 8.75, "y": 2 },
{ "label": "2,9", "x": 9.75, "y": 2 },
{ "label": "2,10", "x": 10.75, "y": 2 },
{ "label": "2,11", "x": 11.75, "y": 2 },
{ "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
{ "label": "2,14", "x": 15.5, "y": 2 },
{ "label": "2,15", "x": 16.5, "y": 2 },
{ "label": "2,16", "x": 17.5, "y": 2 },
{ "label": "2,17", "x": 18.5, "y": 2 },
{ "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
{ "label": "3,1", "x": 1.25, "y": 3 },
{ "label": "3,2", "x": 2.25, "y": 3 },
{ "label": "3,3", "x": 3.25, "y": 3 },
{ "label": "3,4", "x": 4.25, "y": 3 },
{ "label": "3,5", "x": 5.25, "y": 3 },
{ "label": "3,6", "x": 6.25, "y": 3 },
{ "label": "3,7", "x": 7.25, "y": 3 },
{ "label": "3,8", "x": 8.25, "y": 3 },
{ "label": "3,9", "x": 9.25, "y": 3 },
{ "label": "3,10", "x": 10.25, "y": 3 },
{ "label": "3,11", "x": 11.25, "y": 3 },
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
{ "label": "3,13", "x": 14.25, "y": 3.25 },
{ "label": "3,14", "x": 15.5, "y": 3 },
{ "label": "3,15", "x": 16.5, "y": 3 },
{ "label": "3,16", "x": 17.5, "y": 3 },
{ "label": "3,17", "x": 18.5, "y": 3 },
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
{ "label": "4,12", "x": 13.25, "y": 4.25 },
{ "label": "4,13", "x": 14.25, "y": 4.25 },
{ "label": "4,14", "x": 15.25, "y": 4.25 },
{ "label": "4,15", "x": 16.5, "y": 4 },
{ "label": "4,16", "x": 17.5, "y": 4 },
{ "label": "4,17", "x": 18.5, "y": 4 }
]
},
"LAYOUT_ansi": {
"layout": [
{ "label": "0,0", "x": 0, "y": 0 },
{ "label": "0,1", "x": 1, "y": 0 },
{ "label": "0,2", "x": 2, "y": 0 },
{ "label": "0,3", "x": 3, "y": 0 },
{ "label": "0,4", "x": 4, "y": 0 },
{ "label": "0,5", "x": 5, "y": 0 },
{ "label": "0,6", "x": 6, "y": 0 },
{ "label": "0,7", "x": 7, "y": 0 },
{ "label": "0,8", "x": 8, "y": 0 },
{ "label": "0,9", "x": 9, "y": 0 },
{ "label": "0,10", "x": 10, "y": 0 },
{ "label": "0,11", "x": 11, "y": 0 },
{ "label": "0,12", "x": 12, "y": 0 },
{ "label": "0,13", "x": 13, "y": 0 },
{ "label": "1,13", "x": 14, "y": 0 },
{ "label": "0,14", "x": 15.5, "y": 0 },
{ "label": "0,15", "x": 16.5, "y": 0 },
{ "label": "0,16", "x": 17.5, "y": 0 },
{ "label": "0,17", "x": 18.5, "y": 0 },
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
{ "label": "1,1", "x": 1.5, "y": 1 },
{ "label": "1,2", "x": 2.5, "y": 1 },
{ "label": "1,3", "x": 3.5, "y": 1 },
{ "label": "1,4", "x": 4.5, "y": 1 },
{ "label": "1,5", "x": 5.5, "y": 1 },
{ "label": "1,6", "x": 6.5, "y": 1 },
{ "label": "1,7", "x": 7.5, "y": 1 },
{ "label": "1,8", "x": 8.5, "y": 1 },
{ "label": "1,9", "x": 9.5, "y": 1 },
{ "label": "1,10", "x": 10.5, "y": 1 },
{ "label": "1,11", "x": 11.5, "y": 1 },
{ "label": "1,12", "x": 12.5, "y": 1 },
{ "label": "2,12", "x": 13.5, "y": 1, "w": 1.5 },
{ "label": "1,14", "x": 15.5, "y": 1 },
{ "label": "1,15", "x": 16.5, "y": 1 },
{ "label": "1,16", "x": 17.5, "y": 1 },
{ "label": "1,17", "x": 18.5, "y": 1 },
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
{ "label": "2,1", "x": 1.75, "y": 2 },
{ "label": "2,2", "x": 2.75, "y": 2 },
{ "label": "2,3", "x": 3.75, "y": 2 },
{ "label": "2,4", "x": 4.75, "y": 2 },
{ "label": "2,5", "x": 5.75, "y": 2 },
{ "label": "2,6", "x": 6.75, "y": 2 },
{ "label": "2,7", "x": 7.75, "y": 2 },
{ "label": "2,8", "x": 8.75, "y": 2 },
{ "label": "2,9", "x": 9.75, "y": 2 },
{ "label": "2,10", "x": 10.75, "y": 2 },
{ "label": "2,11", "x": 11.75, "y": 2 },
{ "label": "2,13", "x": 12.75, "y": 2, "w": 2.25 },
{ "label": "2,14", "x": 15.5, "y": 2 },
{ "label": "2,15", "x": 16.5, "y": 2 },
{ "label": "2,16", "x": 17.5, "y": 2 },
{ "label": "2,17", "x": 18.5, "y": 2 },
{ "label": "3,0", "x": 0, "y": 3, "w": 2.25 },
{ "label": "3,2", "x": 2.25, "y": 3 },
{ "label": "3,3", "x": 3.25, "y": 3 },
{ "label": "3,4", "x": 4.25, "y": 3 },
{ "label": "3,5", "x": 5.25, "y": 3 },
{ "label": "3,6", "x": 6.25, "y": 3 },
{ "label": "3,7", "x": 7.25, "y": 3 },
{ "label": "3,8", "x": 8.25, "y": 3 },
{ "label": "3,9", "x": 9.25, "y": 3 },
{ "label": "3,10", "x": 10.25, "y": 3 },
{ "label": "3,11", "x": 11.25, "y": 3 },
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
{ "label": "3,13", "x": 14.25, "y": 3.25 },
{ "label": "3,14", "x": 15.5, "y": 3 },
{ "label": "3,15", "x": 16.5, "y": 3 },
{ "label": "3,16", "x": 17.5, "y": 3 },
{ "label": "3,17", "x": 18.5, "y": 3 },
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
{ "label": "4,12", "x": 13.25, "y": 4.25 },
{ "label": "4,13", "x": 14.25, "y": 4.25 },
{ "label": "4,14", "x": 15.25, "y": 4.25 },
{ "label": "4,15", "x": 16.5, "y": 4 },
{ "label": "4,16", "x": 17.5, "y": 4 },
{ "label": "4,17", "x": 18.5, "y": 4 }
]
},
"LAYOUT_iso": {
"layout": [
{ "label": "0,0", "x": 0, "y": 0 },
{ "label": "0,1", "x": 1, "y": 0 },
{ "label": "0,2", "x": 2, "y": 0 },
{ "label": "0,3", "x": 3, "y": 0 },
{ "label": "0,4", "x": 4, "y": 0 },
{ "label": "0,5", "x": 5, "y": 0 },
{ "label": "0,6", "x": 6, "y": 0 },
{ "label": "0,7", "x": 7, "y": 0 },
{ "label": "0,8", "x": 8, "y": 0 },
{ "label": "0,9", "x": 9, "y": 0 },
{ "label": "0,10", "x": 10, "y": 0 },
{ "label": "0,11", "x": 11, "y": 0 },
{ "label": "0,12", "x": 12, "y": 0 },
{ "label": "0,13", "x": 13, "y": 0 },
{ "label": "1,13", "x": 14, "y": 0 },
{ "label": "0,14", "x": 15.5, "y": 0 },
{ "label": "0,15", "x": 16.5, "y": 0 },
{ "label": "0,16", "x": 17.5, "y": 0 },
{ "label": "0,17", "x": 18.5, "y": 0 },
{ "label": "1,0", "x": 0, "y": 1, "w": 1.5 },
{ "label": "1,1", "x": 1.5, "y": 1 },
{ "label": "1,2", "x": 2.5, "y": 1 },
{ "label": "1,3", "x": 3.5, "y": 1 },
{ "label": "1,4", "x": 4.5, "y": 1 },
{ "label": "1,5", "x": 5.5, "y": 1 },
{ "label": "1,6", "x": 6.5, "y": 1 },
{ "label": "1,7", "x": 7.5, "y": 1 },
{ "label": "1,8", "x": 8.5, "y": 1 },
{ "label": "1,9", "x": 9.5, "y": 1 },
{ "label": "1,10", "x": 10.5, "y": 1 },
{ "label": "1,11", "x": 11.5, "y": 1 },
{ "label": "1,12", "x": 12.5, "y": 1 },
{ "label": "1,14", "x": 15.5, "y": 1 },
{ "label": "1,15", "x": 16.5, "y": 1 },
{ "label": "1,16", "x": 17.5, "y": 1 },
{ "label": "1,17", "x": 18.5, "y": 1 },
{ "label": "2,0", "x": 0, "y": 2, "w": 1.75 },
{ "label": "2,1", "x": 1.75, "y": 2 },
{ "label": "2,2", "x": 2.75, "y": 2 },
{ "label": "2,3", "x": 3.75, "y": 2 },
{ "label": "2,4", "x": 4.75, "y": 2 },
{ "label": "2,5", "x": 5.75, "y": 2 },
{ "label": "2,6", "x": 6.75, "y": 2 },
{ "label": "2,7", "x": 7.75, "y": 2 },
{ "label": "2,8", "x": 8.75, "y": 2 },
{ "label": "2,9", "x": 9.75, "y": 2 },
{ "label": "2,10", "x": 10.75, "y": 2 },
{ "label": "2,11", "x": 11.75, "y": 2 },
{ "label": "2,12", "x": 12.75, "y": 2 },
{ "label": "2,13", "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
{ "label": "2,14", "x": 15.5, "y": 2 },
{ "label": "2,15", "x": 16.5, "y": 2 },
{ "label": "2,16", "x": 17.5, "y": 2 },
{ "label": "2,17", "x": 18.5, "y": 2 },
{ "label": "3,0", "x": 0, "y": 3, "w": 1.25 },
{ "label": "3,1", "x": 1.25, "y": 3 },
{ "label": "3,2", "x": 2.25, "y": 3 },
{ "label": "3,3", "x": 3.25, "y": 3 },
{ "label": "3,4", "x": 4.25, "y": 3 },
{ "label": "3,5", "x": 5.25, "y": 3 },
{ "label": "3,6", "x": 6.25, "y": 3 },
{ "label": "3,7", "x": 7.25, "y": 3 },
{ "label": "3,8", "x": 8.25, "y": 3 },
{ "label": "3,9", "x": 9.25, "y": 3 },
{ "label": "3,10", "x": 10.25, "y": 3 },
{ "label": "3,11", "x": 11.25, "y": 3 },
{ "label": "3,12", "x": 12.25, "y": 3, "w": 1.75 },
{ "label": "3,13", "x": 14.25, "y": 3.25 },
{ "label": "3,14", "x": 15.5, "y": 3 },
{ "label": "3,15", "x": 16.5, "y": 3 },
{ "label": "3,16", "x": 17.5, "y": 3 },
{ "label": "3,17", "x": 18.5, "y": 3 },
{ "label": "4,0", "x": 0, "y": 4, "w": 1.25 },
{ "label": "4,1", "x": 1.25, "y": 4, "w": 1.25 },
{ "label": "4,2", "x": 2.5, "y": 4, "w": 1.25 },
{ "label": "4,6", "x": 3.75, "y": 4, "w": 6.25 },
{ "label": "4,10", "x": 10, "y": 4, "w": 1.5 },
{ "label": "4,11", "x": 11.5, "y": 4, "w": 1.5 },
{ "label": "4,12", "x": 13.25, "y": 4.25 },
{ "label": "4,13", "x": 14.25, "y": 4.25 },
{ "label": "4,14", "x": 15.25, "y": 4.25 },
{ "label": "4,15", "x": 16.5, "y": 4 },
{ "label": "4,16", "x": 17.5, "y": 4 },
{ "label": "4,17", "x": 18.5, "y": 4 }
]
}
}
}

View File

@@ -0,0 +1,34 @@
/* Copyright 2021 Matthew Dias
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
//This is the ANSI version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ansi( /* Base */
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PEQL,
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_PPLS,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_ansi( /* FN */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,11 @@
# The default keymap for Barleycorn
![Layer 0](https://i.imgur.com/cU9lzz3.png)
![Layer 1](https://i.imgur.com/0G3e1K3.png)
Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster.
Alternative ANSI layouts:
![Alt Keymap](https://i.imgur.com/6uAx8jZ.png)

View File

@@ -0,0 +1,34 @@
/* Copyright 2021 Matthew Dias
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
//This is the ISO version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_iso( /* Base */
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, KC_PEQL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_iso( /* FN */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1,11 @@
# The default keymap for ISO Barleycorn
![Layer 0](https://i.imgur.com/llZlVHt.png)
![Layer 1](https://i.imgur.com/hrYtMQk.png)
Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster
Alternative ISO layouts:
![Alt Keymap](https://i.imgur.com/2cL0IGQ.png)

View File

@@ -0,0 +1,48 @@
/* Copyright 2021 Matthew Dias
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// This keymaps is used for VIA, it reflects the default keymap.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PEQL,
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_PPLS,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_all( /* FN */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_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, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_all( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_all( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@@ -0,0 +1 @@
# Compile with this keymap to use VIA

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,138 @@
/*
Copyright 2021 Matthew Dias
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include "wait.h"
#include "quantum.h"
#include "i2c_master.h"
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static void unselect_rows(void) {
for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
setPinInputHigh(row_pins[x]);
}
}
static void select_row(uint8_t row) {
setPinOutput(row_pins[row]);
writePinLow(row_pins[row]);
}
static void unselect_row(uint8_t row) {
setPinInputHigh(row_pins[row]);
}
static void init_pins(void) {
unselect_rows();
// Set I/O
uint8_t send_data[2] = { 0xFF, 0x03};
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x00, &send_data[0], 2, 20);
// Set Pull-up
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x0C, &send_data[0], 2, 20);
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
if ( x < 8 ) {
setPinInputHigh(col_pins[x]);
}
}
}
void matrix_init_custom(void) {
// TODO: initialize hardware here
// Initialize I2C
i2c_init();
// initialize key pins
init_pins();
wait_ms(50);
}
static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
// Store last value of row prior to reading
matrix_row_t last_row_value = current_matrix[current_row];
// Clear data in matrix row
current_matrix[current_row] = 0;
// Select row and wait for row selecton to stabilize
select_row(current_row);
matrix_io_delay();
uint8_t port_expander_col_buffer[2];
i2c_readReg((PORT_EXPANDER_ADDRESS << 1), 0x12, &port_expander_col_buffer[0], 2, 20);
// For each col...
for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
uint8_t pin_state;
// Select the col pin to read (active low)
switch (col_index) {
case 8 :
pin_state = port_expander_col_buffer[0] & (1 << 0);
break;
case 9 :
pin_state = port_expander_col_buffer[0] & (1 << 1);
break;
case 10 :
pin_state = port_expander_col_buffer[0] & (1 << 2);
break;
case 11 :
pin_state = port_expander_col_buffer[0] & (1 << 3);
break;
case 12 :
pin_state = port_expander_col_buffer[0] & (1 << 4);
break;
case 13 :
pin_state = port_expander_col_buffer[0] & (1 << 5);
break;
case 14 :
pin_state = port_expander_col_buffer[0] & (1 << 6);
break;
case 15 :
pin_state = port_expander_col_buffer[0] & (1 << 7);
break;
case 16 :
pin_state = port_expander_col_buffer[1] & (1 << 0);
break;
case 17 :
pin_state = port_expander_col_buffer[1] & (1 << 1);
break;
default :
pin_state = readPin(col_pins[col_index]);
}
// Populate the matrix row with the state of the col pin
current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
}
// Unselect row
unselect_row(current_row);
return (last_row_value != current_matrix[current_row]);
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
bool matrix_has_changed = false;
// Set row, read cols
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
matrix_has_changed |= read_cols_on_row(current_matrix, current_row);
}
return matrix_has_changed;
}

View File

@@ -0,0 +1,19 @@
# Barleycorn SMD
![image](https://user-images.githubusercontent.com/3302524/110901245-a5679b00-82c9-11eb-8f8f-17ed6bd97332.png)
An f-row less compact 1800 keyboard with SMD components. Based on Barleycorn by Yiancar.
- Keyboard Maintainer: matthewdias
- Hardware Supported: Barleycorn SMD
- Hardware Availability: https://p3dstore.com
Make example for this keyboard (after setting up your build environment):
make barleycorn_smd:default
Flashing example for this keyboard:
make barleycorn_smd: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).

View File

@@ -0,0 +1,27 @@
# MCU name
MCU = atmega32u4
# Bootloader selection
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
SRC += matrix.c
QUANTUM_LIB_SRC += i2c_master.c

View File

@@ -29,3 +29,5 @@ NKRO_ENABLE = no # USB Nkey Rollover
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
OLED_DRIVER_ENABLE = yes # Disable OLED driver.
UNICODE_ENABLE = no # Unicode
LTO_ENABLE = yes

View File

@@ -16,19 +16,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "bfake.h"
void keyboard_pre_init_kb(void) {
led_init_ports();
keyboard_pre_init_user();
}
void led_init_ports(void) {
setPinOutput(D1);
}
bool led_update_kb(led_t led_state) {
if (led_update_user(led_state)) {
writePin(D1, led_state.caps_lock);
}
return true;
}

View File

@@ -37,6 +37,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DIODE_DIRECTION COL2ROW
#define DEBOUNCE 5
#define LED_CAPS_LOCK_PIN D1
#define BACKLIGHT_PIN D4
#define BACKLIGHT_LEVELS 3

View File

@@ -39,4 +39,15 @@ led_config_t g_led_config = {
2, 2, 2, 2, 2, 2
}
};
void suspend_power_down_kb(void) {
rgb_matrix_set_suspend_state(true);
suspend_power_down_user();
}
void suspend_wakeup_init_kb(void) {
rgb_matrix_set_suspend_state(false);
suspend_wakeup_init_user();
}
#endif

View File

@@ -50,3 +50,6 @@
#ifdef RGB_DI_PIN
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
#endif
#ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
#endif

View File

@@ -26,34 +26,19 @@ led_config_t g_led_config = { {
{ 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }
}, {
// LED Index to Physical Position
//I have no idea how to calculate this based on a templete, nor do have a good enough ruler to measure this.
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 225, 0 },
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
{ 4, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 225, 16 },
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 225, 32 },
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 225, 48 },
// Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 94, 64 }, { 148, 64 }, { 163, 64 }, { 178, 64 }, { 193, 64 }, { 208, 64 }, { 225, 64 },
// UNDERGLOW
{ 185, 45 }, { 160, 45 }, { 125, 45 }, { 95, 45 }, { 60, 45 }, { 25, 45 }
{ 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
{ 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
{ 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
{ 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
{ 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
{185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW
}, {
// LED Index to Flag
//need to recheck what should be a modifier
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
// LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
// Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
1, 1, 1, 4, 1, 1, 1, 1, 1, 1,
// UNDERGLOW
2, 2, 2, 2, 2, 2
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
2, 2, 2, 2, 2, 2 // UNDERGLOW
} };
#endif

View File

@@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PRODUCT_ID 0xEF6F
#define DEVICE_VER 0x0001
#define MANUFACTURER KPRepublic
#define PRODUCT bm68rgb
#define PRODUCT BM68 RGB
/* key matrix size */
#define MATRIX_ROWS 5
@@ -56,30 +56,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// The number of LEDs connected
#define DRIVER_LED_TOTAL 74
#ifdef RGB_DI_PIN
#define RGBLED_NUM 74
//# define RGBLIGHT_HUE_STEP 8
//# define RGBLIGHT_SAT_STEP 8
//# define RGBLIGHT_VAL_STEP 8
//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
/*== all animations enable ==*/
//# define RGBLIGHT_ANIMATIONS
/*== or choose animations ==*/
//# define RGBLIGHT_EFFECT_BREATHING
//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
//# define RGBLIGHT_EFFECT_SNAKE
//# define RGBLIGHT_EFFECT_KNIGHT
//# define RGBLIGHT_EFFECT_CHRISTMAS
//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
//# define RGBLIGHT_EFFECT_RGB_TEST
//# define RGBLIGHT_EFFECT_ALTERNATING
/*== customize breathing effect ==*/
/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
/*==== use exp() and sin() ====*/
//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
#define RGBLED_NUM 74
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */

View File

@@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_65_ansi(
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
/*
Templete
Template
[ ] = LAYOUT_65_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@@ -0,0 +1,55 @@
/* Copyright 2021 peepeetee
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
// Defines names for use in layer keycodes and the keymap
// enum layer_names {
// _BASE,
// _FN
// };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_65_ansi(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1),KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_65_ansi(
KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_65_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_65_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};

View File

@@ -0,0 +1 @@
# The default VIA keymap for bm68rgb

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -7,7 +7,7 @@ BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
@@ -22,6 +22,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_DRIVER = WS2812
#LTO_ENABLE = yes
LTO_ENABLE = yes
LAYOUTS = 65_ansi

Some files were not shown because too many files have changed in this diff Show More