Add tmux session select, update other scripts
This commit is contained in:
parent
d6e0fd4025
commit
953b9a791c
@ -2,17 +2,29 @@ import configparser
|
||||
import sys
|
||||
import time
|
||||
import libtmux
|
||||
import argparse
|
||||
|
||||
from pathlib import Path
|
||||
from pyfzf.pyfzf import FzfPrompt
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--servers-file", "-f", help="Servers file to connect to")
|
||||
parser_args = parser.parse_args()
|
||||
|
||||
if parser_args.servers_file:
|
||||
with open(parser_args.servers_file, "r") as file:
|
||||
data = file.read()
|
||||
|
||||
servers = []
|
||||
for line in data.strip().split("\n"):
|
||||
servers.append(line.strip())
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config_path = Path("~/.ssh-tmux-multi.ini").expanduser()
|
||||
config.read(config_path)
|
||||
|
||||
fav_key = "Favourite servers"
|
||||
|
||||
fzf = FzfPrompt()
|
||||
|
||||
|
||||
@ -73,7 +85,8 @@ def write_choosen_servers(servers):
|
||||
with open(config_path, "w") as file:
|
||||
config.write(file)
|
||||
|
||||
servers = fzf.prompt(get_favourite_servers_first(), "--cycle --multi --print-query")
|
||||
if not parser_args.servers_file:
|
||||
servers = fzf.prompt(["Select server to connect to"] + get_favourite_servers_first(), "--cycle --multi --print-query --header-lines 1")
|
||||
|
||||
# Strip from query if found else, use the query
|
||||
if len(servers) > 1:
|
||||
|
||||
20
tmux_select_session.py
Normal file
20
tmux_select_session.py
Normal file
@ -0,0 +1,20 @@
|
||||
import libtmux
|
||||
import sys
|
||||
|
||||
|
||||
from pyfzf.pyfzf import FzfPrompt
|
||||
|
||||
# Get active tmux sessions
|
||||
srv = libtmux.Server()
|
||||
|
||||
fzf = FzfPrompt()
|
||||
selections = fzf.prompt(["Select one session you want to switch to"] + [s.name for s in srv.sessions], "--cycle --header-lines 1")
|
||||
|
||||
if not selections:
|
||||
sys.exit(0)
|
||||
|
||||
session_name = selections[0]
|
||||
|
||||
session = srv.sessions.filter(name=session_name)[0]
|
||||
session.switch_client()
|
||||
session.active_window.active_pane.display_message(f"Switched to session: {session_name}")
|
||||
@ -15,7 +15,7 @@ folders = [
|
||||
]
|
||||
|
||||
available_folders = sh.find(*[Path(f).expanduser() for f in folders] + "-mindepth 1 -maxdepth 1 -type d".split(" ")).strip().split("\n")
|
||||
selected = fzf.prompt(available_folders, "--cycle")
|
||||
selected = fzf.prompt(["Select a folder to create or switch session to"] + available_folders, "--cycle --header-lines 1")
|
||||
|
||||
if not selected:
|
||||
sys.exit(1)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user