doti/scripts/zellij-sessionizer
Robin Bärtschi 8240c33ef0 a lot more
scripts in system/ are for setting up the system
2025-07-05 23:58:51 +02:00

47 lines
914 B
Bash
Executable File

#!/usr/bin/env bash
if [ $# -eq 1 ]; then
selected=$(realpath $1)
else
selected=$(find ~/dev -maxdepth 1 -type d | fzf)
fi
if [ -z $selected ]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
function prepare_session() {
local layout=$(mktemp)
cat > ${layout} <<EOF
layout {
default_tab_template {
pane size=1 borderless=true {
plugin location="zellij:tab-bar"
}
children
pane size=1 borderless=true {
plugin location="zellij:status-bar"
}
}
tab name="nvim" {
pane name="nvim" command="nvim"
}
tab name="terminal" {
pane
}
}
EOF
zellij --layout "${layout}" a -c $selected_name options --default-cwd $selected
rm "${layout}"
exit 0
}
if [ "$(zellij list-sessions -n -s | rg "dotidd" | wc -l)" = "0" ]; then
prepare_session
fi
zellij a "${selected_name}"