#!/usr/bin/env bash signal() { xsetroot -name "fsignal:$*" } case $# in 1) case $1 in focusurgent) ;& mirrorlayout) ;& mpdcontrol) ;& pushdown) ;& pushup) ;& self_restart) ;& setlayout) ;& setcfact) ;& switchcol) ;& view) ;& viewall) ;& viewtoleft) ;& viewtoright) ;& tagtoleft) ;& tagtoright) ;& tagandviewtoleft) ;& tagandviewtoright) ;& transfer) ;& transferall) ;& togglealttag) ;& togglebar) ;& togglefloating) ;& togglefullscreen) ;& fullscreen) ;& togglefakefullscreen) ;& togglesticky) ;& togglehorizontalmax) ;& toggleverticalmax) ;& togglemax) ;& togglegaps) ;& defaultgaps) ;& unfloatvisible) ;& winview) ;& xrdb) ;& zoom) ;& killclient) ;& quit) signal $1 ;; *) echo "Unknown command or missing one argument." exit 1 ;; esac ;; 2) case $1 in cyclelayout) ;& explace) ;& moveplace) ;& mpdchange) ;& switchtag) ;& togglescratch) ;& view) signal $1 ui $2 ;; viewex) ;& toggleviewex) ;& tagallmon) ;& tagswapmon) ;& tagex) ;& toggletagex) ;& setborderpx) ;& setlayoutex) ;& setlayoutaxisex) ;& swapfocus) ;& focusstack) ;& pushstack) ;& inplacerotate) ;& rotatestack) ;& rotatelayoutaxis) ;& incnmaster) ;& incnstack) ;& incrgaps) ;& incrigaps) ;& incrogaps) ;& incrihgaps) ;& incrivgaps) ;& incrohgaps) ;& incrovgaps) ;& movestack) ;& shiftview) ;& shiftviewclients) ;& focusmon) ;& tagmon) signal $1 i $2 ;; setcfact) ;& setmfact) signal $1 f $2 ;; *) echo "Unknown command or one too many arguments." exit 1 ;; esac ;; *) echo "Too many arguments." exit 1 ;; esac