• 0 Posts
  • 12 Comments
Joined 1 year ago
cake
Cake day: June 16th, 2023

help-circle

  • Once you start to explore the possibilities of programming a keymap, you’ll quickly find out that a lot of functions don’t really require dedicated keys. Using a thumb key as a layer modifier, can bring your arrow keys right under your finger tips on the home row, like on I J K L. The reason you see so many tiny keyboards (36-40 keys) on here, is a consequence of optimizing custom keymaps; more keys simply become redundant (everyone will find some kind of sweet spot here, 36 keys isn’t for everyone). Something like the Raise or Defy is a good place to start experimenting with that, with minimal barrier due to the familiar layout. I do recommend picking something with a thumb cluster at minimum, because that will really open up a lot of possibilities and flexibility in experimenting with your layout.


  • Your pinkies are weak, yet they have the most keys to handle on a traditional board. Your thumbs are strong, yet only operate one key on a traditional board.

    Thumb clusters are used in many different ways, but most basic: put your modifiers there (particularly shift and ctrl), your pinkies will thank you ;) When you go for a smaller layout, layer modifiers become more relevant as well, which typically are put in thumb clusters as well. (but when you go down to small layouts, there is a whole deep rabbithole of layout design to get into).






  • Single handed operation is usefull for my use case as well (mainly CAD and graphic work). I’ve tried various approaches:

    • Swap hands feature from QMK: it works, but has some limitations. I also just made a layer with swapped layout to work around some of the limitations, but ultimately I just didn’t find it very convenient.
    • I then proceeded to write my own “autoswap” feature, inspired by autoshift. Basically it is swap hands by holding any alpha key. So tap Q is Q, hold Q results in P. That worked brilliantly, but the compromise is that you can’t use any tap-hold functions on your alphas (like layer taps or homerow mods). Since I don’t like homerow mods anyway, I could manage with my 36 key layout, but it was definitely a compromise to fit all mods and layer taps on thumbs or combos. Going up to 40 keys would probably have made this a pretty decent solution though.
    • Then I added a trackball to my keyboard. Having the trackball integrated still required me to move my right hand slightly away from the home row, but its much less of an issue than before, and it made any swap hands feature redundant. I definitely recommend looking into something like a Charybdis, probably the best straight out of box solution (out of box solution being relative ofc in this mad world of DIY ergo boards).
    • Right now I’m experimenting with a layout inspired by TAIPO; its a chording layout, that is intended for use with 2 hands on a 20 key layout, but left and right are mirrored, so it is fully functional in one handed operation as well. Its definitely a learning curve, but I’m surprised by how natural it feels. Its like a 10 key macropad, which is somehow magically equally functional as a full keyboard, without feeling like a compromise! I definitely recommend at least reading up on it: https://inkeys.wiki/en/keymaps/taipo ; it may be a bit much to get into if you are new to ergo keyboards and small layouts though, so I would suggest first getting familiar with something like a 36-40 key split and toying around in QMK.


  • Every language + keyboard setting combination in Windows has different behaviours. I recommend using the default settings for your region, because that allows you to still use a standard keyboard the way you are used to (your laptop keyboard for example) - in my case US-international layout + Dutch or English(Netherlands) language settings. Based on that keyboard behaviour I make my QMK keymap.

    For diacritics I used the following approach:

    • tap [ ’ ], then tap [ e ] results in 'e
    • hold [ ’ ], then tap [ e ] results in é
    • same for all other diacritics (" ë, ` è, ^ ê, ~ ñ)
    • I found that a lot more workable than the default dead key behaviour of the Dutch keyboard settings. (allows to type é easily without making 'e annoying to type or vice versa)
    • how to write that in QMK depends on your language and keyboard settings. Or you could base your QMK code on the ASCII approach (typing ASCII number on numpad while holding alt); I think (not 100% sure) that works universally for all language and keyboard settings. I just use windows though, so for other OS’s I’m clueless…