feat(tmux): Add project opener
This commit is contained in:
parent
a8d06672a0
commit
3b05bf691e
29
.bin/tmux-projectinator
Executable file
29
.bin/tmux-projectinator
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Quit on escape
|
||||
set -o emacs
|
||||
bind '"\e": "\C-W\c-d"'
|
||||
|
||||
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]}")
|
||||
|
||||
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
|
@ -77,6 +77,9 @@ bind-key W command-prompt -p "Name of new window: " "new-window -n '%%'"
|
||||
|
||||
bind-key S command-prompt -p "Name of new session: " "new-session -s '%%'"
|
||||
|
||||
unbind o
|
||||
bind-key o display-popup "tmux-projectinator"
|
||||
|
||||
# Quick pane resizing using arrow keys
|
||||
bind-key -r H resize-pane -L 5
|
||||
bind-key -r J resize-pane -D 5
|
||||
|
Loading…
Reference in New Issue
Block a user