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
Thanks.
How hard would it have been for them to post what you wrote somewhere in the setup instructions ...
cgi-bin/build_layout.bash fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0 KType standard "KType-Standard-0.kll" "KType-Standard-1.kll" "KType-Standard-2.kll" 2>&1 + DefaultMapOverride='stdFuncMap KType-Standard-0' + PartialMapsExpandedOverride='stdFuncMap KType-Standard-1;stdFuncMap KType-Standard-2' + CMakeExtraArgs=-DCONFIGURATOR=1 + /srv/KiiConf/controller/Keyboards/k-type.bash -c /srv/KiiConf/controller -o /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0 linux-gnu/Linux is supported. Selected Generator: Ninja /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0 -- Build CPU Detected: x86_64 -- Build OS Detected: Linux 4.9.7-x86_64-linode80 -- Compiler Family: arm -- Compiler Selected: gcc -- Chip Selected: mk20dx256vlh7 -- Chip Family: mk20dx -- CPU Selected: cortex-m4 -- Compiler Source Files: Lib/mk20dx.c;Lib/delay.c;Lib/entropy.c;Lib/time.c -- Bootloader Type: dfu -- Full Compiler: /usr/bin/arm-none-eabi-gcc -- Detected Scan Module Source Files: Scan/Devices/ISSILed/i2c.c;Scan/Devices/ISSILed/led_scan.c;Scan/Devices/MatrixARM/matrix_scan.c;Scan/Devices/PortSwap/port_scan.c;Scan/Devices/UARTConnect/connect_scan.c;Scan/K-Type/scan_loop.c -- Detected Macro Module Source Files: Macro/PartialMap/macro.c;Macro/PartialMap/result.c;Macro/PartialMap/trigger.c;Macro/PixelMap/pixel.c;/srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0/generatedPixelmap.c -- Detected Output Module Source Files: Output/HID-IO/hidio_com.c;Output/pjrcUSB/output_com.c;Output/pjrcUSB/arm/usb_desc.c;Output/pjrcUSB/arm/usb_dev.c;Output/pjrcUSB/arm/usb_joystick.c;Output/pjrcUSB/arm/usb_keyboard.c;Output/pjrcUSB/arm/usb_mem.c;Output/pjrcUSB/arm/usb_mouse.c;Output/pjrcUSB/arm/usb_rawio.c;Output/pjrcUSB/arm/usb_serial.c -- Detected Debug Module Source Files: Debug/cli/cli.c;Debug/led/led.c;Debug/print/print.c -- Found Git: /usr/bin/git (found version "1.9.1") -- Found Ctags: /usr/bin/ctags (found version "5.9~svn20110310") ctags: cannot open tag file : Permission denied -- Found PythonInterp: python3 (found suitable version "3.4.3", minimum required is "3") -- Detected Layout Files: /srv/KiiConf/controller/Scan/Devices/ISSILed/capabilities.kll /srv/KiiConf/controller/Scan/Devices/MatrixARM/capabilities.kll /srv/KiiConf/controller/Scan/Devices/PortSwap/capabilities.kll /srv/KiiConf/controller/Scan/Devices/UARTConnect/capabilities.kll /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll /srv/KiiConf/controller/Macro/PixelMap/capabilities.kll /srv/KiiConf/controller/Output/HID-IO/capabilities.kll /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll /srv/KiiConf/controller/Scan/K-Type/scancode_map.kll /srv/KiiConf/controller/kll/layouts/stdFuncMap.kll /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0/KType-Standard-0.kll /srv/KiiConf/controller/kll/layouts/stdFuncMap.kll /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0/KType-Standard-1.kll /srv/KiiConf/controller/kll/layouts/stdFuncMap.kll /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0/KType-Standard-2.kll -- Found DFU_SUFFIX: /usr/local/bin/dfu-suffix (found version "0.8") -- Configuring done -- Generating done -- Build files have been written to: /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0 [1/33] Generating KLL Layout FAILED: cd /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0 && /srv/KiiConf/controller/kll/kll --version && /srv/KiiConf/controller/kll/kll --config /srv/KiiConf/controller/Scan/Devices/ISSILed/capabilities.kll /srv/KiiConf/controller/Scan/Devices/MatrixARM/capabilities.kll /srv/KiiConf/controller/Scan/Devices/PortSwap/capabilities.kll /srv/KiiConf/controller/Scan/Devices/UARTConnect/capabilities.kll /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll /srv/KiiConf/controller/Macro/PixelMap/capabilities.kll /srv/KiiConf/controller/Output/HID-IO/capabilities.kll /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll --base /srv/KiiConf/controller/Scan/K-Type/scancode_map.kll --default /srv/KiiConf/controller/kll/layouts/stdFuncMap.kll KType-Standard-0.kll --partial /srv/KiiConf/controller/kll/layouts/stdFuncMap.kll KType-Standard-1.kll --partial /srv/KiiConf/controller/kll/layouts/stdFuncMap.kll KType-Standard-2.kll --emitter kiibohd --def-template /srv/KiiConf/controller/kll/templates/kiibohdDefs.h --map-template /srv/KiiConf/controller/kll/templates/kiibohdKeymap.h --pixel-template /srv/KiiConf/controller/kll/templates/kiibohdPixelmap.c --def-output kll_defs.h --map-output generatedKeymap.h --pixel-output generatedPixelmap.c --preprocessor-tmp-path /srv/KiiConf/tmp/fb143f4e42e4adfdc9b9578124ab7cf7159f4aadcde9a0/tmp_kll kll BETA 0.5c.f0f1032e4690f103be99d616c17d0c22a2a7633c - 2017-10-14 15:44:22 -0700 Traceback (most recent call last): File "/srv/KiiConf/controller/kll/kll", line 159, in <module> control.process() File "/srv/KiiConf/controller/kll/common/stage.py", line 123, in process stage.process() File "/srv/KiiConf/controller/kll/common/stage.py", line 2827, in process self.emitter.process() File "/srv/KiiConf/controller/kll/emitters/kiibohd/kiibohd.py", line 671, in process self.fill_dict['ResultMacros'] += "{0}, ".format(self.result_combo_conversion(combo)) File "/srv/KiiConf/controller/kll/emitters/kiibohd/kiibohd.py", line 249, in result_combo_conversion cap_index = self.capabilities_index[identifier.name] KeyError: 'None' ninja: build stopped: subcommand failed. Error in make. Exiting... + RETVAL=1 + set +x Compilation Completed.