https://github.com/qmk/qmk_firmware
https://github.com/rvaiya/keyd
https://github.com/kmonad/kmonad
https://github.com/manna-harbour/xmk
keyd
and kmonad
are both nice, but typing feels different (not necessarily
bad, just different) from qmk
(ok, typing on laptop feels bad anyway…)
xmk
has x86 but only for zmk
. I like qmk
better and probably hacking this
together took the same amount of time I would have needed to fight with Weston
and Zephyr and their weird config and unintelligible errors (I did that some
time ago and it was no fun)
Input/output same as keyd
(grab device / output on uinput), processing qmk
.
You’ll have to run as root
(or change permissions for uinput
and add your
user to input
group – bad security!)
Do a make
first to rule out other problems. If the build is ok, look in
First couple of lines, should be obvious. This is instead of qmk’s config.h
and rules.mk
. Of course, there’s only a fraction of qmk’s settings to worry
about.
This is qmk’s <kb_name>.c
.
qmk
‘s layers
kbName
and kbBlacklist
are for picking the input (you can check your
keyboard’s name with xinput
for instance).
layout
– rows on your physical keyboard. For key names look in
platforms/x86/cpp/keynames.cpp
.
It doesn’t matter how you distribute your keys on rows/columns, it just has to
be the same in layout/keymap (it doesn’t have to look like a picture of your
keyboard)
Besides qmk
, almost all relevant code is in platforms/x86
. I did very few
changes to qmk
(but removed a lot from it, mostly to be able to search for
things more easily).
Makefile… well, can’t build qmk
with g++ and I was too lazy to write C.
For other qmk features (like leader key, tap-dance, …) you’ll have to enable
them in Makefile, find the needed files, add them to the Makefile and fix build
errors.
I think at least a mutex is needed for catrix
(var name to avoid “matrix”).
But it hasn’t crashed on me yet.
Plenty of room for improvement, like sleeping longer than 20ms in main loop and
waking it with an interrupt. Integrating with upstream qmk as another platform
(even though I don’t think future improvements in qmk will benefit a standard or
laptop keyboard).
Whatever qmk
and keyd
have (this is mostly copy/paste from those 2
projects).
Leave a Reply