Halmak layout for programmers


(Groovy9) #1

Halmak is described here: https://www.youtube.com/watch?v=pZ40gmfDFfQ&t=21s
and here: https://github.com/MadRabbit/halmak

Layout here: http://www.keyboard-layout-editor.com/#/gists/fd67ed76b61a6245b9cdb889ce1a618d

It’s tweaked a bit for weird personal left pinkie issues, I just prefer comma/period on the outside thumb keys and wanted a 10-key block for numbers rather than the stupid top number row.

Been using it for a few months; I’d say it’s roughly on par with the other popular modern layouts like Colemak or Workman. I quite like having some of the punctuation on the inside keys rather than outside.

I added the direction key block on the left that I’m really happy with (inspired by WASD in games, everything in an intuitive direction matching what it does, took no time to pick up).

The extra non-shifted 0, 1 and 2 in the main layer is handy for programming and because I needed @ and ! somewhere.

The mirrored set of bracket keys (and slashes) that coexist with the numpad is super handy.

Backspace on the left felt intuitive since the key is in the same direction it moves the cursor. Space and tab feel closely related, so grouping together feels intuitive.

The same general concept could be easily adapted to QWERTY or whatever other layout.


(tiltowaitt) #2

That’s an interesting layout. Without trying it, I see some things I like, but I’m not too keen on the positioning of comma and period. Those keys are used very often, and a curl is easier than a reach. Also, while the movement efficiency metrics are impressive, they don’t always tell the whole story. Workman’s higher same-finger usage (particularly -ly) are why I switched from it to Colemak, even though Workman is technically more efficient.

I’m tempted to try it.


(Groovy9) #3

Honestly, I think there’s so little practical difference among the group of the more well known ‘efficient’ layouts that it’s almost not worth worrying about which one to choose.

There’s more to be gained, I think, by tweaking any layout to avoid whatever your personal bugaboos are - hating the row of numbers, poor pinkie dexterity, counterintuitive punctuation, etc.

I just shared in case anyone liked a particular idea in it.

As for period and comma, I assume you mean their positioning in the creator’s final layout. If so, I agree, I didn’t like having to reach laterally that often either. Where I have them on the outside thumb buttons, it’s just a quick and comfy curl of the thumbs. In my tweaked layout, none of the pointer-fingers-reach-inward keys are super common keys.

There’s also an argument to be made for putting delete on the palm-shifted backspace and enter on the palm-shifted space to avoid having to reach out so often. I may try that, but I’m so used to reaching out for enter that I’m not sure it really matters.


(tiltowaitt) #4

Yeah, I was referring to the “official” layout. And I agree that the practical difference is pretty slim. I don’t actually write any faster in Colemak than I do in QWERTY; it’s just more comfortable.

You might also consider looking at Qukeys to get some extra mileage out of your keys. For instance, I have enter in my thumb cluster, and it transforms to left alt when held.


(Shriramana Sharma) #5

One assumption in designing this layout seems to have been that due to the different length of the fingers and the horizontal rows of keys in a conventional keyboard, the middle finger is “closer” (actual word used in video) to the upper row.

Workman which I use doesn’t have this assumption and assumes that the home row is natural for all the fingers.

While this assumption is incorrect, M01 physically corrects for that because the rows are no longer horizontal.

So I am not sure Halmak is better than Workman for M01.

Frankly I am sticking with QWERTY on my laptop keyboard and use Workman only on my M01 attached to my desktop. Likewise I designed an optimised Tamil layout, but use it only on M01 and not conventional keyboards as I don’t find it comfortable there (or at least prefer to keep my muscle memories separate).

Optimization assumptions made wrt conventional keyboards need to be rechecked with the M01.