panel: general polish + refactoring
This commit is contained in:
parent
e196e2c4e3
commit
8a3162d983
|
@ -1,5 +1,7 @@
|
||||||
#!/usr/bin/env dash
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
|
. $(dirname $0)/../panel-config
|
||||||
|
|
||||||
# No guarantee that it will be called BAT0, but it suits my purposes.
|
# No guarantee that it will be called BAT0, but it suits my purposes.
|
||||||
if ! command -v acpi >/dev/null
|
if ! command -v acpi >/dev/null
|
||||||
then
|
then
|
||||||
|
@ -12,11 +14,41 @@ then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ICON_BAT0=""
|
||||||
|
ICON_BAT1=""
|
||||||
|
ICON_BAT2=""
|
||||||
|
ICON_BAT3=""
|
||||||
|
ICON_BAT4=""
|
||||||
|
ICON_BAT5=""
|
||||||
|
ICON_BAT6=""
|
||||||
|
ICON_BAT7=""
|
||||||
|
ICON_BAT8=""
|
||||||
|
ICON_BAT9=""
|
||||||
|
ICON_BATAC=""
|
||||||
|
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
BAT=$(acpi --battery)
|
BAT=$(acpi --battery)
|
||||||
PERC=$(echo $BAT | cut -d, -f2)
|
PERC=$(echo $BAT | cut -d, -f2)
|
||||||
echo -n "B${PERC#?}:"
|
|
||||||
echo "$BAT" | grep charging >/dev/null && echo "1" || echo "0"
|
case "${PERC#??}" in
|
||||||
|
100|9[0-9]) icon="${ICON_BAT9}" ;;
|
||||||
|
8[0-9]) icon="${ICON_BAT8}" ;;
|
||||||
|
7[0-9]) icon="${ICON_BAT7}" ;;
|
||||||
|
6[0-9]) icon="${ICON_BAT6}" ;;
|
||||||
|
5[0-9]) icon="${ICON_BAT5}" ;;
|
||||||
|
4[0-9]) icon="${ICON_BAT4}" ;;
|
||||||
|
3[0-9]) icon="%{F$COLOR_3}${ICON_BAT3}%{F-}" ;;
|
||||||
|
2[0-9]) icon="%{F$COLOR_3}${ICON_BAT2}%{F-}" ;;
|
||||||
|
1[0-9]) icon="%{F$COLOR_1}${ICON_BAT1}%{F-}" ;;
|
||||||
|
*) icon="%{F$COLOR_1}${ICON_BAT0}%{F-}" ;;
|
||||||
|
esac
|
||||||
|
if echo "$BAT" | grep charging >/dev/null
|
||||||
|
then
|
||||||
|
echo "${icon}${ICON_BATAC}"
|
||||||
|
else
|
||||||
|
echo "${icon} "
|
||||||
|
fi
|
||||||
|
|
||||||
sleep 15
|
sleep 15
|
||||||
done
|
done
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
[ -f ~/.secrets/accounts.sh ] && . ~/.secrets/accounts.sh || exit
|
[ -f ~/.secrets/accounts.sh ] && . ~/.secrets/accounts.sh || exit
|
||||||
|
. $(dirname $0)/../panel-config
|
||||||
|
|
||||||
ERROR=
|
ICON_MAIL=""
|
||||||
|
|
||||||
get-mail() {
|
get-mail() {
|
||||||
local feed=$(curl -u "$1:$2" --silent https://mail.google.com/mail/feed/atom)
|
local feed=$(curl -u "$1:$2" --silent https://mail.google.com/mail/feed/atom)
|
||||||
|
@ -11,7 +12,7 @@ get-mail() {
|
||||||
echo $feed | grep -o "<entry>" | wc -l
|
echo $feed | grep -o "<entry>" | wc -l
|
||||||
else
|
else
|
||||||
>&2 echo "mail.sh: error with $1"
|
>&2 echo "mail.sh: error with $1"
|
||||||
ERROR=1
|
ERROR=!
|
||||||
echo 0
|
echo 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -20,6 +21,17 @@ a=$(get-mail "${MAIL1[USER]}" "${MAIL1[PASS]}")
|
||||||
b=$(get-mail "${MAIL2[USER]}" "${MAIL2[PASS]}")
|
b=$(get-mail "${MAIL2[USER]}" "${MAIL2[PASS]}")
|
||||||
c=$(get-mail "${MAIL3[USER]}" "${MAIL3[PASS]}")
|
c=$(get-mail "${MAIL3[USER]}" "${MAIL3[PASS]}")
|
||||||
|
|
||||||
echo -n M$(( $a + $b + $c ))
|
num=$(( $a + $b + $c ))
|
||||||
[[ $ERROR ]] && echo -n !
|
icon="${ICON_MAIL}"
|
||||||
echo
|
color=${COLOR_FG}
|
||||||
|
case "$num" in
|
||||||
|
[1-9]*)
|
||||||
|
icon="$icon$num"
|
||||||
|
;;
|
||||||
|
0) color="${COLOR_DIM}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
[ -n "$ERROR" ] && color=${COLOR_1}
|
||||||
|
|
||||||
|
echo "M%{F$color}$icon%{F-}"
|
||||||
|
|
|
@ -1,24 +1,44 @@
|
||||||
#!/usr/bin/env dash
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
|
. $(dirname $0)/../panel-config
|
||||||
|
|
||||||
|
ICON_PLAY=""
|
||||||
|
ICON_PAUSE=""
|
||||||
|
# ICON_STOP=""
|
||||||
|
|
||||||
|
progress_bar() {
|
||||||
|
BAR_SIZE=${2:-26}
|
||||||
|
C1="%{F${COLOR_6}}-%{F-}"
|
||||||
|
C2="%{F${COLOR_DIM}}-%{F-}"
|
||||||
|
DELIM=
|
||||||
|
|
||||||
|
echo "$1" | SIZE=$BAR_SIZE CHAR1="$C1" CHAR2="$C2" SEP='' START="$DELIM" END="$DELIM" mkb
|
||||||
|
}
|
||||||
|
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
output=$(mpc --format ";%title%;%artist%;%album%")
|
output=$(mpc --format ";%title%;%artist%;%album%")
|
||||||
if echo $output | grep "^;" 2>&1 >/dev/null
|
if echo $output | grep "^;" 2>&1 >/dev/null
|
||||||
then
|
then
|
||||||
title=$(echo "$output" | head -1 | cut -d';' -f2)
|
# title=$(echo "$output" | head -1 | cut -d';' -f2)
|
||||||
artist=$(echo "$output" | head -1 | cut -d';' -f3)
|
# artist=$(echo "$output" | head -1 | cut -d';' -f3)
|
||||||
album=$(echo "$output" | head -1 | cut -d';' -f4)
|
# album=$(echo "$output" | head -1 | cut -d';' -f4)
|
||||||
seek=$(echo "$output" | awk 'NR==2 {print $3}')
|
seek=$(echo "$output" | awk 'NR==2 {print $3}')
|
||||||
perc=$(echo "$output" | awk 'NR==2 {print $4}' | tr -d '()')
|
perc=$(echo "$output" | awk 'NR==2 {print $4}' | tr -d '()')
|
||||||
state=$(echo "$output" | awk 'NR==2 {print $1}')
|
state=$(echo "$output" | awk 'NR==2 {print $1}')
|
||||||
|
|
||||||
case "$state" in
|
case "$state" in
|
||||||
"[playing]") echo -n "SP" ;;
|
"[playing]") icon="%{F${COLOR_2}}${ICON_PLAY}%{F-}" ;;
|
||||||
"[paused]") echo -n "Sp" ;;
|
"[paused]") icon="%{F${COLOR_4}}${ICON_PAUSE}%{F-}" ;;
|
||||||
*) echo -n "S " ;;
|
*) icon="" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo "$title^$artist^$album^$seek^$perc"
|
if [ -n "$icon" ]
|
||||||
|
then
|
||||||
|
# song="$title - $artist"
|
||||||
|
# [ -n "$album" ] && song="$song ($album)"
|
||||||
|
echo "%{B${COLOR_ALTBG}} $icon ${seek%/*} $(progress_bar $perc 16) ${seek#*/} %{B-} "
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "S"
|
echo "S"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,14 +1,25 @@
|
||||||
#!/usr/bin/env dash
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
|
# wireless icons
|
||||||
|
ICON_WIFI0=""
|
||||||
|
ICON_WIFI1=""
|
||||||
|
ICON_WIFI2=""
|
||||||
|
ICON_WIFI3=""
|
||||||
|
|
||||||
# No wifi interface? Abort!
|
# No wifi interface? Abort!
|
||||||
ints=$(find /sys/class/net/*/wireless -type d)
|
ints=$(find /sys/class/net/*/wireless -type d)
|
||||||
[ -z "$ints" ] && echo "Ix" && exit
|
[ -z "$ints" ] && echo "I${ICON_WIFI0}" && exit
|
||||||
|
|
||||||
# Start watching
|
# Start watching
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
|
# SSID=$(iwgetid --raw)
|
||||||
signal=$(awk 'NR==3 {print $3}' /proc/net/wireless)
|
signal=$(awk 'NR==3 {print $3}' /proc/net/wireless)
|
||||||
echo "I${signal%?}"
|
case "${signal%?}" in
|
||||||
# echo "I${signal%?},$(iwgetid --raw)"
|
100|[6-9][0-9]) icon="${ICON_WIFI3}" ;;
|
||||||
|
[2-5][0-9]) icon="${ICON_WIFI2}" ;;
|
||||||
|
*) icon="${ICON_WIFI1}" ;;
|
||||||
|
esac
|
||||||
|
echo "I$icon"
|
||||||
sleep 10
|
sleep 10
|
||||||
done
|
done
|
||||||
|
|
|
@ -1,4 +1,13 @@
|
||||||
#!/usr/bin/env dash
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
checkupdates >/dev/null
|
. $(dirname $0)/../panel-config
|
||||||
echo "U$(pacaur -Qu | wc -l)"
|
|
||||||
|
ICON_UPD=""
|
||||||
|
|
||||||
|
pkgs="$(checkupdates | wc -l)"
|
||||||
|
if [ "$pkgs" -gt 0 ]
|
||||||
|
then
|
||||||
|
echo "U%{F${COLOR_2}}$ICON_UPD$pkgs%{F-}"
|
||||||
|
else
|
||||||
|
echo "U%{F${COLOR_DIM}}$ICON_UPD%{F-}"
|
||||||
|
fi
|
||||||
|
|
|
@ -4,11 +4,21 @@
|
||||||
# os/arch/bin), which will inform lemonbar of changes, so we only need to intialize
|
# os/arch/bin), which will inform lemonbar of changes, so we only need to intialize
|
||||||
# volume once here.
|
# volume once here.
|
||||||
|
|
||||||
data=$(amixer get Master)
|
. $(dirname $0)/../panel-config
|
||||||
vol=0
|
|
||||||
|
# media player icons
|
||||||
|
ICON_MUTED=""
|
||||||
|
ICON_SPEAKER=""
|
||||||
|
|
||||||
if echo "$data" | grep '\[on\]' >/dev/null
|
if echo "$data" | grep '\[on\]' >/dev/null
|
||||||
then
|
then
|
||||||
vol=$(echo "$data" | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)
|
vol=$(echo "$data" | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)
|
||||||
|
case "$vol" in
|
||||||
|
0) echo "V${ICON_MUTED}"
|
||||||
|
;;
|
||||||
|
*) echo "V${ICON_SPEAKER}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "V%{F${COLOR_DIM}}${ICON_MUTED}%{F-}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "V$vol"
|
|
||||||
|
|
|
@ -31,28 +31,17 @@ fi
|
||||||
# Bootstrap panel(s)
|
# Bootstrap panel(s)
|
||||||
#
|
#
|
||||||
|
|
||||||
clock -sf "T%A, %b %d::%I:%M%p" > "${PANEL_FIFO}" &
|
clock -sf "T${ICON_DATE} %A, %b %d ${ICON_TIME} %I:%M%p" > "${PANEL_FIFO}" &
|
||||||
xtitle -sf 'X%s' > "${PANEL_FIFO}" &
|
xtitle -sf 'X%s' > "${PANEL_FIFO}" &
|
||||||
bspc subscribe report > "${PANEL_FIFO}" &
|
bspc subscribe report > "${PANEL_FIFO}" &
|
||||||
|
|
||||||
cd $CWD/lemons >/dev/null
|
for lemon in $CWD/lemons/*
|
||||||
for lemon in *
|
|
||||||
do
|
do
|
||||||
echo "INIT $lemon"
|
echo "INIT $(basename $lemon)"
|
||||||
./$lemon >"${PANEL_FIFO}" &
|
$lemon > "${PANEL_FIFO}" &
|
||||||
done
|
done
|
||||||
cd - >/dev/null
|
|
||||||
|
|
||||||
#
|
#
|
||||||
progress_bar() {
|
|
||||||
BAR_SIZE=${2:-26}
|
|
||||||
C1="%{F${COLOR_6}}-%{F-}"
|
|
||||||
C2="%{F${COLOR_DIM}}-%{F-}"
|
|
||||||
DELIM=
|
|
||||||
|
|
||||||
echo "$1" | SIZE=$BAR_SIZE CHAR1="$C1" CHAR2="$C2" SEP='' START="$DELIM" END="$DELIM" mkb
|
|
||||||
}
|
|
||||||
|
|
||||||
parse() {
|
parse() {
|
||||||
num_mon=$(bspc query -M | wc -l)
|
num_mon=$(bspc query -M | wc -l)
|
||||||
while read -r line
|
while read -r line
|
||||||
|
@ -60,59 +49,15 @@ parse() {
|
||||||
data="${line#?}"
|
data="${line#?}"
|
||||||
case $line in
|
case $line in
|
||||||
# Minimal icons
|
# Minimal icons
|
||||||
B*) perc="${data%\%:*}"
|
B*) battery="$data"
|
||||||
state="${data#*:}"
|
|
||||||
case "${perc}" in
|
|
||||||
100|9[0-9]) icon="${ICON_BAT9}" ;;
|
|
||||||
8[0-9]) icon="${ICON_BAT8}" ;;
|
|
||||||
7[0-9]) icon="${ICON_BAT7}" ;;
|
|
||||||
6[0-9]) icon="${ICON_BAT6}" ;;
|
|
||||||
5[0-9]) icon="${ICON_BAT5}" ;;
|
|
||||||
4[0-9]) icon="${ICON_BAT4}" ;;
|
|
||||||
3[0-9]) icon="%{F$COLOR_3}${ICON_BAT3}%{F-}" ;;
|
|
||||||
2[0-9]) icon="%{F$COLOR_3}${ICON_BAT2}%{F-}" ;;
|
|
||||||
1[0-9]) icon="%{F$COLOR_1}${ICON_BAT1}%{F-}" ;;
|
|
||||||
*) icon="%{F$COLOR_1}${ICON_BAT0}%{F-}" ;;
|
|
||||||
esac
|
|
||||||
[ "$state" = "1" ] && battery="${icon}${ICON_BATAC}" || battery="${icon} "
|
|
||||||
;;
|
;;
|
||||||
U*) updates=" %{F${COLOR_DIM}}$ICON_UPD%{F-}"
|
U*) updates=" $data"
|
||||||
if [ "$data" -gt 0 ]; then
|
|
||||||
updates=" %{F${COLOR_2}}$ICON_UPD$data%{F-}"
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
M*) icon="${ICON_MAIL}"
|
M*) mail=" $data"
|
||||||
color="${COLOR_FG}"
|
|
||||||
if [ "$data" = *! ]
|
|
||||||
then
|
|
||||||
data="${data%?}"
|
|
||||||
color="${COLOR_1}"
|
|
||||||
fi
|
|
||||||
case "$data" in
|
|
||||||
[1-9]*)
|
|
||||||
mail="$icon$data"
|
|
||||||
;;
|
|
||||||
0) mail="$icon"
|
|
||||||
color="${COLOR_DIM}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
mail="%{F$color}$mail%{F-}"
|
|
||||||
;;
|
;;
|
||||||
V*) case "$data" in
|
V*) vol=" $data"
|
||||||
0) vol=" %{F${COLOR_DIM}}${ICON_MUTED}%{F-}"
|
|
||||||
;;
|
|
||||||
*) vol=" ${ICON_SPEAKER}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
I*) # ssid=" ${data#*,}"
|
I*) wifi=" $data"
|
||||||
case "${data%,*}" in
|
|
||||||
100|[6-9][0-9]) icon="${ICON_WIFI3} " ;;
|
|
||||||
[2-5][0-9]) icon="${ICON_WIFI2} " ;;
|
|
||||||
x) icon="${ICON_WIFI0}" ;;
|
|
||||||
*) icon="${ICON_WIFI1} " ;;
|
|
||||||
esac
|
|
||||||
wifi=" $icon"
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# Full segments
|
# Full segments
|
||||||
|
@ -120,27 +65,9 @@ parse() {
|
||||||
;;
|
;;
|
||||||
X*) xtitle="$data"
|
X*) xtitle="$data"
|
||||||
;;
|
;;
|
||||||
T*) datetime=" ${ICON_DATE} ${data%::*} ${ICON_TIME} ${data#*::}"
|
T*) datetime=" $data"
|
||||||
;;
|
;;
|
||||||
S*) song=""
|
S*) song="$data "
|
||||||
case "$data" in
|
|
||||||
P*) icon="%{F${COLOR_2}}${ICON_PLAY}%{F-}" ;;
|
|
||||||
p*) icon="%{F${COLOR_4}}${ICON_PAUSE}%{F-}" ;;
|
|
||||||
*) icon="" ;;
|
|
||||||
esac
|
|
||||||
if [ -n "$icon" ]
|
|
||||||
then
|
|
||||||
info="${data#?}"
|
|
||||||
# title=$(echo "$info" | cut -d'^' -f1)
|
|
||||||
# artist=$(echo "$info" | cut -d'^' -f2)
|
|
||||||
# album=$(echo "$info" | cut -d'^' -f3)
|
|
||||||
seek=$(echo "$info" | cut -d'^' -f4)
|
|
||||||
perc=$(echo "$info" | cut -d'^' -f5)
|
|
||||||
|
|
||||||
# song="$title - $artist"
|
|
||||||
# [ -n "$album" ] && song="$song ($album)"
|
|
||||||
song="%{B${COLOR_ALTBG}} $icon ${seek%/*} $(progress_bar $perc 16) ${seek#*/} %{B-} "
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
W*) # bspwm's state
|
W*) # bspwm's state
|
||||||
wm=""
|
wm=""
|
||||||
|
|
|
@ -54,29 +54,4 @@ ICON_GAMES="" # ghost
|
||||||
# clock icons
|
# clock icons
|
||||||
ICON_DATE=""
|
ICON_DATE=""
|
||||||
ICON_TIME=""
|
ICON_TIME=""
|
||||||
# wireless icons
|
|
||||||
ICON_WIFI0=""
|
|
||||||
ICON_WIFI1=""
|
|
||||||
ICON_WIFI2=""
|
|
||||||
ICON_WIFI3=""
|
|
||||||
# media player icons
|
|
||||||
ICON_PLAY=""
|
|
||||||
ICON_PAUSE=""
|
|
||||||
ICON_STOP=""
|
|
||||||
ICON_MUTED=""
|
|
||||||
ICON_SPEAKER=""
|
|
||||||
# misc
|
|
||||||
ICON_MAIL=""
|
|
||||||
ICON_UPD=""
|
|
||||||
# battery
|
|
||||||
ICON_BAT0=""
|
|
||||||
ICON_BAT1=""
|
|
||||||
ICON_BAT2=""
|
|
||||||
ICON_BAT3=""
|
|
||||||
ICON_BAT4=""
|
|
||||||
ICON_BAT5=""
|
|
||||||
ICON_BAT6=""
|
|
||||||
ICON_BAT7=""
|
|
||||||
ICON_BAT8=""
|
|
||||||
ICON_BAT9=""
|
|
||||||
ICON_BATAC=""
|
|
||||||
|
|
Loading…
Reference in a new issue