Now it's time to switch gears, we are onto a different part of our day and there are just too many sessions running and we need to clean up shop.

kill-server

One viable option is to nuke the whole dang thing. I actually do this more than you might think.


tmux kill-server

save and commit your work diligently before kill-server

kill-session

A more reasonable option might be to kill a single session.


# kills the current session
tmux kill-session

# kills the session named scratch
tmux kill-session -t scratch

choose-tree

Killing sessions one by one from the command line can be a bit tedious, and involve more keystrokes than necessary. Another option built right into tmux is choose-tree. By default choose-tree is bound to prefix+s, that's pressing control+b then s. Once you are in choose-tree, you can navigate around with your configured navigation scheme, press x to kill a session, or pane or window then y to confirm. You can also batch delete by tagging items with t, and killing them all at once with X.

tmux-choose-tree

check out this post for a bit more information on choose-tree

fuzzy matcher

Here is my preferred way, using a fuzzy matcher. I recently improved this one by making it a popup and cleaning it up based on a repsonse, tmux-output-formatting by DJ Adams. I press prefix+k to bring up a kill-session menu.


bind k display-popup -E "\
    tmux list-sessions -F '#{?session_attached,,#{session_name}}' |\
    fzf --reverse -m --header=kill-session |\
    xargs -I {} tmux kill-session -t {}"

note this is setup to multiple sessions all at once.

tmux-nav-2021

for more information on how I navigate tmux, check out this full post

Also check out the full YouTube tmux-playlist to see all of the videos in this series.