47 lines
914 B
Bash
Executable File
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}"
|