code: function normalizeKeyName(name) {
      var parts = name.split(/-(?!'?$)/), result = parts[parts.length - 1]
      var alt, ctrl, shift, cmd
      for (var i = 0; i < parts.length - 1; i++) {
        var mod = parts[i]
        if (/^(cmd|meta|m)$/i.test(mod)) cmd = true
        else if (/^a(lt)?$/i.test(mod)) alt = true
        else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true
        else if (/^s(hift)?$/i.test(mod)) shift = true
        else if (/^mod$/i.test(mod)) { if (mac) cmd = true; else ctrl = true }
        else throw new Error("Unrecognized modifier name: " + mod)
      }
      if (alt) result = "Alt-" + result
      if (ctrl) result = "Ctrl-" + result
      if (cmd) result = "Cmd-" + result
      if (shift) result = "Shift-" + result
      return result
    }
docs: :: (string) → string Normalize a sloppy key name, which may have modifiers in the wrong order or use shorthands for modifiers, to a properly formed key name. Used to normalize names provided in keymaps.  Note that the modifier `mod` is a shorthand for `Cmd` on Mac, and `Ctrl` on other platforms.