I'm having semi irrational thoughts about printing a keyboard.
Controller: this category got a lot easier recently it appears with the cheap and well support Raspberry Pi Pico. $6 AUD and it has like 40 general purpose IO pins so supports many rows & columns etc without getting tricksy.
Software: this software called Mechware can be configured and compiled for a Raspberry Pi Pico, and is written in C.
I would follow various diode guides about how to solder.
There is a key cap model generator here on thingiverse, although I'm not sure if it will do what I want for low height keys for non-standard switches. I'm guessing I'd just use openscad.