linux-config/files/dotfiles/shellconfig/workspaces/add_workspace.sh
Sagi Dayan 79ab87fa07
Simple tmux based workspace manager
- tmux key-bindings for save/open/delete workspace
- each workspace has a layout based on common.sh functions such as `ide` `grid` and `layout`
2022-01-22 17:25:21 +02:00

33 lines
655 B
Bash
Executable file

#!/bin/bash
JSON_PATH=~/.shellconfig/workspaces/workspaces.json
NAME=${1:-}
if [ -z "$NAME" ]; then
read -p "🖥 Please give this workspace a name: " NAME
fi
if [ -z "$NAME" ]; then
echo "Error: Invalid workspace name"
exit 1
fi
CURRENT_DIR=$(pwd)
LAYOUT=$(cat <<EOF | fzf --reverse --header "Select a layout for ${NAME}"
ide
grid
layout "2 1"
layout "1 2"
EOF
)
if [ -z "$LAYOUT" ]; then
echo "Invalid layout"
exit 1
fi
echo $(cat ${JSON_PATH} \
| jq --arg NAME "$NAME" --arg LAYOUT "$LAYOUT" --arg CURRENT_DIR "$CURRENT_DIR" '. + {($NAME):{layout: $LAYOUT, dir: $CURRENT_DIR}}') > ${JSON_PATH}
echo "✅ Added ${NAME}"