#!/usr/bin/env bash

modes="monitor-std
monitor-single
monitor-single-sec
monitor-fhd
zellij"

portalo_mode_monitor () {
    echo "Loading portalo monitor layout ${1:-std}"
    yadm config --unset-all local.class monitor-single
    yadm config --unset-all local.class monitor-single-sec
    yadm config --unset-all local.class monitor-fhd

    if [ -n "$1" ]; then
        yadm config --add local.class "$1"
    fi
}

portalo_mode_zellij () {
    layout_dir="$HOME/.config/zellij/layouts"
    layouts=$(\ls -1 "$layout_dir")
    layout=$(echo "$layouts" | $DMENU -p "layout")
    if [ -n "$layout" ]; then
        $TERMINAL -e zellij --layout="$layout_dir/$layout"
    fi
}

if [ -z "$1" ]; then
    mode=$(echo "$modes" | $DMENU -p "mode")
else 
    mode=$1
fi

case $mode in
    "monitor-std")          portalo_mode_monitor ;;
    "monitor-single")       portalo_mode_monitor "$mode" ;;
    "monitor-single-sec")   portalo_mode_monitor "$mode" ;;
    "monitor-fhd")          portalo_mode_monitor "$mode" ;;
    "zellij")       portalo_mode_zellij ;;
    *)              echo "'$mode' is not a valid mode (single, std)" ;;
esac