Halmak
The final version of the AI designed keyboard layout
Install / Use
/learn @kaievns/HalmakREADME
Halmak Keyboard Layout
This is an AI designed keyboard layout that was built within the keyboard-genetics project. More details and a documented process can be found on the blog Nikolay Rocks.

Features
- Build based on the real world hand movements analysis
- Nearly maximal possible typing efficiency
- Very low overall fingers movement distance
- Very low same finger / same hand usage overheads
- Very low overall horizontal hands movement
- Highly symmetrical design that accounts for individual fingers strength
- Designed with the modern, web based English in mind
Comparisons
During the research I've identified the following results: in terms of efficiency
QWERTY-0%(baseline)Dvorak-+77%Colemak-+84%Workman-+101%Halmak-+134%
Please refer to the article Halmak Reborn for the more detailed breakdown of the results.
All scripts are opensourced and can be verified in the keyboard-genetics repository.
The Name
The name is a combination of HAL-9000, as a reference to the layout being
designed by an AI. And, Dvorak as a gratitude to Mr. Dvorak for his dedication
to the layouts optimizations process. The letter m in between is just to make
it sound nicer. Or is it!?...
Installation
- Git clone all the stuff somewhere
- Copy
Halmak.bundleinto your/Library/Keyboard Layoutsfolder (create if it is missing) - Sign out, Sign in
- Go to the keyboard preferences and add the
Halmaklayout - Ask here in issues if nothing works
Android installation for physical keyboards
- Install Extra Physical Keyboard Layouts from the Play Store
Source code is available on github - Connect a physical keyboard to your Android device e.g. via bluetooth or OTG
- Select the Halmak layout in your system menu e.g. System > Language and Input > Physical keyboard > Keyboard Name
Integrations
Karabiner Elements
To enable virtual key mapping for Halmak on your macOS machine via Karabiner Elements, you can use the following configuration inside your simple_modifications section of your $HOME/.config/karabiner/karabiner.json file:
{ "from": { "key_code": "q" }, "to": [{ "key_code": "w" }] },
{ "from": { "key_code": "w" }, "to": [{ "key_code": "l" }] },
{ "from": { "key_code": "e" }, "to": [{ "key_code": "r" }] },
{ "from": { "key_code": "r" }, "to": [{ "key_code": "b" }] },
{ "from": { "key_code": "t" }, "to": [{ "key_code": "z" }] },
{ "from": { "key_code": "y" }, "to": [{ "key_code": "semicolon" }] },
{ "from": { "key_code": "u" }, "to": [{ "key_code": "q" }] },
{ "from": { "key_code": "i" }, "to": [{ "key_code": "u" }] },
{ "from": { "key_code": "o" }, "to": [{ "key_code": "d" }] },
{ "from": { "key_code": "p" }, "to": [{ "key_code": "j" }] },
{ "from": { "key_code": "a" }, "to": [{ "key_code": "s" }] },
{ "from": { "key_code": "s" }, "to": [{ "key_code": "h" }] },
{ "from": { "key_code": "d" }, "to": [{ "key_code": "n" }] },
{ "from": { "key_code": "f" }, "to": [{ "key_code": "t" }] },
{ "from": { "key_code": "g" }, "to": [{ "key_code": "comma" }] },
{ "from": { "key_code": "h" }, "to": [{ "key_code": "period" }] },
{ "from": { "key_code": "j" }, "to": [{ "key_code": "a" }] },
{ "from": { "key_code": "k" }, "to": [{ "key_code": "e" }] },
{ "from": { "key_code": "l" }, "to": [{ "key_code": "o" }] },
{ "from": { "key_code": "semicolon" }, "to": [{ "key_code": "i" }] },
{ "from": { "key_code": "z" }, "to": [{ "key_code": "f" }] },
{ "from": { "key_code": "x" }, "to": [{ "key_code": "m" }] },
{ "from": { "key_code": "c" }, "to": [{ "key_code": "v" }] },
{ "from": { "key_code": "v" }, "to": [{ "key_code": "c" }] },
{ "from": { "key_code": "b" }, "to": [{ "key_code": "slash" }] },
{ "from": { "key_code": "n" }, "to": [{ "key_code": "g" }] },
{ "from": { "key_code": "m" }, "to": [{ "key_code": "p" }] },
{ "from": { "key_code": "comma" }, "to": [{ "key_code": "x" }] },
{ "from": { "key_code": "period" }, "to": [{ "key_code": "k" }] },
{ "from": { "key_code": "slash" }, "to": [{ "key_code": "y" }] }
Kinesis Advantage 2
To enable native key mapping for Halmak on your Kinesis Advantage 2
- Download our
1_qwerty.txtfile - <kbd>Program</kbd>+<kbd>Shift</kbd>+<kbd>Escape</kbd> to enable power user mode (should see 4 LED flashes)
- <kbd>Program</kbd>+<kbd>F1</kbd> to mount to the keyboard as a drive (should see a few flashes)
- Drag the downloaded
1_qwerty.txtfile intoADVANTAGE2/active - Open Disk Utility, right-click on the drive, select Eject (must be "Eject", as unmount will not write the file)
- <kbd>Program</kbd>+<kbd>F3</kbd> to enable QWERTY, then <kbd>Program</kbd>+<kbd>1</kbd> to enable our Halmak modification of QWERTY
Refer to the Kinesis Advantage 2 support page for assistance.
Type Fu
To learn Halmak, we have an integration for Type Fu.
- Download our
Halmak.tflfile - Open Type Fu
- Preferences
- Keyboard
- Hamburger menu
- Import from File
- Select the file you downloaded from the first step
Copyright & License
Again, I'm not sure if there is a point to this. But I guess it's MIT.
Copyright (C) 2016 Nikolay Nemshilov
Related Skills
diffs
343.3kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
1.9kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
