34 lines
1.0 KiB
Bash
Executable File
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 "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
|
|
lineNumber=$(awk '{print $2,$3}' "$file" | dmenu -i -p ' ')
|
|
|
|
selectedID=$(awk -v pat="$lineNumber" '$0~pat {print $1}' "$file")
|
|
selectedDesktop=$(awk -v pat="$lineNumber" '$0~pat {print $2}' "$file")
|
|
bspc desktop -f "$selectedDesktop"
|
|
xdo show "$selectedID"
|
|
sed -i "/${lineNumber}/d" "$file"
|
|
;;
|
|
esac
|