#!/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 "$CUR_DSK_NAME" ;; number) get_current_desktop echo $CUR_DSK ;; next) switch_desktop 1 ;; prev) switch_desktop -1 ;; *) echo "WRONG INPUT" ;; esac