diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile index 9309715..3954358 100644 --- a/.config/zsh/.zprofile +++ b/.config/zsh/.zprofile @@ -5,4 +5,6 @@ export PATH="$PATH:/opt/flutter/bin/" export PATH="$PATH:/home/daniele/go/bin/" +export PATH="$PATH:$HOME/.local/scripts/" + export CAPACITOR_ANDROID_STUDIO_PATH="/home/daniele/.local/share/JetBrains/Toolbox/apps/android-studio/bin/studio.sh" diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 98ad9f6..a7033cc 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -75,5 +75,8 @@ source $HOME/.config/zsh/themes/dracula.zsh # Set up fzf key bindings and fuzzy completion eval "$(fzf --zsh)" +# tmux-sessionizer +bindkey -s ^n "tmux-sessionizer\n" + # Zsh syntax highlighting source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh diff --git a/.local/scripts/tmux-sessionizer b/.local/scripts/tmux-sessionizer new file mode 100755 index 0000000..355182d --- /dev/null +++ b/.local/scripts/tmux-sessionizer @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +if [[ $# -eq 1 ]]; then + selected=$1 +else + selected=$(find ~/Documents ~/Documents/projects ~/ -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/.local/scripts/tmux-windowizer b/.local/scripts/tmux-windowizer new file mode 100755 index 0000000..5a147d5 --- /dev/null +++ b/.local/scripts/tmux-windowizer @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +branch_name=$(basename $1) +session_name=$(tmux display-message -p "#S") +clean_name=$(echo $branch_name | tr "./" "__") +target="$session_name:$clean_name" + +if ! tmux has-session -t $target 2> /dev/null; then + tmux neww -dn $clean_name +fi + +shift +tmux send-keys -t $target "$*"