1
0
mirror of https://github.com/dcarrillo/dotfiles.git synced 2024-12-23 13:46:47 +00:00
dotfiles/.config/polybar/scripts/task_manager

52 lines
1.0 KiB
Bash
Executable File

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