scripts/tmux_select_session.py

32 lines
679 B
Python

import sys
import libtmux
from pyfzf.pyfzf import FzfPrompt
# Get active tmux sessions
srv = libtmux.Server()
fzf = FzfPrompt()
mapping = {}
lm = max(len(s.name) for s in srv.sessions if s.name)
for session in srv.sessions:
string = f"({session.name: <{lm}}) {session.session_path}"
mapping[string] = session
selections = fzf.prompt(
["Select one session you want to switch to"] + list(mapping.keys()),
"--cycle --header-lines 1 --tmux center",
)
if not selections:
sys.exit(0)
sess_str = selections[0]
session = mapping[sess_str]
session.switch_client()
session.active_window.active_pane.display_message(
f"Switched to session: {session.name}"
)