11

I'd like to see all tmux sessions on the bottom row of the screen, presented the way tmux presents all windows in the current session. Basically a sticky version of the <prefix>s menu.

So the bottom of the screen would include sessions in one row and just above it, the regular row of current session windows.

Any way to achieve it?

2 Answers 2

8

You could put this on your ~/.tmux.conf

set -g status-right-length 80
set -g status-right '#(exec tmux ls| cut -d " " -f 1-3 |tr "\\n" "," )'

This will list all sessions, and "wrap" some of the information to make it fill in one line ;)

Now, on your right site of the tmux bar, it will show the tmux sessions and the number of opened windows. The separation will be represented by ;

Edit: Add the folowing line on your ~/.tmux.conf, so you can reload the configuration on the fly:

bind r source-file ~/.tmux.conf

Now, just hit <Control + B , r > and your are good to go.

3
  • This is a partial answer: the question is a status bar with the standard windows listed, and below that the list of sessions...
    – jasonwryan
    Commented Dec 10, 2013 at 17:22
  • You can play with status-right and status-left to show information on THE status bar, but, as far is i know, there is only one status bar.
    – user34720
    Commented Dec 10, 2013 at 17:29
  • This doesn't work if your session name has a space in it, also the format of this is super janky looking as it leaves a trailing comma
    – Shardj
    Commented Jun 1, 2022 at 18:50
0

These ~/.tmux.conf entries set the number of rows to 2 and formats the second row to show the session names with an asterisk next to the attached session.

set-option -g status 2
set -g status-format[1] '[#(tmux ls -F "##S##{?session_attached,*,}" | tr "\n" " " | sed "s/ $//" )]'

The session row looks like:

[my-session-name attached-session* another-session-name]

Alternatively these entries place the same format on the right of a single row, similar to the accepted answer.

set -g status-right-length 80
set -g status-right '[#(tmux ls -F "##S##{?session_attached,*,}" | tr "\n" " " | sed "s/ $//" )]'

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .