Here is a new layout that I have designed for 60% keyboards and that I have been using for several months now. I have even created dedicated keycaps for it.
Fig. 1: Basic GuiFN layout.
Features:
- Standard-sized keycaps.
- Minimal impact on typing habits.
- Both Esc and backquote/tilde are directly accessible.
- One-handed navigation.
- Works on both ANSI and ISO keyboards.
- Can be easily programmed in hardware on the Poker 2.
- Works very well on Poker X and HHKB and other 60% keyboards.This layout is called "
GuiFN" because the right Windows key becomes "Fn" (a key that gives access to some additional functions).
The idea is to retain some of the best features of the SpaceFN layout (
http://geekhack.org/index.php?topic=51069.0), but without overloading the space key this time.
In the picture above, the functions in the blue boxes are accessed by pressing and holding the Fn key, which is supposed to be pressed with the
right hand thumb. Rotating the keycap of the Fn key by 180° helps a lot because it's easier on the thumb, and it helps finding it without looking at the keyboard.
The keys that do not have a "Fn" function are not sensitive to the Fn key: they always produce the same character. This is very convenient because you can use for example Ctrl-C and Ctrl-V to copy/paste text while navigating, without even releasing the Fn key.
Customizing GuiFN:There are naturally a few things you may want to change in the layout.
This variant for example keeps the
backquote/tilde key in its standard location, and allows you to lock your Windows computer with the well-known
Win-L combination:
Fig. 2: GuiFN variant. Backquote on standard location, Fn-L to lock.
You can also swap Ctrl and CapsLock. In this case you end up with backquote on the bottom left of the keyboard, which is OK I guess if you do not use this character too often.
I use the following variant on the Poker 2. It adds two keys that allow me to go directly to the top and bottom of a document, and one that replaces the missing Menu key:
Fig. 3: GuiFN variant. O and L for Top and Bottom of document, and U for Menu.
I actually use the AZERTY version of this variant, as you will see in the pictures below.
Usability:I have refined the layout several times since the first design. For example, moving Caps Lock to the Fn layout in order to make room for backquote/tilde (or Esc) came early on. Del just above Fn came later. I did not want Del to be too close to Fn, but once I tried it for real I realized it was absolutely not a problem. Top, Bottom and Lock have been added more recently.
I use my keyboard heavily to code in C, Objective-C and C#, answer emails, browse the internet, use the command line, and so on. I have been able to adapt to this layout rather easily. With a flipped Fn key, I think that one may need only one or two days to start being comfortable with it.
I still use a standard keyboard several times a day on my other computer, and I have found that switching back and forth between GuiFN and a standard layout was not a problem at all.
Custom GuiFN keycaps:Here is my current keyboard, a Poker 2 with Tex case and custom AZERTY GuiFN keycaps:
Fig. 4: Poker 2 with dedicated GuiFN keycaps.
I have created a SVG graphic file with the GuiFN layout and ordered the custom keycaps from WASDkeyboards.com . The graphic file is designed for a full set (104 keys) because I wanted alternate versions of some keys.
The left arrow key has been printed on the numpad's "5", which has a tactile point in the center.
The Fn key is special: it has been printed upside down, and is inserted on the keyboard upside down. This way, I can find it easily by touch without looking.
Here is a close-up of the area:
Fig. 5: Upside-down Fn key and tacticle point on the left arrow key.
On my keyboard I have opted for a light design: on some keys I have omitted to print the secondary function. For example Fn-P does Home, but the function is not printed on the key. I have another P key on which the Fn function (Home) is printed. This alternate key come from the parts of the fullsize keycaps set that is not part of the typewriter cluster. I have created a print mask that makes use of almost all the full set, and which contains alternate versions. I also have alternate versions of the number row keys, one with the Function key number (F1...F12), and one without. On my keyboard I have installed a mix of them, as you can see.
Here is another keyboard, a GH60, with more GuiFN legends:
Fig. 6: a GH60 programmed with the GuiFN layout, using most of the GuiFN legends.
Implementations:Hardware: at this time, the GuiFN layout can be implemented in hardware on the Poker 2, using the built-in programming feature, and on any keyboard that support Hasu's TMK firmware (GH60, HHKB with special controller card, PS/2 to USB converter...).
Software: I'll update this section when I get software implementations for Windows, Mac and Linux.
I need volunteers to write the AHK script for Windows, and if you know how to implement this under Linux I'm very interested (I have not tried yet).
Poker 2:Thanks to the location of the built-in Fn key, the Poker 2 is compatible with GuiFN. This occured to me only after designing GuiFN, which I tried first on a Poker X, on a GH60 and on an HHKB. After noticing this, I ordered a Poker 2. GuiFN has not been designed for the Poker 2, but it happens to work perfectly on it!
The Poker 2 can be easily programmed by the user without using any software. The user enters the mapping by hand, and it's retained after the keyboard is turned off or disconnected from the computer.
By default, the functions you program are only accessible by pressing the Pn key together with the programmed key.
However, you also have a special mode that allows you to bypass the Pn key. In this mode, pressing a key invokes what you have programmed, no need to press Pn. This mode allows you to completely reprogram the keyboard. For example you can convert the Poker 2 to DVORAK using this. The original function of the key is still accessible by pressing Pn and the key. To get the original Fn- meaning of the key, press Fn-Pn- and the key.
We are going to use this special mode, which also allows to reprogram the Fn layer.
First, let's check that the keyboard is not write-protected. Under the keyboard,
the DIP switch 4 must be in the OFF position.
Now, let's reprogram just two keys to see how it's done. We are going to change the Caps Lock key so that pressing it directly will produce a backquote and pressing it together with Fn will give access to the original Caps Lock function. Press the keys in this order:
Key Comment
--------------- ----------------
Fn-Ctrl - enter programming mode - the LED at the right end of the space bar blinks
CapsLock - the key we want to program - the LED stops blinking
Fn-Esc - the character it should produce: this is how you get the backquote on the Poker 2
Pn - we are done programming CapsLock, the LED starts blinking again
Fn-CapsLock - we are going to program Fn-CapsLock
CapsLock - what Fn-CapsLock should do
Pn - we are done programming Fn-CapsLock
Fn-Ctrl - exit programming mode, the LED is now off
Finally press
Fn-Shift (the Shift at the right of the keyboard). The LED at the left end of the space bar lights up. It means you can now use the programmed keys without using Pn.
Press CapsLock and you should get a backquote. Shift-CapsLock should do the tilde. Fn-CapsLock puts the keyboard in Caps mode, and will turn on the LED under the CapsLock key.
Not bad.
NOTE1: You need to press Fn-Shift every time you exit from programming mode, and every time your keyboard is disconnected from your computer (and maybe every time your turn your computer on, it depends on your motherboard).
NOTE2: If you get lost at some point and end up with a scrambled keyboard, you can return it to factory state:
- disconnect the keyboard, then reconnect it
- press and hold Fn-R for 15 seconds
The LED at the left end of the space bar will flash for 3s to tell you that the keyboard has been reset to factory defaults.
Now let's program the arrow keys. Please note that the instructions are written for an US-ANSI Poker 2, but it's not difficult, by looking at the "Basic GuiFN layout" at the top of this post, to translate the instructions for UK ISO or any other language:
Key Comment
--------------- ----------------
Fn-Ctrl - enter programming mode - the LED at the right end of the space bar blinks
Fn-; - Fn-semicolon is going to do the left arrow
Fn-A - This is how you get the left arrow by default
PnFn-' - Fn-quote is going to do the down arrow
Fn-S - this is how you get the down arrow by default
PnFn-Enter - Fn-Enter is going to do the right arrow
Fn-D - this is how you get the right arrow by default
PnFn-[ - Fn-[ is going to do the up arrow
Fn-W - this is how you get the up arrow by default
PnFn-Ctrl - exit programming mode
Press Fn-Shift (the right side one) and test your new arrows. When navigating, I recommend that you put your right thumb on the Fn key and your index, middle, and ring fingers on the left, down and right arrows (semicolon, quote and Enter). Maybe now is the time to flip your Fn key so you can find it without looking.
Please note that the original Fn layer meaning of these keys (what is written on the front side of the keys) is not lost. For example, you can still get Home by pressing Fn-Pn-semicolon (press and hold both Fn and Pn, then press the semicolon key). However don't worry, you will not have to do that to get Home, because it will be on Fn-P.
Now that you know how to reprogram keys, you can finish programming the keyboard. Remeber that
Fn-Ctrl allows you to enter/exit programming mode and that you must press
Pn when you have finished programming a key:
This key does: Comment
--------- ------ --------------
Fn-P Fn-; Home
Fn-] Fn-. End
Fn-Backspace Fn-' PgUp
Fn-\ Fn-/ PgDn
Fn-/ Fn-Backspace Del
Fn-M Fn-P Print Screen (PrtScr)
Fn-, Fn-[ Scroll Lock (ScrLk)
Fn-. Fn-] Pause
Fn-U Fn-X Menu
You could also program Fn-O and Fn-L to move to the top and bottom of document, respectively:
This key does: Comment
--------- ------ --------------
Fn-O Ctrl-Fn-; Top (Ctrl-Home)
Fn-L Ctrl-Fn-. Bottom (Ctrl-End)
Or you could have Fn-L lock your Windows screen:
This key does: Comment
--------- ------ --------------
Fn-L Win-L Lock screen
And finally there is something important left to do. You need to make sure that all the keys that have no function in GuiFN are indifferent to the Fn key. This will allow you for example to type Ctrl-C and Ctrl-V even if you are still holding down the Fn key. It's an important final touch that improves the usability of GuiFN. You just tell Fn-<key> to simply do <key>. There are only 9 keys that already have a function and that we need to "reset":
This key does:
--------- ------
Fn-W W
Fn-Y Y
Fn-A A
Fn-S S
Fn-D D
Fn-J J
Fn-K K
Fn-X X
Fn-N NNow your Poker 2 is completely converted to the GuiFN layout!
NOTE: Fn-F, Fn-G and Fn-H cannot be reprogrammed, I don't know why. I think it's a bug and it may have been fixed in the latest firmware. I just leave them alone.
Don't forget:- Before typing, make sure that the LED at the right end of the space bar is ON (Fn-Shift if it's not).
- Fn-Pn- allows you to access the original Fn layer (written on the front side of the keys).
- You can easily restore the keyboard to factory defaults by pressing and holding Fn-R for 15s.
TMK Firmware:I'm going to contact Hasu and ask him if he wants to add the GuiFN to the list of supported layouts. I'll update this section if he accepts.
Meanwhile, just PM me if you would like to try GuiFN on your TMK-compatible hardware. At this time I have the "KEYMAPs" for:
- the GH60
- the HHKB Pro 2 (you need Hasu's replacement controller for the HHKB 2)
- the PS/2 to USB converter (that's how I started designing and testing GuiFN on a Poker X)
and all these have been tested.
From this starting point, it's not difficult to create the keymaps for other keyboards.
Fig. 7: GuiFN prototype (Poker X with Hasu's PS/2 to USB converter).