This is a bit of an esoteric request so I will try to phrase it clearly.

I am currently beginning to learn colemak and doing so through a series of transitional layouts that go by the group name of tarmak. On top of that, I use evil-mode so the spacial relationship between different keybindings is important. Since these tarmak layouts are only temporary, It would be nice to not have to rebind everything repeatedly as I get gradually closer and closer to full colemak.

Is there a emacs package or snippet of code that can remap keys depending on the current keyboard layout of the computer such that the spacial position of keybindings does not change?

  • You can have a look at package ergoemacs, that provides bindings to the same physical keys for various layouts. It does need you to tell which layout is currently in use.
    – JeanPierre
    Commented May 7, 2016 at 20:04
  • 1
    Related: Detect keyboard layout?
    – Dan
    Commented May 7, 2016 at 23:44
  • ergoemacs.org/misc/ergoemacs_vi_mode.html is another modal keymap that has layouts for azerty, azerty-be, colemak, colemak-mod-dh, dvorak, programer-dvorak, qwerty, qwerty-abnt, qwertz and might be a good example of what you're looking for? ;; "workman"
    – shoshin
    Commented Jan 3, 2020 at 16:48

1 Answer 1


This is not exactly a complete answer to your question, but it may help you as a starting point. My evil-colemak-basics provides Qwerty/Colemak best-of-both-worlds key bindings:


You can use it as a starting point in case you have a different layout.

That said, this is 6 months after you asked your question, so maybe you are using proper Colemak now, in which case this package may be exactly what you are looking for.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.