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.
search
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. Why? How? Let me explain it so you can start boosting your productivity right away.
If you already use it, you may read this article as a self-justification. If you heard about SpaceFN but haven't tried it yet, let me convince you and show you some implementations. And if you're not sure about what SpaceFN is, read this write-up because it may change your life - well, at least that part you spend in front of monitors.
Setting up Space FN is the very first thing I do when I get a new keyboard...
...and believe me, running a blog called kbd.news makes it pretty much unavoidable to get and test new keyboards every week. Loosely recreating my custom keymap and being able to use an additional SpaceFN layer is crucial, especially when I have to revert to the standard layout and horizontal staggering after using split keyboards.
Well, as a matter of fact, I don't even have to set up SpaceFN in this case. Because I find it so essential that a handy tool is running on my PC taking care of this for me, automatically. I do think it would be a real blunder if you missed this incredible feature, so do yourself a favor and read on.
SpaceFN historyOf course I'm not the one who came up with this concept. The first useful post on the subject I came across was probably this geekhack thread by spiceBar, from 2013, advocating this layout:
search
And Matias.ca's Edgar Matias was already working on the dual use of standard keys as modifiers in the '90s. However, I'm pretty sure that the roots of this concept date back to the early days of computing.
What is SpaceFN?
In short: The SpaceFN concept means you use your spacebar as a layer switch when held. If you are familiar with QMK terminology, this is a simple layer-tap double-function.
Confused already? Here's the gist:
You turn the spacebar into a double-function key, making it behave differently when pressed shortly compared to when held down. One key, two functions.
If you hit your spacebar shortly, it produces a space character as usual and expected. Holding it down, however, activates a new layer. All the other keys may have a new function this way, pretty much anything you'd like: arrows, navigation, numbers, you name it.
Brilliant, isn't it?
Why is Space FN so useful?The most important factor in my opinion is that you can access a new layer and new functions without moving your hands. I'm talking about a whole new logical layer in the keymap.
You get a bunch of new functionality while staying on the home row. Your thumbs are already resting on the spacebar anyway, so you don't have to navigate away when reaching over to a dedicated FN-key.
You can activate your FN layer with either thumbs! Allowing you to use modifiers with any key combination.
Often, the built-in FN layer a new keyboard may be shipped with conceals pretty useless or rarely needed functions (RGB, mouse keys, etc.). I guess you want more frequently used stuff under your fingertips.
What exactly is useful depends on your workflow and use case of course, but I personally would put my first and most important layer there: arrows and navigation, numbers, some frequently used symbols, maybe F-keys if there's enough room.
This way you don't have to reach over to the arrow cluster, because it's already under your right hand fingers when the spacebar is held. Numbers? Ditto. F-keys? You can put them to the number row if you'd like, bringing them a bit closer.
Any cons of SpaceFN?
Let's talk about the few disadvantages this setup has. These may or may not affect you:
▪️ You cannot hold your spacebar to churn out multiple spaces, so no auto-repeat (gaming?).
▪️ Space characters are registered when releasing the key (keyup event) rather than when pressing it (keydown).
▪️ Holding spacebar for a prolonged time may cause fatigue, strain, etc. in your thumbs.
How to set up SpaceFN?
SpaceFN can be easily set up using popular tools like VIA, Vial or QMK, but there are many third-party apps too for the case your keyboard is not programmable.
How to set up SpaceFN in VIA?
Actually, there's a dedicated Space Fn function in VIA, which we can use as a shortcut for LT 1 (or 2, 3), turning our spacebar into a double-function key:
▪️ Click your Space key on the default Layer 0 to make it active.
▪️ Select the LAYERS tab (bottom left corner), and click one of the Space Fn1 (or 2, 3) buttons.
▪️ This will assign the layer tap function to your Space, activating the chosen layer when held.
search
Congratulations! You've just set up your spacebar in VIA!
All you have to do is now to create Layer 1 (or 2-3) if you haven't done so yet. Jump to the example layouts below.
How to set up SpaceFN in Vial?
As a first step, we are going to assign LT 1 (or 2, 3) to space on the base layer:
▪️ Click your Space key on the default Layer 0.
▪️ Select the Layers tab, and click LT 1 (or 2, 3). This will assign the layer tap function to your Space.
▪️ Click the tap box of the LT 1 function assigned to your spacebar.
▪️ Select Space from the function list (Basic or ISO/JIS tab).
search
Congratulations! You've just set up your spacebar to produce a space when tapped, and to switch to Layer 1 when held. Jump to the example layouts below.
How to set up SpaceFN in QMK?
In basic QMK terms, SpaceFN is simply:
▪️ LT(1, KC_SPC)
On a general level, you can assign this to any key, but if we break it down, this particular example means:
▪️ "LT": layer tap (turning the key into a double-function one, assigning two different function when pressed or held)
▪️ "1": when the key is held, activate Layer 1 (momentarily)
▪️ "KC_SPC": when the key is pressed (shortly), output the KC_SPC (space) keycode
How to set up SpaceFN with non-programmable keyboards?
All is not lost if your keyboard is not programmable. There are apps running on your host computer doing pretty much the same thing: listening for your spacebar and remapping keys when it's held.
SpaceFN on WindowsWhen I came across this concept for the first time, I stumbled upon TouchCursor, a free Windows software. First released in 2006, last updated in 2010, I still have it running on my keyboard testing PC. :D So if I plug in any new keyboard, I already have SpaceFN and don't have to bother with VIA/Vial, or especially some obscure proprietary software.
search
However, TouchCursor is only one from the many similar apps. If you use AutoHotKey for various tasks already, you can set up SpaceFN in AHK too.
Another tool I used, basically an AHK extension, was PKL (Portable Keyboard Layout). You don't have to install anything and can take your layout with you.
SpaceFN on Linux
KMonad is there for Linux (with the recommendation of Matthias Goffette).
Example layout
So you’ve set up SpaceFN in Via/VIAL/QMK. Well done.
The original idea back in 2013 materialized as a semi-standardized SpaceFN layer. Still, I like to call it a concept, because as already told, you can and should put whatever you want on your SpaceFN layer.
search
I like to add much more functionality so I don't have to leave the main typing area for e.g. arrows (navigation and editing) or numbers either:
search
This is something I like to use as a start when setting up a new keyboard. As you can see, now I don't need a dedicated arrow and navigation cluster, nor the number row to type numbers.
(Keep in mind that for all the unused keys, setting them transparent would make more sense. I only set them to KC_NO for better visibility.)
Conclusion
By assigning a second (hold) function to your spacebar, you can access a whole new logical layer stuffed with dozens of useful functions without even moving your hands. Staying on the home row results in less overall movement, but it also prevents a lot of typing errors. Both of your thumbs are already resting on the spacebar anyway, so it should be fairly easy to adapt to this new setup.
I've been using Space FN ever since 2018, and I can only recommend you to give it a try if you haven't done so yet.
I would (and do, though I use a Corne) add that a lefthand numpad would fit nicely here too.
Edit: I get fast repeats on space & enter on my setup (both are layer keys) with a double-tap-hold.
Or you could simply get rid of the giant, unnecessarily large spacebar to make room for more modifier keys.
So long as you know home row, there's no reason to have any spacebar that extends past the V and N keys. Unless you have some kind of disability, your thumbs can't rest comfortably beyond that range when your hands are on home row. So the spacebar should be 3u.
search
The giant spacebar is an industry standard that should have died ages ago.
Imagine gaming with SpaceFN.
mouse_mdYou can use the SpeceFN technique regardless of your physical layout: be it giant or split spacebar, or the 6-key thumb cluster I personally prefer.
Or accept split space as your lord and savior, sacrifice nothing. Spacefn goes right out the window with games 99% of the time. Professionally (office setting) it's totally viable of course.
Why.MeDepends on the game ofc, but I can't see how a split spacebar can have anything to do with SpaceFN. I use six thumb keys and think that split spacebars should be mandatory on every keyboard, but would use SpaceFN anyway with the added benefit of extra layers. Fun fact: one of the most popular Alice kits on the market, with split spacebar of course, is incapable of any layer functions.
This made my brain do a happy little backflip because I’ve been doing this for years and never caught on that others were doing it. It just makes sense, especially on compact layouts. A 60% was the first programmable keyboard I bought, HATED the sheer lack of functionality, and quickly thought to turn WASD into a layered arrow cluster in just about an identical way here with Home and End on Q and E respectively.
Only problem I have with this placement is that it still introduces disruption to placement of the right hand if it’s on the mouse, which is why I chose WASD. Right hand on mouse *always* while navigating in games/documents means you're not breaking flow to frequently return your hand to the mouse. Potentially controversial take: Right-hand arrow and numpad placement made sense BEFORE the mouse, but once the mouse came into standard use, those things should have swapped to the left side of the alpha cluster.
It's definitely understandable that I'm an outlier on the lefty opinion, haha. It was absolutely born from finding issue with taking my hand off the mouse during gaming to access keys on the right side of the keyboard. I've become covetous of split spacebar keyboards (using a Skyloong GK75 currently) so I can still game while having an FN key nearby. I played D2 with friends for a good few years and being able to quickly emote at something (my favorites were pointing at dumb things while speaking or pulling out a broom to clean up a mess lol) and still react if needed were wonderful since I didn't have to rebind anything or deal with games that didn't map WASD for menu navigation. That's really where it's at for me in most games.
I'm glad I caught the promo for your article in a "look at what we're selling" email from Drop. No idea if I can subscribe or get notified when you and a few others I enjoy post articles, but I'm going to figure it out so I can make sure to catch anything interesting in the future. Thanks for your effort in sharing these things with others <3
ClaridNot sure about the subscription but I'll post here in the first days of each month, mostly about keymap and logical layout design stuff. These are going to be condensed/shortened/merged versions of similar posts published over at kbd.news so readers there and subscribers to my RSS or newsletter will be notified.
Hi I'm new to Drop and i just received my Keyboard i have been waiting for months for by Drop x MTN Dew x Borderlands movie and didn't know if there was a software like Logitech's for the keyboards. if anyone could help please let me know
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? 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. Why? How? Let me explain it so you can start boosting your productivity right away. If you already use it, you may read this article as a self-justification. If you heard about SpaceFN but haven't tried it yet, let me convince you and show you some implementations. And if you're not sure about what SpaceFN is, read this write-up because it may change your life - well, at least that part you spend in front of monitors. ...and believe me, running a blog called kbd.news makes it pretty much unavoidable to get and test new keyboards every week. Loosely recreating my custom keymap and being able to use an additional SpaceFN layer is crucial, especially when I have to revert to the standard layout and horizontal staggering after using split keyboards. Well, as a matter of fact, I don't even have to set up SpaceFN in this case. Because I find it so essential that a handy tool is running on my PC taking care of this for me, automatically. I do think it would be a real blunder if you missed this incredible feature, so do yourself a favor and read on. SpaceFN history Of course I'm not the one who came up with this concept. The first useful post on the subject I came across was probably this geekhack thread by spiceBar, from 2013, advocating this layout:
KMonad is there for Linux (with the recommendation of Matthias Goffette). Example layout So you’ve set up SpaceFN in Via/VIAL/QMK. Well done. The original idea back in 2013 materialized as a semi-standardized SpaceFN layer. Still, I like to call it a concept, because as already told, you can and should put whatever you want on your SpaceFN layer.