Tmux SessionX
A fuzzy Tmux session manager with preview capabilities, deleting, renaming and more!
Prerequisits 🛠️
Install 💻
Add this to your .tmux.conf
and run Ctrl-I
for TPM to install the plugin.
set -g @plugin 'omerxx/tmux-sessionx'
Configure ⚙️
The default binding for this plugin is <prefix>+O
You can change it by adding this line with your desired key:
# I recommend using `o` if not already in use, for least key strokes when launching
set -g @sessionx-bind '<mykey>'
Additional configuration options:
# `C-x` is a customizeable, by default it indexes directories in `$HOME/.config`,
# but this can be changed by adding the config below.
# e.g. set -g @sessionx-x-path '~/dotfiles'
set -g @sessionx-x-path '<some-path>'
# A comma delimited absolute-paths list of custom paths
# always visible in results and ready to create a session from.
# Tip: if you're using zoxide mode, there's a good chance this is redundant
set -g @sessionx-custom-paths '/Users/me/projects,/Users/me/second-brain'
# By default, the current session will not be shown on first view
# This is to support quick switch of sessions
# Only after other actions (e.g. rename) will the current session appear
# Setting this option to 'false' changes this default behavior
set -g @sessionx-filter-current 'false'
# Window mode can be turned on so that the default layout
# Has all the windows listed rather than sessions only
set -g @sessionx-window-mode 'on'
# Preview location and screenspace can be adjusted with these
# Reminder: it can be toggeled on/off with `?`
set -g @sessionx-preview-location 'right'
set -g @sessionx-preview-ratio '55%'
# Change window dimensions
set -g @sessionx-window-height '90%'
set -g @sessionx-window-width '75%'
# When set to 'on' a non-result will be sent to zoxide for path matching
# Requires zoxide installed
set -g @sessionx-zoxide-mode 'on'
# If you're running fzf lower than 0.35.0 there are a few missing features
# Upgrade, or use this setting for support
set -g @sessionx-legacy-fzf-support 'on'
Working with SessionX 👷
Launching the plugin pops up an fzf-tmux "popup" with fizzy search over existing session (-current session). If you insert a non-existing name and hit enter, a new session with that name will be created.
alt+backspace
will delete the selected sessionC-u
scroll preview upC-d
scroll preview downC-r
"read": will launch aread
prompt to rename a session within the listC-w
"window": will reload the list with all the available windows and their previewC-x
will fuzzy read~/.config
or a configureable path of your choice (with@session-x-path
)C-e
"expand": will expandPWD
and search for local directories to create additional session fromC-b
"back": reloads the first query. Useful when going into window or expand mode, to go backC-t
"tree": reloads the preview with the tree of sessions+windows familiar from the native session manager (C-S)?
toggles the preview pane
⚠️
WARNING - If you're running
fzf
lower than 0.35.0 there are a few missing missing features that might break the plugin. Either consider upgrading or add@sessionx-legacy-fzf-support 'on'
to your config (see configuration) - This plugin is not designed to be used outside Tmux, although PRs are happily recieved!
Thanks ❤️
Inspired by these: