From 0f001c52d58b0ca2a6276a38f902b0b7a129c25f Mon Sep 17 00:00:00 2001 From: thek4n Date: Mon, 21 Oct 2024 12:18:51 +0300 Subject: [PATCH] tmux mapping choose session --- TARGETS.sh | 2 +- home/user/.config/tmux/mappings.conf | 7 ++--- home/user/.local/bin/tmux_choose_session.sh | 31 +++++++++++++++++++++ 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100755 home/user/.local/bin/tmux_choose_session.sh diff --git a/TARGETS.sh b/TARGETS.sh index f5d78a2..d407d0b 100644 --- a/TARGETS.sh +++ b/TARGETS.sh @@ -1,6 +1,6 @@ declare -r -A TARGETS=( ["colors"]=".config/terminal-colors.d" - ["tmux"]=".config/tmux .tmux .config/systemd/user/tmux.service .local/bin/tmux_start_session.sh .local/bin/tmux_attach_session.sh" + ["tmux"]=".config/tmux .tmux .config/systemd/user/tmux.service .local/bin/tmux_start_session.sh .local/bin/tmux_attach_session.sh .local/bin/tmux_choose_session.sh" ["bash"]=".config/bash .bashrc .profile %tmux %colors" ["zsh"]="%bash .config/zsh .zshenv .inputrc" ["alacritty"]=".config/alacritty" diff --git a/home/user/.config/tmux/mappings.conf b/home/user/.config/tmux/mappings.conf index a4fe5c4..f6262f2 100644 --- a/home/user/.config/tmux/mappings.conf +++ b/home/user/.config/tmux/mappings.conf @@ -24,9 +24,6 @@ bind WheelDownPane send-keys -N 2 scroll-Down bind F12 send-keys F12 -bind s choose-tree-index - - # View current pane in editor bind-key y { capture-pane -J @@ -193,4 +190,6 @@ bind -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 2 scroll-down # Session managment -bind f display-popup -EE '~/.local/bin/tmux_start_session.sh' \ No newline at end of file +bind s display-popup -w 80% -h 80% -EE -T 'Attach existing session' '~/.local/bin/tmux_choose_session.sh' +bind f display-popup -EE -T 'Start new session' '~/.local/bin/tmux_start_session.sh' +bind a choose-tree-index \ No newline at end of file diff --git a/home/user/.local/bin/tmux_choose_session.sh b/home/user/.local/bin/tmux_choose_session.sh new file mode 100755 index 0000000..eb65bdc --- /dev/null +++ b/home/user/.local/bin/tmux_choose_session.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + + +export FZF_DEFAULT_OPTS="\ +--cycle \ +--pointer='' \ +--marker='+' \ +--color='pointer:green' \ +--bind \ +ctrl-/:toggle-preview,\ +ctrl-a:toggle-all,\ +ctrl-p:preview-up,\ +ctrl-n:preview-down,\ +ctrl-u:clear-query,\ +ctrl-q:toggle+down,\ +tab:replace-query,\ +shift-tab:toggle\ +" + +declare sessions +sessions="$(tmux list-session -F '#S')" +readonly sessions + + +declare session +session="$(echo "${sessions}" | fzf +m --preview-window 75%,follow --preview 'tmux capture-pane -p -e -t {1}')" +readonly session + +if [[ -n "${session}" ]]; then + tmux switch-client -t "${session}" +fi