#!/usr/bin/env bash IVIDEON_SESSION_NAME=Backend PERSONAL_SESSION_NAME=Personal OTHER_SESSION_NAME=Other IVIDEON_REPO_ROOT_PATH="/home/user/Work/root" change_dir_and_activate_root_env(){ # Get first argument and set True if not provided local env_activate="${1:-True}" # Go to project path tmux send-keys "cd ${IVIDEON_REPO_ROOT_PATH}" C-m if [[ "$env_activate" != "False" ]]; then tmux send-keys "source /home/user/Work/root/venv/bin/activate" C-m fi # Clear terminal tmux send-keys "clear" C-m } # Kill IVIDEON_SESSION_NAME if existst tmux kill-ses -t "${IVIDEON_SESSION_NAME}" tmux kill-ses -t "${PERSONAL_SESSION_NAME}" tmux kill-ses -t "${OTHER_SESSION_NAME}" # Create detached sesssion with default IDE window tmux new-ses -d -s ${IVIDEON_SESSION_NAME} -n IDE # Go to project path change_dir_and_activate_root_env True # Split IDE window in half tmux split-window -v change_dir_and_activate_root_env False # Some resizing tmux resize-pane -D 15 # Create additional windows # Git manipulation window tmux new-window -n cloud-env -t ${IVIDEON_SESSION_NAME} # Go to project directory and acivate env change_dir_and_activate_root_env tmux send-keys "cd ${IVIDEON_REPO_ROOT_PATH}/ivideon/tests" C-m tmux send-keys "clear" C-m # Scripts manipulation window tmux new-window -n Scripts -t ${IVIDEON_SESSION_NAME} # Go to scripts directory change_dir_and_activate_root_env False # Bash manipulation window tmux new-window -n Bash -t ${IVIDEON_SESSION_NAME} change_dir_and_activate_root_env False # Runners window tmux new-window -n Lazydocker -t ${IVIDEON_SESSION_NAME} change_dir_and_activate_root_env False tmux send-keys "lazydocker" C-m # Git window 1 tmux new-window -n "git->service" -t ${IVIDEON_SESSION_NAME} change_dir_and_activate_root_env False tmux send-keys "cd ${IVIDEON_REPO_ROOT_PATH}/ivideon/ivideon" C-m # Git window 2 tmux new-window -n "git->tests" -t ${IVIDEON_SESSION_NAME} change_dir_and_activate_root_env False tmux send-keys "cd ${IVIDEON_REPO_ROOT_PATH}/ivideon/tests" C-m # Git window 3 tmux new-window -n "git->api5" -t ${IVIDEON_SESSION_NAME} tmux send-keys "cd ${IVIDEON_REPO_ROOT_PATH}/ivideon/api_concept" C-m # ---- Session: Programming ---- # Create new session for personal use tmux new-ses -d -s ${PERSONAL_SESSION_NAME} -n Programming tmux new-window -n VPN -t ${PERSONAL_SESSION_NAME} tmux new-window -n Obsidian -t ${PERSONAL_SESSION_NAME} tmux send-keys "cd /home/user/Documents/t0xa_vault" C-m # ---- Session: Other ---- # Create new session for other usecases use tmux new-ses -d -s ${OTHER_SESSION_NAME} -n Other tmux new-window -n CLI -t ${OTHER_SESSION_NAME} change_dir_and_activate_root_env False # ----- Attach to created environment ----- tmux attach -t "$IVIDEON_SESSION_NAME:IDE"