mirror of
https://gitlab.com/sagidayan/linux-config.git
synced 2024-09-20 03:17:34 +00:00
Sagi Dayan
79ab87fa07
- tmux key-bindings for save/open/delete workspace - each workspace has a layout based on common.sh functions such as `ide` `grid` and `layout`
33 lines
655 B
Bash
Executable file
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}"
|
|
|