mirror of
https://github.com/VectorKappa/dotfiles.git
synced 2025-12-19 08:16:10 +01:00
added binfiles from chrysostomus/bspwm-scripts, fixed eaten space
This commit is contained in:
78
bin/whid
Executable file
78
bin/whid
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
file="/tmp/.minimized"
|
||||
touch $file
|
||||
# By https://github.com/tatou-tatou
|
||||
width=$(wattr w $(lsw -r))
|
||||
height=$(wattr h $(lsw -r))
|
||||
bar_width=$(( $width / 2 ))
|
||||
left_shift=$(( ($width - $bar_width) / 2 ))
|
||||
top_shift=$(( $height / 3 ))
|
||||
|
||||
case $1 in
|
||||
hide)
|
||||
lines=$(wc -l < $file)
|
||||
|
||||
if [[ $lines -ge 10 ]]; then ## Fight against bad practices
|
||||
notify-send "Ten windows are already hidden" "You should consider closing some before hiding even more." -i warning
|
||||
else
|
||||
focusedID=$(xdo id)
|
||||
if [[ "$focusedID" ]]; then
|
||||
focusedName=$(xdotool getwindowname $focusedID)
|
||||
focusedDesktop=$(xdotool get_desktop)
|
||||
|
||||
echo "$focusedID $focusedDesktop $focusedName" >> $file && xdo hide $focusedID && notify-send "A window has been hidden (${lines})." "$focusedName" -i warning
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
dmenu)
|
||||
miniList=$(cat $file)
|
||||
|
||||
# Dmenu cannot draw more than 30 lines
|
||||
lines=$(wc -l < $file)
|
||||
if [[ $lines -gt 30 ]]
|
||||
then linesDisplayed=30
|
||||
else linesDisplayed=$lines
|
||||
fi
|
||||
|
||||
# If the list is empty
|
||||
if [ -z "$miniList" ]
|
||||
then
|
||||
miniList=" Nothing is hidden!"
|
||||
linesDisplayed=1
|
||||
fi
|
||||
|
||||
# Calculate where to draw the dmenu popup.
|
||||
# Comment that line if you use vanilla dmenu.
|
||||
yPos=$((410-$linesDisplayed*10))
|
||||
|
||||
|
||||
# Uncomment only one line with dmenu_cmd
|
||||
# If you use rofi
|
||||
dmenu_cmd="rofi -lines $linesDisplayed -dmenu -p Hidden:"
|
||||
|
||||
# If you use dmenu, patched with eye candy
|
||||
# dmenu_cmd="dmenu -l 9 -x $left_shift -y $top_shift -w $bar_width -fn sans-11 -nb #201F1D -nf #eddec9 -sb #8F3724 -sf #EDDEC9 -p Hidden:"
|
||||
|
||||
# If you use vanilla dmenu
|
||||
# dmenu_cmd="dmenu -b -i -l $linesDisplayed -p Hidden:"
|
||||
|
||||
# Launch dmenu
|
||||
lineNumber=$(echo "$miniList" | cut -d " " -f 3- | nl -w 3 -n rn | sed -r 's/^([ 0-9]+)[ \t]*(.*)$/\1 - \2/' | $dmenu_cmd | cut -d '-' -f -1)
|
||||
|
||||
# If you exited dmenu without selecting anything or if the list was empty
|
||||
[ -z "$lineNumber" -o "$miniList" = " Nothing is hidden!" ] && exit
|
||||
|
||||
# Show the selected hidden window
|
||||
selectedID=$(sed -n "$lineNumber p" $file | cut -d ' ' -f 1)
|
||||
selectedDesktop=$(sed -n "$lineNumber p" $file | cut -d ' ' -f 2)
|
||||
xdotool set_desktop $selectedDesktop
|
||||
xdo show $selectedID && sed -i "${lineNumber}d" $file
|
||||
;;
|
||||
last)
|
||||
lines=$(wc -l < $file)
|
||||
selectedID=$(tail -n 1 $file | cut -d ' ' -f 1)
|
||||
selectedDesktop=$(sed -n "$lines p" $file | cut -d ' ' -f 2)
|
||||
xdotool set_desktop $selectedDesktop
|
||||
xdo show $selectedID && sed -i "${lines}d" $file
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user