#!/bin/sh file="/tmp/.minimized" touch "$file" lines=$(awk 'END{print NR}' "$file") icon="$XDG_DATA_HOME/icons/Marwaita-Dark/24x24/categories/preferences-system-windows.svg" case $1 in hide) if [ "$lines" -ge 15 ]; then notify-send -i "$icon" "15 windows are already hidden" "You should consider closing some before hiding even more." else focusedNode=$(bspc query -N -n .focused) focusedID=$(bspc query -D -d --names) focusedName=$(xprop -id "$focusedNode" WM_NAME | cut -d\" -f2) echo "$focusedNode $focusedID $focusedName" >> "$file" xdo hide "$focusedNode" notiflines="$((lines +1))" notify-send -i "$icon" "${notiflines} hidden windows." "$focusedName" fi ;; dmenu) [ -z "$file" ] && exit sel=$(awk '{print $2,$3}' "$file" | dmenu -i -p ' ') selectedID=$(awk -v pat="$sel" '$0~pat {print $1}' "$file") selectedDesktop=$(awk -v pat="$sel" '$0~pat {print $2}' "$file") bspc desktop -f "$selectedDesktop" xdo show "$selectedID" sed -i "/${sel}/d" "$file" ;; esac