diff --git a/.gitignore b/.gitignore index b6605b4..96341c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # Custom blocks file -blocks.h +#blocks.h # Prerequisites *.d diff --git a/blocks.def.h b/blocks.def.h index 993b7b8..40f77cf 100644 --- a/blocks.def.h +++ b/blocks.def.h @@ -1,14 +1,12 @@ //Modify this file to change what commands output to your statusbar, and recompile using the make command. static const Block blocks[] = { - /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/ - { " SSID ", "/opt/dwmblocks_scripts/dwm_ssid", 1, 0 }, - { "NET ", "/opt/dwmblocks_scripts/dwm_ipaddr", 1, 0 }, - { "MEM ", "/opt/dwmblocks_scripts/dwm_memory", 30, 0 }, - { "", "/opt/dwmblocks_scripts/dwm_volume withicon", 1, 10 }, - { "", "/opt/dwmblocks_scripts/dwm_battery withicon", 1, 10 }, - { "", "date '+%b %d (%a) %I:%M:%S %p' ", 1, 0 }, + /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/ + {"Mem:", "free -h | awk '/^Mem/ { print $3\"/\"$2 }' | sed s/i//g", 30, 0}, + + {"", "date '+%b %d (%a) %I:%M%p'", 5, 0}, }; -//sets delimeter between status commands. NULL character ('\0') means no delimeter. +//sets delimiter between status commands. NULL character ('\0') means no delimiter. static char delim[] = " | "; static unsigned int delimLen = 5; + diff --git a/blocks.h b/blocks.h new file mode 100644 index 0000000..4f1a736 --- /dev/null +++ b/blocks.h @@ -0,0 +1,14 @@ +//Modify this file to change what commands output to your statusbar, and recompile using the make command. +static const Block blocks[] = { + /*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/ + { "", "/opt/dwmblocks_scripts/dwm_ssid withicon", 1, 0 }, + { "NET ", "/opt/dwmblocks_scripts/dwm_ipaddr", 1, 0 }, + { "MEM ", "/opt/dwmblocks_scripts/dwm_memory", 10, 0 }, + { "", "/opt/dwmblocks_scripts/dwm_volume withicon", 1, 10 }, + { "", "/opt/dwmblocks_scripts/dwm_battery withicon", 1, 10 }, + { "", "/opt/dwmblocks_scripts/dwm_date", 1, 0 }, +}; + +//sets delimeter between status commands. NULL character ('\0') means no delimeter. +static char delim[] = " | "; +static unsigned int delimLen = 5; diff --git a/dwmblocks.c b/dwmblocks.c index befd252..89a3475 100644 --- a/dwmblocks.c +++ b/dwmblocks.c @@ -128,9 +128,13 @@ int getstatus(char *str, char *last) #ifndef NO_X void setroot() { - if (!getstatus(statusstr[0], statusstr[1]))//Only set root if text has changed. + if (!getstatus(statusstr[0], statusstr[1])) // Only set root if text has changed. return; - XStoreName(dpy, root, statusstr[0]); + + char outstr[STATUSLENGTH + 4]; + snprintf(outstr, sizeof(outstr), " %s ", statusstr[0]); + + XStoreName(dpy, root, outstr); XFlush(dpy); } @@ -149,9 +153,10 @@ int setupX() void pstdout() { - if (!getstatus(statusstr[0], statusstr[1]))//Only write out if text has changed. + if (!getstatus(statusstr[0], statusstr[1])) // Only write out if text has changed. return; - printf("%s\n",statusstr[0]); + + printf(" %s \n", statusstr[0]); fflush(stdout); } diff --git a/dwmblocks_scripts/battery_notify b/dwmblocks_scripts/battery_notify new file mode 100755 index 0000000..3519e59 --- /dev/null +++ b/dwmblocks_scripts/battery_notify @@ -0,0 +1,6 @@ +#!/bin/bash + +PRCT=$(acpi | awk -F, '{ print $2 }' | sed 's/%//g' | xargs) +if [[ $PRCT -lt 20 ]]; then + notify-send -u critical "Battery level is CRITICAL!" "$PRCT" +fi diff --git a/dwmblocks_scripts/dwm_battery b/dwmblocks_scripts/dwm_battery index a7e994d..3f3336d 100755 --- a/dwmblocks_scripts/dwm_battery +++ b/dwmblocks_scripts/dwm_battery @@ -1,7 +1,13 @@ -#!/bin/bash +#!/usr/bin/env bash -prct=$(acpi | grep 'Discharging' | awk '{print $4}' | sed 's/,//') -batid=$(acpi | grep 'Discharging' | awk '{print $2}' | sed 's/://') +prct=$(acpi 2>/dev/null | grep 'Discharging' | awk '{print $4}' | sed 's/,//') +batid=$(acpi 2>/dev/null | grep 'Discharging' | awk '{print $2}' | sed 's/://') + +# If not supported +if [[ $(acpi 2>&1 | grep 'No support') ]]; then + echo "No battery" >&2; + exit 1 +fi # If charged if [[ $(acpi | grep 'Discharging' | wc -c) -eq $(acpi | grep 'Charging' | wc -c) ]]; then diff --git a/dwmblocks_scripts/dwm_date b/dwmblocks_scripts/dwm_date new file mode 100755 index 0000000..2c37969 --- /dev/null +++ b/dwmblocks_scripts/dwm_date @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +DATE=$(date '+%b %d (%a) %I:%M:%S %p') +echo "$DATE" diff --git a/dwmblocks_scripts/dwm_ipaddr b/dwmblocks_scripts/dwm_ipaddr index c720355..4bacc85 100755 --- a/dwmblocks_scripts/dwm_ipaddr +++ b/dwmblocks_scripts/dwm_ipaddr @@ -1,6 +1,6 @@ #!/bin/bash -eth="$(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')" -wlp="$(ip -4 addr show wlan0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')" +eth="$(ip -4 addr show eth0 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}')" +wlp="$(ip -4 addr show wlan0 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}')" if [[ $(echo $eth | wc -c) -gt 1 ]] then diff --git a/dwmblocks_scripts/dwm_ssid b/dwmblocks_scripts/dwm_ssid index b24e746..986ca30 100755 --- a/dwmblocks_scripts/dwm_ssid +++ b/dwmblocks_scripts/dwm_ssid @@ -1,12 +1,14 @@ #!/bin/bash +# This works just with wpa_supplicant -ssid="$(wpa_cli status | grep ssid | sed -n '2p' | awk -F '=' '{print $2}')" +ssid="$(wpa_cli status 2>/dev/null | grep ssid | sed -n '2p' | awk -F '=' '{print $2}')" if [[ $(echo $ssid | wc -c) -gt 1 ]] then - echo "$ssid" - exit; + echo "SSID $ssid" + exit 0; fi -echo "" +echo "No SSID available" >&2 +exit 1 diff --git a/patches/space-padding.patch b/patches/space-padding.patch new file mode 100644 index 0000000..75769a9 --- /dev/null +++ b/patches/space-padding.patch @@ -0,0 +1,33 @@ +diff --git a/dwmblocks.c b/dwmblocks.c +index 3f7a1c2..f7a7c2e 100644 +--- a/dwmblocks.c ++++ b/dwmblocks.c +@@ -165,10 +165,15 @@ void setroot() + { +- if (!getstatus(statusstr[0], statusstr[1]))//Only set root if text has changed. +- return; +- XStoreName(dpy, root, statusstr[0]); +- XFlush(dpy); ++ if (!getstatus(statusstr[0], statusstr[1])) // Only set root if text has changed. ++ return; ++ ++ char outstr[STATUSLENGTH + 4]; ++ snprintf(outstr, sizeof(outstr), " %s ", statusstr[0]); ++ ++ XStoreName(dpy, root, outstr); ++ XFlush(dpy); + } + + int setupX() +@@ -187,9 +192,13 @@ void pstdout() + { +- if (!getstatus(statusstr[0], statusstr[1]))//Only write out if text has changed. +- return; +- printf("%s\n",statusstr[0]); +- fflush(stdout); ++ if (!getstatus(statusstr[0], statusstr[1])) // Only write out if text has changed. ++ return; ++ ++ printf(" %s \n", statusstr[0]); ++ fflush(stdout); + }