diff --git a/TARGETS.sh b/TARGETS.sh index 442e305..72ba4c1 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" + ["tmux"]=".config/tmux .tmux .config/systemd/user/tmux.service .local/bin/tmux_select_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 79b0b9f..e970767 100644 --- a/home/user/.config/tmux/mappings.conf +++ b/home/user/.config/tmux/mappings.conf @@ -188,4 +188,4 @@ bind -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 2 scroll-down # Session managment -bind a display-popup -EE '"$HOME/.tmux/$(ls ~/.tmux/*.sh | xargs -n 1 basename | fzf +m)"' \ No newline at end of file +bind a display-popup -EE '~/.local/bin/tmux_select_session.sh' \ No newline at end of file diff --git a/home/user/.local/bin/tmux_select_session.sh b/home/user/.local/bin/tmux_select_session.sh new file mode 100755 index 0000000..9e535b9 --- /dev/null +++ b/home/user/.local/bin/tmux_select_session.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + + +readonly TMUX_SESSIONS="${HOME}/.tmux" + +declare sessions +sessions="$(find "${TMUX_SESSIONS}/" -type f -executable)" +readonly sessions + +declare session_file +session_file="$(echo "${sessions}" | xargs -n 1 basename | fzf +m)" +readonly session_file + +if [[ -n "${session_file}" ]]; then + "${TMUX_SESSIONS}/${session_file}" +fi \ No newline at end of file