#!/usr/bin/env bash active() { num=$(river-bedload -print outputs | jq -r '.['$arg'] | select(.).view_tags') b=0 while [[ $num -gt 0 ]] do let temp=$num%2 if [[ $temp -eq 1 ]] then let count=$count+1 fi let num=$num/2 let b=b+1 if [[ $temp -eq 1 ]] then echo $b fi done return } #define icons for workspaces 1-9 ic=(0 1 2 3 4 5 6 7 8 9) workspaces() { export arg="$1" unset -v \ o1 o2 o3 o4 o5 o6 o7 o8 o9 \ f1 f2 f3 f4 f5 f6 f7 f8 f9 if [[ $arg = 0 && $(river-bedload -print outputs | jq -r '.[''] | select(.).name' | wc -l | xargs) -gt 1 ]] then arg=1 else arg=0 fi ows="$(active)" for num in $ows; do export o"$num"="$num" done # Get Focused workspace for current monitor ID num=$(river-bedload -print focused | jq -r '.['$arg'] | select(.).focused_id') export f"$num"="$num" echo "(box :class \"workspace\" :orientation \"h\" :space-evenly \"false\" \ (button :onclick \"riverctl set-focused-tags $((1 << (1 - 1)))\" :class \"w0$o1$f1\" \"${ic[1]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (2 - 1)))\" :class \"w0$o2$f2\" \"${ic[2]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (3 - 1)))\" :class \"w0$o3$f3\" \"${ic[3]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (4 - 1)))\" :class \"w0$o4$f4\" \"${ic[4]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (5 - 1)))\" :class \"w0$o5$f5\" \"${ic[5]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (6 - 1)))\" :class \"w0$o6$f6\" \"${ic[6]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (7 - 1)))\" :class \"w0$o7$f7\" \"${ic[7]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (8 - 1)))\" :class \"w0$o8$f8\" \"${ic[8]}\") \ (button :onclick \"riverctl set-focused-tags $((1 << (9 - 1)))\" :class \"w0$o9$f9\" \"${ic[9]}\") \ )" } workspaces $1 river-bedload -watch active | while read -r; do workspaces $1 done