tmuxtmuxinator

Change background color of tmux pane depending on remote hostname


If I ssh into a remote server from tmux in a single pane, is it possible to change the background color of the pane based on the server name?

Let's say all my prod servers start with prod_XYZ and a dev server starts with dev_XYZ. If I ssh into these two servers, can I color them differently based on the type of server I am on? That is, based on the server prefix?

I know tmux panes now understand color. So if I can detect the ssh command is being used then I can figure the name of the server and send the command select-pane -t:.1 -P 'fg=blue,bg=red' to tmux. But how do I (A) send the color to the correct pane; (B) get the server name from the terminal to color tmux?


Solution

  • The easiest way is to write a script or shell function and then alias it to ssh, something like (not tested):

    #!/bin/sh
    if [ -n "$TMUX" ]; then
        case "$1" in
        prod_*)
            tmux selectp -P bg=red
        ;;
        esac
    fi
    ssh "$@"
    tmux selectp -P default