dgy
/
hexagons
Archived
1
0
Fork 0
This repository has been archived on 2021-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
hexagons/.local/bin/minve

34 lines
1.0 KiB
Bash
Executable File

#!/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