Need help with cmd-key-happy?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

127 Stars 15 Forks MIT License 90 Commits 0 Opened issues


Swap cmd and alt keys in Terminal (useful when running emacs over ssh)

Services available


Need anything else?

Contributors list

# 355,221
63 commits
# 59,441
14 commits
# 100,367
1 commit

Build Status

Swap cmd and alt (or command and option) keys in Mac OS X (macOS).

This program allows you to swap the command and alt (or option) keys in any application, but in particular This can be extremely handy when ssh'ing into other UN*X boxes and running "emacs -nw". It also allows you to have the traditional readline navigation work properly when using Bash (i.e., alt-backspace, alt-f, alt-b, etc) in the Terminal.

The decision to swap the keys is based on a customizable script (Lua). This script allows you to exclude certain key combinations per application, or globally. For example, "cmd-tab" is an exclusion in my Lua script regardless of which application is running, as I still want this key combination to cycle the active set of applications. I have "cmd-c" and "cmd-v" as exclusions when the front most application is the Terminal -- these combinations are so universal that I find it easier to leave them as they are -- but all other key combinations involving the cmd key get swapped with alt.

The motivation for this program was the many years of hitting alt- in Linux only to find that it does not generate the same behaviour in Having the ability to run "emacs -nw" from within is now useable!


If you upgrade to Mavericks you'll get the following error "failed to create event tap!" when cmd-key-happy starts. The granularity of using the accessibility APIs which is what cmd-key-happy depends on is both different and now much finer. To fix this please reread the INSTALL file.

Note (1 Feb 2017): I rewrote this in C++ (see cpp directory) some years ago and it is probably the better implementation for newer versions of macOS but I never promoted it as I have stopped using macOS on a regular basis.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.