Writing home row modifiers for Embedded Controller

I’ve been poking through the EmbeddedController repository on the Framework GitHub page to see how the keyboard operates to send data for key presses. From the best I can tell, the code eventually calls out to a method that sends the key press along to the host to read it and do whatever the key press specifies. I use a Corne with home row modifiers because it uses QMK and would love to have home row modifiers on my 13 as well. Has anyone taken a crack at making a custom keyboard firmware that hijacks that signal to correctly send out something like “Alt” if a key is held for a period of time? I see some branches that have a board directory but I didn’t see anyone who was trying home row modifiers.

Are you on Linux by chance?
KMonad offers muti-use keys with things like hold, tap-hold, multi-tap, github.com/kmonad/kmonad/tree/master#multi-use-and-multi-tap-buttons. I would hope there is way to get similar on Windows, but I wouldn’t know where to find it.

I am on Linux and I actually saw a post on here that mentioned kmonad as a set up. I’ll probably give it a test here soon but I also like rolling my own solutions when possible and would love to explore the firmware more so I could maybe help contribute in the future so I want to try implementing this through the firmware Framework has published first.

1 Like