#!/bin/bash

function get_current_desktop {
    DSK=($(wmctrl -d | grep \* | tr -s ' ' | cut -d' ' -f1,10))
    CUR_DSK=${DSK[0]}
    CUR_DSK_NAME=${DSK[1]}
}

function get_desktop_count {
    MAX_DSK=$(wmctrl -d | wc -l)
}

function switch_desktop {
    get_current_desktop
    get_desktop_count
    MAX_IDX=$((MAX_DSK-1))
    NEW_DSK=$((CUR_DSK+1))
    if [ "$NEW_DSK" -lt 0 ]; then
        NEW_DSK=${MAX_IDX}
    elif [ "$NEW_DSK" -gt "$MAX_IDX" ]; then
        NEW_DSK=0
    fi
    wmctrl -s $NEW_DSK
}

case "$1" in
    info)
        get_current_desktop
        echo "<small>$CUR_DSK_NAME</small>"
        ;;
    number)
        get_current_desktop
        echo $CUR_DSK
        ;;
    next)
        switch_desktop 1
        ;;
    prev)
        switch_desktop -1
        ;;
    *)
        echo "WRONG INPUT"
        ;;
esac
