tmux status bar messages last only about a second: can I extend this?

Solution 1:

It sounds like you want to change the display-time session option. The initial default value is 750 milliseconds.

If you want to set a new, default value, then change the “global” value (e.g. in your .tmux.conf):

set-option -g display-time 4000

The global value will be effective for any sessions that have not established their own value (see below).

If you just want to change a single session (e.g. change only the current session, via a Prefix-: command line):

set-option display-time 4000

Of course (like any other tmux command), you can also make the changes from a shell command line:

tmux set-option -g display-time 4000
tmux set-option -t 4 display-time 10000  # set a value just for session "4"

Solution 2:

There is also the show-messages command bound to ~ by default.

Solution 3:

Another option would be to use display-message -p. The behavior of -p is tmux temporarily opens an empty, dedicated window, to display the message. What's nice is that window is automatically in tmux's copy mode. The message (and the window) only dismisses when you press a key.

This is more intrusive then the regular display-message, but definitely catches user attention. More like a modal dialog in the GUI's term.

     display-message [-aIpv] [-c target-client] [-t target-pane] [message]
                   (alias: display)
             Display a message.  If -p is given, the output is printed to stdout, otherwise it is displayed in the target-client status line.  The format of message is described in the FORMATS section; information is taken from target-pane if -t is given, otherwise the
             active pane.

             -v prints verbose logging as the format is parsed and -a lists the format variables and their values.

             -I forwards any input read from stdin to the empty pane given by target-pane.