(but because I quite like the original one, I am going to add toggle switch)
adding LED Splash effect with the provided QMK software.
demo video: https://youtu.be/W3U1SDztx1I
installing video: https://youtu.be/TsPV_rCVT-k (or more recommanded to use the simple installer)
feel free to leave comments or feature request.
- download the
download_and_install.bat
file and just execute (double click) it
- bin file inside /.build/
-
Hold(Fn + P) + A
,Hold(Fn + P) + D
: Previous/Next dripple effect- 0: None
- 1: background off wave on (default)
- 2: background on wave off
- 3: rainbow wave 🌈
- 4: rainbow wave on rotate background
-
Hold(Fn + P) + W
,Hold(Fn + P) + S
: Increase/Decrease dripple wave width (default: 2, 10 on rainbow and 5 on wave off, set to >10 and press space to see true rainbow!) -
Hold(Fn + P) + Q
,Hold(Fn + P) + E
: Decrease/Increase wave speed (actually it's wave period, default: 30~50ms, 10ms per incre/decre, lowest(fastest): 10ms) -
Hold(Fn) + Up
,Hold(Fn) + Down
: scroll up and down (implemented with MOUSEKEY, because page up/down scrolls too fast) -
Hold(Fn + P) + Tab
: Toggle between two rainbow color preset
UIO
are equivalent to QWE
(the keys will light up after pressing Fn + P
JKL
are equivalent to ASD
so as to allow one hand switching
-
add indicator
-
check out the functions from
https://beta.docs.qmk.fm/features/feature_rgblight
basically all changes happen only in /keyboards/massdrop/ctrl/keymaps/custom/keymap.c
:
Inspired by LastContinue's Post,
by abusing led_instructions_t
to set the led of each individual key only in keymap.c
(It is understood to be very inefficient, but one benefit of this is being more prone to future changes (if any, ok I know there is very little) and slightly more portable (more below)).
one core function is unsigned char ktli(uint16_t keycode);
where you input the keycode to return the id of the led light that key correspond to (as mentioned in the post).
Therefore, ideally, changing this function alone is enough to use the code on other QMK 87 keyboards (assumption is made that the parent project from massdrop is identical to QMK's, but that's not true, I am unable to compile the code with QMK's firmware fork, didn't bother to debug).
another core function is matrix_scan_user()
This is provided in the specification. This function is invoked after every
small period, to check the time passed after a key press registered as in
process_record_user(keycode)
(which stores information in KEY_STROKES
),
against the distance between the registered key and the targeted led key.
The DISTANCE_MAP[][]
(as initialized from matrix_init_user()
)
recorded the distances (adjacent key as 1 unit) between each of the two keys.
While additional algorithm is used to calibrate the distance between two keys
which appears to be distinct in a 2D array, but adjacent in reality. (
This process could have been cached before compiling)
- please raise a ticket if you find one
This project is just for fun and please don't be serious 😊.
+ /hid_listen.exe
+ /key_distance.py
+ /.build/*
+ /keyboards/massdrop/ctrl/keymaps/custom/*
+ /keyboards/massdrop/ctrl/keymaps/custom_activate_on_press/*
! /keyboards/massdrop/ctrl/keymaps/config.h
# adding parameters for MOUSEKEY
! /keyboards/massdrop/ctrl/keymaps/rules.mk
# changing MOUSEKEY_ENABLE = yes
other changes are unintentional or not important.
a copy of the above readme is in /keyboards/massdrop/ctrl/
, NO
below is the content from the original readme
This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.
The docs are hosted on Gitbook and GitHub (they are synced). You can request changes by making a fork and pull request, or by clicking the "suggest an edit" link on any page of the docs.
The project also includes community support for lots of other keyboards.
QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by Erez Zukerman, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.
http://qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.