qmk/keyboards
James Churchill 28929ad017 Simplify split_common Code significantly (#4772)
* Eliminate separate slave loop

Both master and slave run the standard keyboard_task main loop now.

* Refactor i2c/serial specific code

Simplify some of the preprocessor mess by using common function names.

* Fix missing #endif

* Move direct pin mapping support from miniaxe to split_common

For boards with more pins than sense--sorry, switches.

* Reordering and reformatting only

* Don't run matrix_scan_quantum on slave side

* Clean up the offset/slaveOffset calculations

* Cut undebounced matrix size in half

* Refactor debouncing

* Minor fixups

* Split split_common transport and debounce code into their own files

Can now be replaced with custom versions per keyboard using
CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes

* Refactor debounce for non-split keyboards too

* Update handwired/xealous to build using new split_common

* Fix debounce breaking basic test

* Dodgy method to allow a split kb to only include one of i2c/serial

SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only
that driver code in the binary.

SPLIT_TRANSPORT = custom (or anything else) will include neither, the
keyboard must supply it's own code

if SPLIT_TRANSPORT is not defined then the original behaviour (include
both avr i2c and serial code) is maintained.

This could be better but it would require explicitly updating all the
existing split keyboards.

* Enable LTO to get lets_split/sockets under the line

* Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE

* Remove avr-specific sei() from split matrix_setup

Not needed now that slave doesn't have a separate main loop.
Both sides (on avr) call sei() in lufa's main() after exiting
keyboard_setup().

* Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT.

* Add comments and fix formatting.
2019-01-17 10:08:14 -08:00
..
1upkeyboards [Keymap] Sweet16 as a switch tester (#4822) 2019-01-11 17:27:15 -08:00
6ball Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
9key Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
30wer
40percentclub 40percent.club Luddite: Configurator update (#4859) 2019-01-16 12:15:21 -08:00
412_64 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
acr60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
al1 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
alf Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
alpha Alternate keymap for Alpha keyboard, enjoy! (#4797) 2019-01-07 13:06:34 -08:00
alps64 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
alu84 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
amj40 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
amj60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
amj96 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
amjpad Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
at101_blackheart
atom47 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
atomic Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
atreus Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
atreus62 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
baguette
bantam44 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
bface Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
bfake Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
bfo9000 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
bigseries
bigswitch
blockey Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
bmini Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
bminiex
bpiphany Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
bthlabs/geekpad [Keyboard] Add bthlabs/geekpad (#4840) 2019-01-15 07:49:34 -08:00
canoe Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
catch22 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
chibios_test Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
chimera_ergo Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
chimera_ls
chimera_ortho Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
chocopad Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
christmas_tree Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
ckeys [Keyboard] Add cKeys Handwire 101 Keyboard (#4848) 2019-01-15 14:06:35 -08:00
clueboard Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
cod67 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
comet46
contra Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
converter Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
cospad
crawlpad Crawlpad refactor (#4854) 2019-01-16 09:08:12 -08:00
crkbd [Keymap] my keymap for the crkbd and update my iris keymap readme (#4788) 2019-01-12 21:09:04 -08:00
cu24 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
cu75 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
daisy Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
dc01 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
deltasplit75 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
dichotomy Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
dilly Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
diverge3 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
divergetm2
dk60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
do60
duck Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
dz60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
e6v2 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
eco Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
ep
ergo42 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
ergodash
ergodone
ergodox_ez [Keymap] Adding bdk keymap for ergobox_ez (#4850) 2019-01-16 23:16:18 -08:00
ergodox_infinity
ergoinu Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
ergotravel Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
espectro Keymap: added my espectro keymap (#4791) 2019-01-06 10:36:24 -08:00
evil80
facew Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
fc660c Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
fc980c Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
felix Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
fleuron Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
fortitude60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
four_banger Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
fourier Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
fractal Keyboard: Fractal layout macro and readme cleanup (#4789) 2019-01-06 11:05:24 -08:00
gergo [Keyboard] Fix layout macro name for Gergo info.json (#4828) 2019-01-12 00:06:41 -08:00
gh60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
gh80_3000 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
gonnerd Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
gskt00
h87a Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
hadron Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
handwired Simplify split_common Code significantly (#4772) 2019-01-17 10:08:14 -08:00
helix Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
hhkb Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
hid_liber Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
hs60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
idobo
infinity60 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
iris [Keyboard] Iris via support, Rev 3 updates (#4849) 2019-01-15 14:04:56 -08:00
jc65 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
jd40
jd45
jj40 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
jj50 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
jm60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
k_type Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
katana60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kbd4x
kbd6x Add personal userspace, update keymaps (#4845) 2019-01-14 09:09:47 -08:00
kbd8x Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kbd19x
kbd66 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kbd67 [Keyboard] Turn on KBD67 Lighting by default (#4826) 2019-01-11 17:11:48 -08:00
kbd75 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kc60 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
kc60se Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kinesis Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
kira75 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kmac Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
kmini
knops Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
kona_classic Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
laplace Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
launchpad Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
lazydesigners/the50 [Keyboard] Add support for THE50 (#4844) 2019-01-14 00:49:00 -08:00
lets_split Simplify split_common Code significantly (#4772) 2019-01-17 10:08:14 -08:00
lets_split_eh [Keymap] Added resfury keymap (#4827) 2019-01-15 07:45:49 -08:00
levinson
lfkeyboards Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
lily58 Keyboard: Lily58 update serial.c and add OLED (#4715) 2019-01-05 09:30:48 -08:00
m10a Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
massdrop Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
maxipad Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
mechmini Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
mehkee96 Keyboard: update readme with ps2avr flashing instructions (#4776) 2019-01-05 10:04:45 -08:00
meira Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
melody96 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
meme Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
miniaxe Simplify split_common Code significantly (#4772) 2019-01-17 10:08:14 -08:00
minidox Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
mint60 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
mitosis Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
miuni32 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
model01
mt40
mxss Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
namecard2x4
newgame40
niu_mini Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
novelpad Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
noxary Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
nyquist Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
ok60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
omnikey_blackheart Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
orange75
org60
orthodox
paladin64 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
panc60
pearl
phantom Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
pinky add Pinky keyboard (#4748) 2019-01-05 09:35:48 -08:00
planck Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
playkbtw Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
preonic Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
primekb [Keymap] Update to personal keymaps and userspace (#4831) 2019-01-12 09:32:50 -08:00
proton_c Adds Proton C Conversion (#4661) 2019-01-10 08:22:57 -08:00
ps2avrGB
puck
quefrency Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
qwertyydox Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
rama Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
redox
redox_w
rorschach Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
s7_elephant
s60_x Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
s65_plus S65-X and S65-Plus updates and refactoring (#4780) 2019-01-04 21:47:13 -08:00
s65_x S65-X and S65-Plus updates and refactoring (#4780) 2019-01-04 21:47:13 -08:00
satan Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
scrabblepad Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
singa Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
sixkeyboard Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
sixshooter Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
skog
snagpad Adding keyboards/handwire/numbrero (#4773) 2019-01-04 21:38:22 -08:00
sol
speedo Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
staryu Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
subatomic
sx60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
tada68
tanuki Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
telophase Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
tetris Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
the_ruler Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
thevankeyboards Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
tkc1800 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
toad
tokyo60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
touchpad Adds support for JacoBurge's TouchPad (#4186) 2019-01-10 08:26:40 -08:00
tragicforce68 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
treasure/type9
uk78 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
v60_type_r Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
vinta Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
vision_division Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
vitamins_included
viterbi Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
wavelet Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
westfoxtrot/cyclops
whitefox Add personal userspace, update keymaps (#4845) 2019-01-14 09:09:47 -08:00
wilba_tech
xd60 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
xd75 Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
xd87
xmmx
yd68
ymd75 Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
ymd96 Keymap: Added Model F-inspired layout for YMD[K]96 (#4777) 2019-01-07 13:00:15 -08:00
ymdk_np21
z150_blackheart
zeal60 Final HS60v2 changes. (#4790) 2019-01-06 17:22:19 -08:00
zeal65
zen Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
zinc
zlant Modified URLs to point to new locations 2019-01-13 09:11:18 -08:00
readme.md

Included Keyboards

QMK runs on a diverse range of keyboards. Some of these keyboards are officially supported and see constant community contributions, while others are part of the repository for historical reasons.

Official QMK Keyboards

These keyboards are manufactured by the maintainers of QMK.

Ortholinear Keyboards - Jack Humbert

What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through olkb.com as well as through Massdrop from time to time, as easy to assemble kits.

  • Planck — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine.
  • Preonic — Like the Planck, but bigger. 50%.
  • Atomic — Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine bigger. That is the Atomic. A 60% keyboard.

ErgoDox EZ - Erez Zukerman

Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on ergodox-ez.com.

  • ErgoDox EZ — Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types.

Clueboard - Zach White

Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on clueboard.co

  • Clueboard — The 66% custom keyboard.
  • Cluecard — A small board to help you hack on QMK.
  • Cluepad — A mechanical numpad with QMK superpowers.

Community-supported QMK Keyboards

These keyboards are part of the QMK repository, but their manufacturers are not official maintainers of the repository.

  • 9key — A 9-key minipad sold by Bishop Keyboards.
  • Alps64 — A 60% keyboard for Alps keyswitches.
  • AMJ60 — DIY/Assembled compact 60% keyboard.
  • Arrow Pad — A custom creation by IBNobody.
  • Atreus — Made by Technomancy.
  • Bantam44 — It is a 44-key 40% staggered keyboard.
  • Ergodox Infinity - Ergonomic Split Keyboard by Input Club.
  • GH60 — A 60% Geekhack community-driven project.
  • GON NerD — Korean custom 60% PCB
  • Happy Hacking Keyboard — The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
  • Infinity 60% - — Compact community keyboard by Input Club.
  • JD45 — Another Geekhack community project, designed by jdcarpe.
  • JJ40 — ps2avrGB based ortholinear sold by KPrepublic
  • KBD75 — A 75% keyboard made by made by KBDFans.
  • KC60 — A programmable Chinese-made keyboard, lost in the mists of time.
  • Kinesis Advantage — Contoured ergonomic keyboard by Kinesis Computer Ergonomics.
  • KMAC — Korean custom keyboard.
  • The Kitten Paw — A replacement controller (2016 revision) for the Filco Majestouch by Bathroom Epiphanies.
  • Lets Split - Split ortholinear 40% keyboard.
  • Phantom — A tenkeyless kit by Teel, also from Geekhack.
  • Retro Refit — Another creation by IBNobody.
  • S60-x — DIY compact keyboard designed by VinnyCordeiro for Sentraq.
  • Satan — A GH60 variant.
  • SixKeyBoard — A 6-key keyboard made by TechKeys.
  • TheVan 44 — A 44-key staggered keybard by Evangs.
  • WhiteFox — A 65% keyboard designed as a partnership by matt3o, Massdrop and Input Club
  • Vision Division — Full Size / Split Linear Keyboard by IBNobody.
  • XD75 — 15x5 ortholinear keyboard by XIUDI.
  • YMDK NP21 — ps2avrGB based number pad (numpad) sold by YMDK on Aliexpress.