Migrated another function from my regular keyboard code into the keycard, a simple countdown timer with 1min resolution up to 255min. I find it quite useful for reminding me that the food should come out of the oven or that I better get ready for a meeting/appointment (as you can tell, I'm not a friend of installing "apps" or another piece of software cluttering my systems ;P)
The attached archive contains the changed source and hex file w/ the timer active, if you want to go back to the previous functionality comment the line "#define __TIMER" at the beginning of kb.c and recompile the code.
The LED's still reflect the NUM, CAPS, and SCR lock status, the NUML and SCRL layers did not change (see build_kbd_report() in kb.c), but the top layer (no LED's active) is now: Left key: cancel timer, middle key: add 10min to timer (and start it if not active), right key: add 1min to timer (and start it if not active.) Once the timer expires the LED's will go nuts until you hit a key (to cancel or restart it.) Be warned:
IF YOU ARE SENSITIVE TO FLASHING LIGHTS OR SUFFER FROM PSE, THIS HAS THE POTENTIAL TO TRIGGER BAD THINGS. Please approach with caution !
The card has now become a permanent fixture in my setup at work. It's pinned to my cube wall at about eye level next to my monitor. That way I can immediately see if I hit a lock key by accident and have easy access to the keys to set/kill the timer.