Normally dmenu can only run scripts or binaries, not aliases. How do you get it to run aliases as well?

The reason that dmenu doesn't handle aliases by default is that it varies by shell:

Bash

In the script that "eval"s the output of dmenu, add this:

If your ~/.bash_profile is setup to not load aliases when running non-interactively (most likely the case), you need to explicitely load the aliases in your dmenu_run script: source ~/.bash_aliases

The above is sufficient to run aliases, but only if you type in the full name by hand — at this point, aliases aren't included in the list of known commands. To fix that, replace dmenu_path with compgen -c.