#!/bin/sh # Quit on escape set -o emacs bind '"\e": "\C-W\c-d"' move_pane () { tmux has-session -t $SESSION_NAME 2>/dev/null if [ $? != 0 ]; then tmux new-session -s $SESSION_NAME -d -n $PROJECT #2>/dev/null fi tmux has-session -t $SESSION_NAME:$PROJECT 2>/dev/null if [ $? != 0 ]; then tmux new-window -t $SESSION_NAME: -n $PROJECT -d -c $SELECTED fi tmux switch-client -t $SESSION_NAME:$PROJECT # Close tmux popup if any tmux display-popup -C } declare -A CUSTOM_SESSIONS CUSTOM_SESSIONS[Projects]=Halia SELECTED=$(find . -name .git -type d -prune -not -path "./.*" 2>/dev/null | sed 's/\/.git//' | cut -d'/' -f2- | fzf) ROOT=$(echo $SELECTED | cut -d '/' -f1) PROJECT=$(echo $SELECTED | rev | cut -d '/' -f1 | rev) SESSION_NAME=$([ -z "${CUSTOM_SESSIONS[$ROOT]}" ] && echo "$ROOT" || echo "${CUSTOM_SESSIONS[$ROOT]}") while getopts ":l" option; do case $option in l) tmux send-keys 'cd $SELECTED' Enter # Close tmux popup if any tmux display-popup -C ;; *) move_pane ;; esac done