diff --git a/.local/bin/tmux-sessionizer b/.local/bin/tmux-sessionizer new file mode 100755 index 0000000..54d359e --- /dev/null +++ b/.local/bin/tmux-sessionizer @@ -0,0 +1,25 @@ +#!/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 + +tmux switch-client -t $selected_name diff --git a/.tmux.conf b/.tmux.conf index 6948d3c..06ca571 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -96,6 +96,8 @@ bind-key C-a send-prefix # bind s popup -h80% -w80% -KER "spt" # bind C-t popup -KR "$SHELL" +bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer" + ###################################################################### # END OF GENERAL CONFIGURATIONS ###################################################################### diff --git a/.zshrc b/.zshrc index aa6e62f..a53c80e 100644 --- a/.zshrc +++ b/.zshrc @@ -4,7 +4,7 @@ ZSH_THEME="robbyrussell" # Plugins plugins=( git -# zsh-autosuggestions + fzf ) export ZSH=$HOME/.oh-my-zsh @@ -12,7 +12,7 @@ source $ZSH/oh-my-zsh.sh # Path settings export PYENV_ROOT="$HOME/.pyenv" -export PATH="$PYENV_ROOT/bin:$PATH" +export PATH="$PYENV_ROOT/shims:$PATH" export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin export PATH="$HOME/.cargo/bin:$PATH" @@ -32,7 +32,6 @@ SAVEHIST=10000 # goodies eval "$(direnv hook zsh)" -eval "$(pyenv init -)" eval "$(starship init zsh)" . $HOME/.asdf/asdf.sh