4. Customizing Keyboard Layout for Linux with QMK (Version 2022-07-01)
(10 min read) This section uses QMK CLI, a CLI tool compatible with Linux, Mac and Windows.
Last updated
(10 min read) This section uses QMK CLI, a CLI tool compatible with Linux, Mac and Windows.
Last updated
Text in block quotes refers to the terminal output.
For reference, see the .
You can test that QMK CLI is working properly by compiling one of the default keymaps that came with the installation. For instance, we can test clueboard/66/rev3 as below.
You should see a message similar to below.
Linking: .build/clueboard_66_rev3_default.elf [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder > [OK]
Checking file size of clueboard_66_rev3_default.hex [OK]
* The firmware size is fine - 26356/28672 (2316 bytes free)
You'll then be prompted to give a name to the keymap. Here I give it the name taiko
.
Edit the keymap.c file with your preferred editor. Here I use nano.
While editing your keymap.c, you may wish to look at the following:
Save your keymap.c after you are finished editing.
Before you flash the firmware:
Then flash the firmware:
You should see:
Detecting USB port, reset your controller now...
When you see "Detecting USB port, reset your controller now..." in the terminal, click reset button on the keyboard, as indicated by the green arrow in Figure 4.1. No need to rush, QMK will wait for you.
If it flashes correctly, you should see this message:
avrdude: 18874 bytes of flash verified
avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)
avrdude done. Thank you.
Make sure the keyboard is not connected to the computer before reconnecting the audio cord to each piece of the keyboard.
Connect the USB cord from your computer to the left keyboard.
Good work, you did it 🎉!
Below is an example of a keymap.c file for the size medium keyboard, also known as the five keyed thumb cluster. This file is also available on GitHub .
Below is an example of a keymap.c file for the size large keyboard, also known as the six keyed thumb cluster keyboard. This file is also available on GitHub .
Layers are similar to a Fn or FnLock key that is seen on some keyboards. For reference, see the on the QMK website.
If we look at our current keymap.c, we will see that the keycode furthest to the top left is KC_ESC
(assuming you have been following along this section). We want to replace KC_ESC
with the keymap for =
, so we go to the to check.
Add non-English languages to QMK with keymap extras. List of supported languages shown here: .
The below is an example of a keymap.c
file that includes the keymap_spanish.h
module. You can also see the gist .