What is SpaceFN and why you should give it a try
The SpaceFN concept - setting up your space key as a layer switch when held - is probably one of the most useful tweaks in the keyboard hobby. Let me explain how it works. My SpaceFN article on kbd.news made some rounds recently - quite surprisingly given the age of this concept. This piece you're reading is a condensed version of the full post. If you're left with unanswered questions, you'll most likely find the info you're looking for in the original write-up. On my imaginary top list of the most useful keyboard features, tweaks and hacks, SpaceFN would deserve a podium finish for sure. But what makes it so special? In short: SpaceFN is easy to implement, easy to learn, costs nothing, can be used with any keyboard, and can improve your productivity instantly. I will list its benefits below, but can state right at this point that the SpaceFN concept, setting up your space key as a layer switch when held, is clearly one of the most useful tweaks in the keyboard hobby....
Apr 30, 2024
First, copy everything from an existing ergodox keymap from keyboards/ergodox/keymaps ("default" is the ergodox EZ default layout, which is a good start) to a new directory in .../keymaps (e.g., qmk_firmware/keyboards/ergodox/keymaps/melan_mantis). Then, modify the keymap.c file in the new directory to fit your needs. To build and flash it, plug in the left side and from the root directory of the project (probably called qmk_firmware), run the command: make ergodox-infinity-melan_mantis-dfu-util. Then, plug in the right side and run: make ergodox-infinity-melan_mantis-dfu-util MASTER=right
So I'm using the QMK firmware right now. The instructions on http://qmk.fm/keyboards/ergodox/ work, be sure to have the correct build environment (ideally running on Linux) and dependencies installed (see util/install_dependencies.sh) . If you then cd into the ergodox folder, you only need to execute the described make calls (replace "keymapname" with your chosen layout folder), the "...-dfu-util" make commands perform the flashing.
Another hint which worked well for me: the Ergodox EZ also uses QMK, so you can use the configurator on http://configure.ergodox-ez.com/keyboard_layouts/new to create your own layout. Then you can get the keymap.c by using "Download source", put it into a new "ergodox/keymap/<your layout>" folder, compile and flash it with the make commands. I modified the generated keymap.c a little, i.e. I removed the LED stuff from the "matrix_scan_user" function as there are no LEDs on my Ergodox Classic.
The nice thing with QMK is that I can use the same keymap.c for my Ergodox Classic and the Infinity, and both are working great. :) So I probably will stick to QMK for the Infinity.