72 lines
2 KiB
Bash
Executable file
72 lines
2 KiB
Bash
Executable file
#!/bin/sh
|
|
# POLYWINS
|
|
|
|
# SETTINGS {{{ ---
|
|
|
|
active_text_color="#250F0B"
|
|
active_underline="true"
|
|
active_underline_color="#000000"
|
|
inactive_text_color="#250F0B"
|
|
inactive_underline="false"
|
|
inactive_underline_color="#F1EF7D"
|
|
separator="|"
|
|
show="window_title" # options: window_title, window_class, window_classname
|
|
char_limit=20 # useful with window_title
|
|
max_windows=15 # maximum number of displayed windows
|
|
char_case="normal" # options: normal, upper, lower
|
|
add_spaces="true"
|
|
resize_increment=30
|
|
wm_border_width=0 # setting this might be required for accurate resize position
|
|
ignore_windows="polybar:yad" # :-separated list of windows we want to ignore (bars, desktop managers, etc.)
|
|
|
|
# --- }}}
|
|
|
|
case "$1" in
|
|
raise_or_minimize)
|
|
if [ "$3" = "$2" ]; then
|
|
wmctrl -ir "$2" -b toggle,hidden
|
|
else
|
|
wmctrl -ia "$2"
|
|
fi
|
|
;;
|
|
close)
|
|
wmctrl -ic "$2"
|
|
;;
|
|
slop_resize)
|
|
wmctrl -ia "$2"
|
|
wmctrl -ir "$2" -e "$(slop -f 0,%x,%y,%w,%h)"
|
|
;;
|
|
increment_size)
|
|
wmctrl -ir "$2" -e "$(wmctrl -G -l |
|
|
awk -v i="$resize_increment" \
|
|
-v b="$wm_border_width" \
|
|
-v win="$2" \
|
|
'$1 ~ win {print "0,"$3-b*2-i/2","$4-b*2-i/2","$5+i","$6+i}')"
|
|
;;
|
|
decrement_size)
|
|
wmctrl -ir "$2" -e "$(wmctrl -G -l |
|
|
awk -v i="$resize_increment" \
|
|
-v b="$wm_border_width" \
|
|
-v win="$2" \
|
|
'$1 ~ win {print "0,"$3-b*2+i/2","$4-b*2+i/2","$5-i","$6-i}')"
|
|
;;
|
|
esac
|
|
|
|
if [ -n "$2" ]; then exit; fi
|
|
|
|
xprop -root -notype -spy _NET_ACTIVE_WINDOW _NET_CURRENT_DESKTOP _NET_CLIENT_LIST | \
|
|
"${0%.*}.awk" \
|
|
-v active_text_color="$active_text_color" \
|
|
-v active_underline_color="$active_underline_color" \
|
|
-v active_underline="$active_underline" \
|
|
-v inactive_text_color="$inactive_text_color" \
|
|
-v inactive_underline_color="$inactive_underline_color" \
|
|
-v inactive_underline="$inactive_underline" \
|
|
-v separator="$separator" \
|
|
-v show="$show" \
|
|
-v char_case="$char_case" \
|
|
-v char_limit="$char_limit" \
|
|
-v add_spaces="$add_spaces" \
|
|
-v on_click="$0" \
|
|
-v max_windows="$max_windows" \
|
|
-v ignore_windows="$ignore_windows"
|