mirror of
https://github.com/dcarrillo/dotfiles.git
synced 2024-11-14 21:41:13 +00:00
52 lines
1.0 KiB
Plaintext
52 lines
1.0 KiB
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
STATUS_FILE=/dev/shm/polybar_task_manager
|
||
|
REFRESH=2
|
||
|
MAX_TASKS=10
|
||
|
|
||
|
show_tasks()
|
||
|
{
|
||
|
wmctrl -lx | awk '{if ($2 > -1) print $3}' \
|
||
|
| awk -F'.' '{ print $NF }' \
|
||
|
| tail -$MAX_TASKS | sort > $STATUS_FILE.current
|
||
|
|
||
|
diff -q $STATUS_FILE $STATUS_FILE.current > /dev/null 2>&1
|
||
|
if [ $? -ne 1 ]; then
|
||
|
return 0
|
||
|
fi
|
||
|
|
||
|
mv $STATUS_FILE.current $STATUS_FILE
|
||
|
|
||
|
counter=1
|
||
|
num_windows=$(wc -l $STATUS_FILE | cut -f 1 -d " ")
|
||
|
while [ $counter -le "$MAX_TASKS" ]; do
|
||
|
if [ $counter -le "$num_windows" ]; then
|
||
|
polybar-msg hook taskbar$counter 1 > /dev/null
|
||
|
else
|
||
|
polybar-msg hook taskbar"$counter" 2 > /dev/null
|
||
|
fi
|
||
|
|
||
|
sleep 0.1
|
||
|
counter=$((counter+1))
|
||
|
done
|
||
|
}
|
||
|
|
||
|
daemon()
|
||
|
{
|
||
|
while true; do
|
||
|
show_tasks
|
||
|
sleep $REFRESH
|
||
|
done
|
||
|
}
|
||
|
|
||
|
if [ "$1" = "--daemon" ]; then
|
||
|
> /dev/shm/polybar_task_manager
|
||
|
daemon
|
||
|
fi
|
||
|
|
||
|
if [ "$1" = "--window" ]; then
|
||
|
sed "${2}q;d" $STATUS_FILE
|
||
|
fi
|
||
|
|
||
|
exit 1
|