I have been using Karabiner for a while now to remap my keyboard to Dvorak, as the OSX system Dvorak keyboard mapping exposes a bug in many Java apps, including all of the JetBrains development environment tools I use intensively, whereby the keyboard is in fact Dvorak, but all shortcut keys are Qwerty, which is of course tremendously confusing. You can read more about the issue in this StackOverflow answer.
I was postponing the upgrade to macOS Sierra, because Karabiner, fantastic keyboard remapping tool, is unable to function on the new OS due to changed APIs and whatnot.
Fortunately Takayama Fumihiko, awesome hacker behind Karabiner, has been re-implementing his work in a new tool called Karabiner-Elements. The GUI is not up to pre-Sierra level yet, but the tool works perfectly to solve my Dvorak-remapping (and other) issues!
After upgrading to Sierra, install from the dmg file, start Karabiner-Elements, then copy
qwerty_to_dvorak.json from the examples into your
~/.karabiner.d/configuration/ directory and name it
karabiner.json. It will be immediately picked up, so you’re typing in Dvorak.
Personally I have also added the relevant lines from the
change_section_key_to_accent_key.json examples to the
simple_modifications clause of my
karabiner.json file. Using caps-lock as control is essential for efficient Emacs use, and that section key at the top-left of the MBP 2015 keyboards should have been backtick / tilde to start with.