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
You can edit the keys to you layout to your setup by highlight keys on the template with your mouse and move them around by using arrow keys. I believe only the main legend on the template will be registered when reprogramming the keyboard. So I had to make a separate layout when doing my second layer when using Fn key.
Once you are done with you are done configuring the keys, go to the Raw data tab and copy it onto the tkg.io website. I had to remove any function keys on the layout to make it work.
You can use the raw data I have for my keyboard to see how it looks, you can just paste it into the layout editor in the Raw data tab to see it or change what you need.
Main Layer: ["F1","F2",{x:0.25,a:0},"Esc\n\n\n\n\n`",{c:"#ffac00",a:4},"!\n1",{c:"#008fb0"},"@\n2",{c:"#249c78"},"#\n3",{c:"#a89f8d"},"$\n4",{c:"#dca2c8"},"%\n5",{c:"#cccccc"},"^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace",{c:"#008fb0"},"Del"], [{c:"#cccccc"},"F3","F4",{x:0.25,w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\",{c:"#008fb0"},"PgUp"], [{c:"#cccccc"},"F5","F6",{x:0.25,w:1.75},"Caps Lock","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter",{c:"#008fb0"},"PgDn"], [{c:"#cccccc"},"F7","F8",{x:0.25,w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:1.75},"RShift",{c:"#ffac00"},"↑",{c:"#008fb0"},"End"], [{c:"#cccccc"},"F9","F10",{x:0.25,w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:6.25},"Space","RAlt","Fn0","RCtrl",{c:"#ffac00"},"←","↓","→"]
2nd layer: [{a:7},"","",{x:0.25,a:4,fa:[1]},"~\n`\n\n\n\n\n¬",{c:"#ffac00",f:3},"F1",{c:"#008fb0",f:3},"F2",{c:"#249c78",f:3},"F3",{c:"#a89f8d",f:3},"F4",{c:"#dca2c8",f:3},"F5",{c:"#cccccc",f:3},"F6",{f:3},"F7",{f:3},"F8",{f:3},"F9",{f:3},"F10",{f:3},"F11",{f:3},"F12",{a:7,w:2},"",{c:"#008fb0",a:4,f:3},"PrtSc"], [{c:"#cccccc",a:7},"","",{x:0.25,w:1.5},"","",{a:4,f:3},"↑",{a:7},"","","","","","","","","","",{w:1.5},"",{c:"#008fb0",a:4,f:3},"VolUp"], [{c:"#cccccc",a:7},"","",{x:0.25,w:1.75},"",{a:4,f:3},"←",{f:3},"↓",{f:3},"→",{a:7},"","","","","","","","",{w:2.25},"",{c:"#008fb0",a:4,f:3},"VolDn"], [{c:"#cccccc",a:7},"","",{x:0.25,w:2.25},"","","","","","","","","","","",{w:1.75},"",{c:"#ffac00"},"",{c:"#008fb0"},""], [{c:"#cccccc"},"","",{x:0.25,w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","",{c:"#3a9e86"},"",{c:"#cccccc"},"",{c:"#ffac00"},"","",""]
Once you see it all green, you are good to burn in the file to the keyboard. You will need to plug in the keyboard while holding the Esc key. The site should detect the keyboard and reflash it for you.
Well I hope this helps, I had to spend a ton of time figuring out the this myself, just hope to save someone some time.
Do you know of any alternative?
I have tried doing it myself, but my pc finds it as a HID EEPROM deveice, so I cant try that method.
Basically, the Fn key itself will not function as exactly that. I can change that key to be used as RCtrl and it registers so it's not a soldering or switch issue, but putting it back as the Fn key does not let me use it at all. It's as if that key itself does nothing. I'll hold it down and every key types as if it's the first layer.
I tried it with your layout even, and it doesn't want to work. :-(
Ah! question: is there a way to control not only the LED on individual keys but also the LED incorporated in the PCB (the ones that work with the remote-control)?