Keyboard minimap
An Omarchy shell plugin for learning the US layout on a keyboard printed for another one.
<p align="center"> <img src="docs/screenshot.png" alt="The minimap with the F key held" width="619"> </p>Each key shows the legend printed on your keyboard with the US character beneath it, only where the two differ — so the only keys that stand out are the ones you have to relearn. Hold Shift and the whole map flips to the shifted layer, the one you can't guess.
Keys light up as you press them. It appears only in the US layout, drags anywhere on any monitor, and toggles from the keyboard icon in the bar.
Boards
Two are built in: a Norwegian ISO board and a US-printed ANSI one (a Keychron). Right-click the bar icon to pick between them, or leave it on Auto, which follows the keyboard the last keystroke came from — so moving your hands to the docked board switches the map with them. The Auto entry names the board it currently resolves to.
On a US-printed board no key needs a second glyph, so that map is about the
shape: a straight Enter, a long left shift, no <> key, and \ back on the
QWERTY row, which is where your fingers actually are.
Install
omarchy plugin add https://github.com/balazsorban44/omarchy-keyboard-minimap --enable
Needs python3, Hyprland (for hyprctl), and membership of the input group.
[!NOTE] The plugin reads key events straight from
/dev/input, so while the map is on screen it sees every keystroke, including ones going to other windows. Nothing is logged or written anywhere, and the reader process is not running while the map is hidden or you are in another layout.
Remove it with:
omarchy plugin remove balazsorban44.keyboard-minimap
Adding your own board
In Layout.js, copy ANSI_US_ROWS (or NO_ISO_ROWS) and add one line to
LAYOUTS:
define("id", "My board", /my-keyboard/i, 15, MY_ROWS)
// id menu label deviceMatch rowUnits
Each key is [keycode, us, usShift, phys, physShift, widthUnits]. Set phys to
null where your keycap already prints the US character. Every row must sum to
rowUnits. deviceMatch is what Auto tests your keyboard's name against —
run omarchy-shell keyboard-minimap status while typing on it and use the
typedOn name. Then ./run-tests, which checks the geometry of every board.
MIT. See LICENSE.