summaryrefslogtreecommitdiffstats
path: root/dwm_bar
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-09-24 12:21:56 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-09-24 12:21:56 +0530
commit86f99da8d08e1f2e290d8ebfd5adb016faff7bac (patch)
tree8f121a2aaa187d8266e20df23ad36262ab051866 /dwm_bar
downloadbin-86f99da8d08e1f2e290d8ebfd5adb016faff7bac.tar.gz
bin-86f99da8d08e1f2e290d8ebfd5adb016faff7bac.tar.bz2
bin-86f99da8d08e1f2e290d8ebfd5adb016faff7bac.zip
script's
Diffstat (limited to 'dwm_bar')
-rwxr-xr-xdwm_bar66
1 files changed, 66 insertions, 0 deletions
diff --git a/dwm_bar b/dwm_bar
new file mode 100755
index 0000000..487c9a3
--- /dev/null
+++ b/dwm_bar
@@ -0,0 +1,66 @@
+#!/bin/env sh
+
+# INIT
+printf "$$" > ~/.cache/pidofbar
+sec=0
+
+update_memory () {
+ memory="$(free -h | sed -n "2s/\([^ ]* *\)\{2\}\([^ ]*\).*/\2/p")"
+}
+
+update_time () {
+ time="$(date "+[  %a %d %b ] [  %I:%M %P ]")"
+}
+
+update_bat () {
+ # you might need to change the path depending on your device
+ read -r bat_status </sys/class/power_supply/BAT0/status
+ read -r bat_capacity </sys/class/power_supply/BAT0/capacity
+ if [ "$bat_status" = "Charging" ]; then
+ bat_status=""
+ elif [ "$bat_capacity" -gt 80 ]; then
+ bat_status=""
+ elif [ "$bat_capacity" -gt 60 ]; then
+ bat_status=""
+ elif [ "$bat_capacity" -gt 40 ]; then
+ bat_status=""
+ elif [ "$bat_capacity" -gt 20 ]; then
+ bat_status=""
+ else
+ bat_status=""
+ fi
+ bat="$bat_status $bat_capacity%"
+}
+
+update_vol () {
+ vol="$([ "$(pamixer --get-mute)" = "false" ] && printf ' ' || printf ' ')$(pamixer --get-volume)%"
+}
+
+# We have to run this only once.
+update_vol
+
+display () {
+ xsetroot -name "[  $memory ] [ $vol ] $time"
+}
+
+# Handling receiving signal
+# RTMIN = 34 (always)
+trap "update_vol;display" "RTMIN"
+
+## kill -m "$(cat ~/.cache/pidofbar)"
+# where m = 34 + n
+
+while true
+do
+ sleep 1 &
+ wait && {
+ # to update item ever n seconds with a offset of m
+ ## [ $((sec % n)) -eq m ] && udpate_item
+ [ $((sec % 5 )) -eq 0 ] && update_time
+ [ $((sec % 15)) -eq 0 ] && update_memory
+
+ # how often the display updates ( 5 seconds )
+ [ $((sec % 5 )) -eq 0 ] && display
+ sec=$((sec + 1))
+ }
+done