As far as I know, everyone that uses computers will have at least one keyboard, otherwise you will see the classical sentence when you trying to boot your computer:
Keyboard not found, press F1 to continue.
But, have you ever think about where the proper place for the F1
key is? Maybe on the right of the space key, or any other place you want? If you have never thought about this question, now is the time to do that.
As a vim
user, the most frequently used key is the ESC
key that exits from INSERT
mode to NORMAL
mode, but on a normal ANSI keyboard, the ESC
key is very far from your hand, even on some big keyboards, you have to move your left hand to touch the key. But just on the left of your left little finger, there lies a, to some extent for me, useless key, the Caps Lock
key, which is nearly never used. When I was young, I always cannot stop thinking, what if I could exchange the two keys, or even adjust the keyboard layout as my requirements.
On my master grade one, here comes the chance: I finally made up my mind to buy a mechanical keyboard. Before the purchase, I occasionally got to know an open-source 60% keyboard project whose layout could be modified.
The layout can be designed on Keyboard Layout Editor, the editor can generate a raw data which records the keyboard layout of your designation, and you can copy the raw data to a TMK keymap generator, like tkg.io, to generate a EEPROM (Electrically Erasable Programmable Read-Only Memory) file, the .eep
file. With the .eep
file, you can then use the tkg-toolkit
to reflash your layout to your keyboard.
The first step of making your own keyboard layout is just to design your layout. On Keyboard Layout Editor, you can make your designation based on some presets or just create one on your own. I chose the preset Default 60%
to start, as my keyboard is a standard 60% key board.
When you have finished your designation, choose the Raw data
page and you will see the raw data that you will use in the next step. Besides, you can also adjust your keyboard layout, or even the keyboard itself on this page. The syntax of raw data can be found here and you can find my layout from here:
The second step is to generate a .eep
file that will be used by the toolkit to reflash your keyboard layout. On tkg.io, choose the type of the keyboard as GH60 (RevCHN)
, and paste your raw data in the textbox on the Simple
page. Then the program will check your layout raw data for conflicts and other error (e.g. a key
does not exists or is not supported), if there is no error in your layout raw data, continue with Fn
key configurations and backlight configurations.
On my layout, I use the Fn0
key for F1
to F12
keys and some other function keys, the Fn1
key for the switch of backlight, and the Fn2
key and the Fn3
key for adjust backlight mode. So I configure Fn0
key with momentary layer 1
, Fn1
key with backlight toggle
and Fn2
key and Fn3
key with backlight decrease level
and backlight increase level
respectively.
For Caps Lock light, bind the backlight of Caps Lock with indicator
on Caps Lock
with backlight
, and other lights, bind none
with backlight
will be OK.
After that, the second step is done. You can make a double check on your configurations and click the Download .eep file
on the bottom of the page. If you make your configuration as I said above, you will see something similar to:
The last step is to reflash the .eep
file to your keyboard. First, clone the TKG toolkit repository from https://github.com/kairyu/tkg-toolkit, and install dfu-programmer
with your package manager (on Arch, you can install it directly from AUR
).
Then, run the setup.sh
script to set your toolkit with keyboard type of GH60 RevCHN
, firmware of Default
and bootloader of atmel_dfu
. And finally, run the reflash.sh
script with the .eep
file you downloaded above. When the script says "Waiting for Bootloader...", press the button on the back of your keyboard PCB for at least 7 seconds, then the script will reflash the layout to your keyboard. If nothing happens, try with sudo
.
Finally, enjoy your keyboard, the keyboard that knows you.