keychron_qmk_firmware/keyboards
Sergey Vlasov 17bda000f3
[Keyboard] Add IDOBAO ID80 (#8728)
* id80: New keyboard (IDOBAO ID80)

Add initial support for the IDOBAO ID80 keyboard.

Most source files were generated by the KBFirmware JSON to QMK Parser
(https://noroadsleft.github.io/kbf_qmk_converter/) based on the
ID80.json file provided by the keyboard vendor.  The only change to
rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware
fit into the available flash space.

* id80: Update default keymap to match stock

Update the Fn layer in the default keymap to match the stock firmware
which was actually flashed into the PCB.

* id80: Add Caps Lock indicator support

Although the KBFirmware JSON includes information about the MCU pins
used for keyboard indicator LEDs, the KBF to QMK converter does not
generate the required code automatically.  Implement the LED handling
code, and at the same time switch from the older `led_set_kb` API to the
newer `led_update_kb`.

* id80: Remove placeholder functions

The provided skeletons for `matrix_scan_kb` and `process_record_kb` did
not do anything useful, so remove them.

* id80: Use Esc as the Bootmagic Lite activation key

The Esc key is not at the (0, 0) position in the ID80 matrix, therefore
setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to
use the Esc key for Bootmagic Lite.

* id80: Update info.json

Replace info.json generated by the KBF to QMK converter with another
version generated using http://www.keyboard-layout-editor.com/ and the
KLE raw to QMK info.json converter (https://qmk.fm/converter/).  The
updated info.json has the correct physical layout (the distance between
the function key row and the main block is actually 0.25U, but the
vendor-provided ID80.json had 0.5U there) and correct key labels (using
the stock layout instead of raw matrix locations and pin names).

* id80: Enable NKRO

The default keymap is updated to have NK_TOGG at Fn+N, like most other
keyboards which have NKRO enabled.

* id80: Use unique USB vendor/product ID

Having an unique USB vendor/product ID is required for VIA support.
The vendor ID value is the same as for the `idobo` (ID75) keyboard.

* id80: Fix right modifiers in the default keymap

For some reason the default keymap converted from the vendor-supplied
JSON had the right Shift, Alt and Ctrl keys mapped to the left side
modifier keycodes.

* id80: Remove empty row 6 (F0) from matrix

The matrix layout which was defined in the vendor-supplied ID80.json
file had 12 rows which corresponded to the left and right parts of the
6 physical rows.  However, the row 6 of the matrix (connected to the F0
pin), which corresponded to the right part of the physical bottom row,
was completely empty (all 9 keys of the bottom row were placed in the
matrix row for the left part).  Keeping this row in the matrix just
wastes resources; in particular, when the VIA support is enabled, having
a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic
macros, which is less than the recommended minimum of 128 bytes.
Removing the unused row reduces the matrix size to 9×11, which leaves
194 bytes of EEPROM space for dynamic macros.

* id80: Update row numbers in the LAYOUT macro

Update row numbers in the names of the LAYOUT macro parameters after
removing a row in the middle.

* id80: Set RGBLED_NUM to 20 to match the actual PCB

The vendor-supplied ID80.json file specified that the PCB should have
28 RGB LEDs in the chain.  However, the actual PCB that was shipped
from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4
more LEDs on top of the PCB, to the right of the Enter key location).
Update RGBLED_NUM to match the actual PCB.
2020-04-12 23:55:01 +01:00
..
1upkeyboards VIA Support: 1upkeyboards Sweet16 (#8652) 2020-04-04 16:52:05 +11:00
2_milk Fix spaceman naming (#8741) 2020-04-10 00:44:45 -07:00
2key2crawl
4by3
6ball
7skb
8pack
9key
30wer
40percentclub [Keymap] Drashna's Cleanup and RGB Divide (#8506) 2020-03-31 16:26:43 -07:00
abacus
abstract/ellipse
acheron Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
acr60
adkb96
aeboards
ai03 [Keyboard] Add Orbit-X Keyboard (#8605) 2020-04-03 04:33:53 -07:00
akb
al1
alf
allison
allison_numpad
alpha
alps64
alu84
amj40
amj60
amj96
amjkeyboard/amj66
amjpad
angel17
angel64
ares Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
ash1800
ashpil/modelm_usbc
at101_blackheart
at_at/660m Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
atomic
atreus
atreus62
baguette
bantam44
basekeys/slice info.json fix for basekeys/slice (#8606) 2020-04-02 00:40:07 -07:00
bat43 [Keyboard] Add bat43 Keyboard (#8648) 2020-04-04 21:59:49 -07:00
bear_face Fixed info.json (#8653) 2020-04-02 21:00:04 +01:00
bfake Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
bigseries
bigswitch
blackplum
blockey
bm16a Add Via keymap for BM16-A (#8681) 2020-04-08 20:04:39 +02:00
bm16s
bm43a
bm60rgb
boardwalk
boston_meetup
bpiphany
bthlabs/geekpad
business_card
butterstick DennyTom's buttery_engine (#8138) 2020-04-07 21:13:17 +10:00
c39
candybar Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
cannonkeys [Keyboard] Add CannonKeys Atlas keyboard (#8207) 2020-04-12 08:08:15 -07:00
catch22
centromere Add additional minimal "mini" keymap for Centromere (#8579) 2020-04-02 02:04:02 +11:00
cheshire/curiosity Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
chidori
chimera_ergo
chimera_ls
chimera_ortho
choco60
christmas_tree
ckeys
claw44
clueboard
cocoa40
comet46
contra
converter
copenhagen_click/click_pad_v1
coseyfannitutti [Keyboard] romeo - add via layout (#8667) 2020-04-04 22:38:25 -07:00
cospad
crawlpad
crkbd [Keymap] Drashna's Cleanup and RGB Divide (#8506) 2020-03-31 16:26:43 -07:00
cu24
cu75
cu80
cutie_club/wraith
daisy
db/db63
dc01
deltasplit75
dichotomy
diverge3
divergetm2
dk60
do60
donutcables
doppelganger
doro67 [Keymap] Update personal userspace and keymaps (#8747) 2020-04-09 09:54:19 -07:00
dozen0
dp60
duck
dumbpad
dz60 add 60_tsangan_hhkb layout to dz60 rules (#8616) 2020-04-02 20:22:48 -07:00
dztech
eco
efreet
emptystring/NQG
ep
ergo42
ergodash
ergodone
ergodox_ez Fix AVR ws2812 when ADDRESS_BASE is non zero (#8646) 2020-04-02 20:46:38 +01:00
ergodox_infinity
ergodox_stm32
ergoinu
ergosaurus
ergoslab
ergotaco
ergotravel
espectro
eve/meteor Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
evil80
exclusive
exent Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
facew
fc660c
fc980c
felix
fleuron
fluorite
flx
fortitude60 fix for split-common (#8703) 2020-04-06 20:47:31 +10:00
four_banger
foxlab/leaf60
fractal
freyr
ft/mars80 Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
gami_studio/lex60
geekboards/tester
georgi DennyTom's buttery_engine (#8138) 2020-04-07 21:13:17 +10:00
gergo
getta25
gh60 add 60_tsangan_hhkb layout to GH60 rev. C (#8617) 2020-04-02 20:32:36 -07:00
gh80_3000
gingham Add VIA to Gingham (#8651) 2020-04-02 22:18:50 +01:00
gon
gray_studio [Keymap] added vim compatibility, backspace above enter, and general macOS opt… (#8080) 2020-04-10 14:53:13 -07:00
grid600
gskt00
hadron
halberd
handwired [Keyboard] Add handwired Fc200rt qmk board (#8726) 2020-04-12 13:05:46 -07:00
hecomi
heliar/wm1_hotswap
helix [Keymap] fix OLED display on Helix keyboard keymaps default and… (#8737) 2020-04-11 10:41:12 +02:00
hhkb [Keyboard] Add 60_hhkb layout to hhkb (#8618) 2020-04-05 00:29:17 -07:00
hid_liber
hifumi
hineybush hineybush Physix Configurator bugfix (#8761) 2020-04-11 12:42:13 +01:00
honeycomb
hotdox
hs60
hub16
id80 [Keyboard] Add IDOBAO ID80 (#8728) 2020-04-12 23:55:01 +01:00
idb/idb_60
idobo
illuminati/is0
infinity60
ivy
j80 Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
jae/j01
jc65 Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
jd40
jd45
jisplit89 Update info.json (#8723) 2020-04-08 15:09:20 +02:00
jj4x4
jj40
jj50
jm60
jnao
just60
k_type
kagamidget
katana60
kbdfans change kbd67 rev1 and rev2 default keymaps (#8758) 2020-04-10 20:15:23 -07:00
kc60
kc60se
keebio [Keyboard] Quefrency Rev2 Caps Lock LED, set lighting defaults (#8729) 2020-04-12 13:09:09 -07:00
keebwerk/nano_slider
keycapsss
keyhive/maypad
kinesis
kingly_keys
kira75
kira80 add via support for kira80 (#8677) 2020-04-07 01:43:48 -07:00
kmac
kmini
knops
kona_classic
kudox
kudox_game
kv/revt
kyria [Keymap] Drashna's Cleanup and RGB Divide (#8506) 2020-03-31 16:26:43 -07:00
laptreus
lattice60 [Keyboard] Lattice60 (#8603) 2020-04-03 13:37:31 -07:00
launchpad Add RGB support in via to launchpad (#8621) 2020-04-09 09:25:08 +02:00
lazydesigners
leeku/finger65
lets_split
lets_split_eh
lfkeyboards
lily58
m0lly
m10a
maartenwut Add VIA keymap for Wasdat (#8762) 2020-04-12 15:02:14 +02:00
manta60
massdrop Modernize ctrl, shift, alt mods detection (#8724) 2020-04-10 20:19:34 +01:00
matrix
maxipad
maxr1998
mc_76k
mechkeys/mk60
mechllama/g35
mechlovin
mechmini Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
mehkee96
meira
meishi
meishi2
melody96 [Keymap] Update personal userspace and keymaps (#8747) 2020-04-09 09:54:19 -07:00
meme
meson
miller/gm862
miniaxe
minidox
mint60
mitosis
miuni32
model01
montsinger/rebound
moon
mountainblocks/mb17
mt40
mt980
mxss
nafuda
naked48
naked60
naked64
namecard2x4
navi10
ncc1701kb
nek_type_a
newgame40
nightmare
niu_mini
nk65
nomu30
novelpad
noxary
numatreus
oddball
ogre
ok60
omnikey_blackheart
omnikeyish
orange75
org60
orthodox
otaku_split
paladin64
palette1202
panc40
panc60 Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
pancake Fix spaceman naming (#8741) 2020-04-10 00:44:45 -07:00
pdxkbc
pearl Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
peiorisboards/ixora
percent Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
phantom
pico
pinky
plaid Add via keymap to plaid (#8640) 2020-04-02 22:16:49 +01:00
planck [Keymap] sigul Planck layout updates (#8649) 2020-04-02 13:09:26 +01:00
playkbtw
preonic
primekb
projectkb/alice [Keymap] added vim compatibility, backspace above enter, and general macOS opt… (#8080) 2020-04-10 14:53:13 -07:00
puck
quantrik/kyuu
qwertyydox
rabbit/rabbit68
redox
redox_w
redscarf_i
redscarf_iiplus
retro_75 Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
reversestudio/decadepad [Keyboard] Add ReverseStudio-DecadePad (#8553) 2020-04-04 22:28:40 -07:00
reviung34
reviung39
reviung41
rgbkb
runner3680
s7_elephant
scarletbandana
sck
scythe
sentraq
setta21
shiro
sidderskb/majbritt
signum/3_0/elitec
silverbullet44
singa
sirius
sixkeyboard
smk60
snagpad
snampad
southpole
spacetime
speedo
splitish [Keyboard] Add splitish (#8751) 2020-04-11 11:43:21 +10:00
splitreus62
standaside
staryu
stella
subatomic
suihankey
switchplate
sx60
tada68
tanuki
tartan
telophase
tetris
tg4x
tgr Add keyboard TGR-910 (#8683) 2020-04-05 14:48:23 +01:00
the_ruler
thedogkeyboard
thevankeyboards
tkc1800 [Keymap] Updates to personal keymaps (#8665) 2020-04-08 18:20:58 -07:00
tmo50
toad
tokyo60
touchpad
tr60w
treadstone32
treadstone48 [Keymap] Keymap refactoring in Treadstone48 (#8574) 2020-03-31 14:32:04 -07:00
treasure/type9
ua62
uk78
underscore33
unikorn Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
uranuma
ut472
uzu42
v60_type_r
vinta
vision_division
vitamins_included
vn66
waldo
wallaby
walletburner/neuron
westfoxtrot
wete Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
wheatfield [Keyboard] Wheatfield Split75 (#8511) 2020-04-07 01:36:54 -07:00
whitefox [Keymap] Update personal userspace and keymaps (#8747) 2020-04-09 09:54:19 -07:00
wilba_tech Added Caps Lock LED handler to wilba.tech PCBs (#8660) 2020-04-05 15:18:17 +01:00
winkeyless Disable console on vusb boards using mouse/extra (#8625) 2020-03-31 17:51:52 +01:00
wsk
xbows
xd60
xd68
xd75
xd84
xd87
xd96
xd004
xelus
xiaomi/mk02 Enable memcore to fix malloc/rand crashes (#8695) 2020-04-05 22:15:40 +01:00
xmmx
xw60
yatara/drink_me
yd60mq Set the correct RGB LED count on YD60MQ (#8629) 2020-04-08 18:51:18 -07:00
yd68
ymd75
ymd96
ymdk
ymdk_np21
yosino58
yurei
z150_blackheart
zfrontier/big_switch
zinc
zj68
zlant
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

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.

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.

ErgoDox EZ and Planck EZ - ZSA Technology Labs

ZSA Technology Labs maintains its own fork of QMK which feeds its configurator, for stability and legal purposes. The ZSA boards are:

  • ErgoDox EZ — A powerful split mechanical keyboard.
  • Planck EZ — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine, which ships fully assembled with a two-year warranty.

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.
  • DataHand — DataHand keyboard converted to use a Teensy board.
  • 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.
  • XD004 — 1x4 macro keyboard sold by KPrepublic.
  • XD75 — 15x5 ortholinear keyboard by XIUDI.
  • YMDK NP21 — ps2avrGB based number pad (numpad) sold by YMDK on Aliexpress.