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
keycode number = 1 2 3 4 5 6 7 8
The keycode number is the geographical location of the button. The numbers represent the 4 layouts (groups) available. Each group has two levels, the first one is accessed by pressing the button and the second by pressing shift plus the button. You can either navigate through the four groups or access them with a modifier key. This is the case of altgr, which in the xmodmap system is named as ISO_Level3_Shift. Therefore, a fresh linux install will use only two groups, 1 2, and 5 6. This means that 1 is when you press a key normally, 2 the shift + the key, 5 altgr + the key, and 6 shift + altgr + the key. The second group, 3 4, you can access by pressing a new modifier that you have to remap called Mode_switch. The fourth group is kinda useless and I don't know how to access by a modifier key nor even if that modifier key exists. For instance, this are some lines in my custom xmodmap file:
keycode 30 = u U BackSpace NoSymbol downarrow uparrow downarrow keycode 31 = i I Escape NoSymbol rightarrow idotless rightarrow keycode 32 = o O Return keycode 43 = h H Left keycode 44 = j J Down keycode 45 = k K Up keycode 46 = l L Right keycode 54 = c C Caps_Lock keycode 57 = n N Tab ISO_Left_Tab endash
I remap Mode_switch to caps lock location, Super_L (Win key) to tab in order to navigate trough the tiling window manager which I use, and control_L to shift_L. To navigate through the four groups is necessary to remap this four keys: ISO_Next_Group, ISO_Prev_Group, ISO_Last_Group, ISO_First_Group.
With these modifications I already use my tenkeyless keyboard as a 40% one. By the way, sorry for my pretty bad English skills.
I do wish they stopped putting in those dumb windows keys though.