QMK Firmware

I use QMK on my keyboard (KBD75 rev2). I’have done some basic customizations to keymap. I use Colemak-DH layout (check image below), but on system level (because I use also Russian ЙЦУКЕН layout, so it’s depends on qwerty layout).

Colemak-DH ANSI Colemak-DH ANSI

Key codes: qmk_firmware/docs/keycodes.md

Flash firmware steps:

  1. Go to directory with QMK firmware cd qmk_firmware

  2. Prepare environment, I have configured NixOS module: qmk.nix.

  3. Run qmk setup, in most situations you will answer y to all questions qmk setup

  4. Test Your Build Environment (firmware can be compiled), kbdfans/kbd75/rev2 is my keyboard. qmk compile -kb kbdfans/kbd75/rev2 -km default

  5. Configure keyboard qmk config user.keyboard=kbdfans/kbd75/rev2

  6. Create keymap and set it as default

qmk new-keymap -km inomoz
qmk config user.keymap=inomoz

Now you have own keymap, you can edit it in keyboards/kbdfans/kbd75/keymaps/inomoz/keymap.c. My layout is here.

  1. Compile and flash Firmware qmk compile -kb kbdfans/kbd75/rev2 -km inomoz it’s equivalent to qmk compile if keyboard and keymap are set in config.

  2. Flash QMK Firmware qmk flash -kb kbdfans/kbd75/rev2 -km inomoz it’s equivalent to ==qmk flash== if keyboard and keymap are set in config.

When you flash QMK Keyboard, put it into DFU (Bootloader) Mode, In my case I need to hold ==S-ESC== keybinding and plug USB cable.

More info.

My keymap variant

I have generated PDF file with mine keymap, here is QMK keymap file. To generate it I followed these steps:

  1. Go to directory with QMK firmware cd <path_to_dir>/QMK
  2. Generate keymap.json file
qmk c2json --no-cpp keymap.c >keymap.json # without --no-cpp it might not work
  1. Go to QMK Configurator, upload here keymap.json and print it to PDF ( icon and  icon).

My layers and modifiers

TODO: not actual

Hold SYM to activate the symbols layer.

Hold NUM to activate the navigation layer

The home row modifiers are oneshot so that it’s possible to modify the keys on the base layer, where there are no dedicated modifiers.

Sometimes you need to use qwerty layout (games for example), I created special layer in QMK for that, which activate qwerty layout over the Colemak-DH layout when I press special QWE default layer switch button (toggle logic).