Add tmux-sessionizer.

This commit is contained in:
Sebastian Bugge 2025-07-14 17:16:06 +02:00
parent e97fef8036
commit 24582b2cf9
3 changed files with 32 additions and 0 deletions

29
.local/bin/tmux-sessionizer Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env bash
if [[ $# -eq 1 ]]; then
selected=$1
else
selected=$(find ~/code -mindepth 1 -maxdepth 1 -type d | fzf)
fi
if [[ -z $selected ]]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
tmux_running=$(pgrep tmux)
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
tmux new-session -s $selected_name -c $selected
exit 0
fi
if ! tmux has-session -t=$selected_name 2>/dev/null; then
tmux new-session -ds $selected_name -c $selected
fi
if [[ -z $TMUX ]]; then
tmux attach -t $selected_name
else
tmux switch-client -t $selected_name
fi

View file

@ -13,6 +13,7 @@ bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer"
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf \; display 'Reloaded tmux config!'

2
.zshrc
View file

@ -47,6 +47,8 @@ if [ -f $HOME/.local/bin/mise ]; then
eval "$($HOME/.local/bin/mise activate zsh)"
fi
bindkey -s ^f "tmux-sessionizer\n"
source ~/.aliases
fpath+=~/.zfunc
autoload -U compinit; compinit -d