How can I bind multiple tmux commands to one keystroke?

You could use the run-shell option, but the critical thing is to separate the commands with \;

In this case, something like:

bind R source-file ~/.tmux.conf \; run-shell "echo 'Reload'"

run-shell shell-command
(alias: run)
Execute shell-command in the background without creating a window. After it finishes, any output to stdout is displayed in copy mode. If the command doesn't return success, the exit status is also displayed.


Just after composing my question I thought of something that might work. I tried it and it works, you just have to put up with multiple files for your tmux configuration.

Here's the solution, specifically as it relates to reloading your configuration. In your .tmux.conf file, put something like this:

bind R source-file "$HOME/.tmux/reload.tmux"

In the file ~/.tmux/reload.tmux put something like the following:

source-file "$HOME/.tmux.conf" 
display-message "Configuration reloaded."

It works perfectly.