Setup: Several years of exploration and testing

Hello everyone! I’m glad to introduce my latest, yet unfinished, configuration. I’ve tested different ideas and macros capabilities to achieve what I wanted, this one the best I could come up with. It took me several years. It’s not an ideal, but with current limitations of macros and the fact that some modes interfere with each other it’s the best.

Main objectives

  • Don’t use top row - it requires to shift whole hand to reach these keys.
  • Use pinkie as least is possible
  • Easy access to all keys used in programming - all of these == === != <= >= " ' & ; :` etc.
  • Easy access to numbers (num mode)

Base Layer

I use QGMLWB keyboard layout from Carpalx project.


I’ve tested many different layouts. In my personal opinion this one by far the best layout ever for English language.

Shift and Ctrl

Shift is working both as usual Shift when it activates while you hold it and as oneshot key when you press and release it just as other keys. I prefer the latter, holding only when I need to press several capital letters.

The same applies for Ctrl, but I didn’t test it extensively (as it used mostly in some shortcuts in VS Code)

Both Shift and Ctrl are symmetrical.

Space and Enter
These keys are used to enter into Fn layer while holding them. More on that layer is later.
It’s very natural as holding Shift, as soon as you pressed desired keys leaving Fn mode is just to release activation key Space or Enter.

Num key
Allows to enter to numeric mode. I toggle to this layer because of high chance you need to press several digits together like 3.14. You still can press one or several digits just by holding this key.

Fn Layer
Allows to type all programming and numeric related symbols. Most of them can be typed with one hand, while other hand is holding Space or Enter.

For example combinations like == === != += -= >= <= are typed with one hand and very convenient to type.

The same applies to `string` “string” ‘string’ which are used as string literals.
Typing ; : . , is also very convenient.

You can type (, {, [ easily, most IDEs will insert closing pair. But you still can type [], (), {} with one hand. That works for <> too.

You can never be accidentally stuck in this layer, as you never toggle into it and never need to type some long unusual combinations. This relieves a huge mental stress.

Num Layer
Allows to type all digits very conveniently. It’s the main purpose of this mode. While you still can type all digit related combinations from Fn layer using mechanical memory!

For example -3.14 + 1.25, you still can use backspace, space, enter. No need to jump between modes!.

And you can type one or several digits without toggle into this mode just by holding Num key. For example to type 732.

Other Layers
They are not well thought or finished. I use left Mod key for arrows mostly.
Right Mod key for mouse mode.


I’ve got a few new ideas from your post.

Also inspiring reading your reasoning for your configuration.

Thanks @likern !

1 Like

Thank you for kind words! I’m glad that post helped you, at least a little bit.
I’ve changed my configurations a bit, not happy with Numeric mode. But the main ideas are the same.

I’ve copied your command for the macro and I’m testing this for the RightShift first.

One question though: Where do the commands from your macro come from? Do you have a link to the commands-reference or something similar?

Thanks in advance!

1 Like

firmware/doc-dev/ at master · UltimateHackingKeyboard/firmware · GitHub and firmware/doc-dev/ at master · UltimateHackingKeyboard/firmware · GitHub

1 Like