diff options
-rw-r--r-- | TODO.org | 5 | ||||
-rwxr-xr-x | bar.sh | 6 | ||||
-rwxr-xr-x | modules/archupdates | 4 | ||||
-rwxr-xr-x | modules/volumebar | 2 | ||||
-rwxr-xr-x | modules/weather | 53 |
5 files changed, 14 insertions, 56 deletions
@@ -10,10 +10,7 @@ Each module writes to stdout. /home/$USER/.config/dwmbar/modules/ * Todo List -- Delay in archupdates module (if minutes divisible by 5/4) -- python3 instead of bc -- User can specify the separator between each module -- Fix weather module +nothing :D Bugs to fix: none @@ -45,8 +45,10 @@ run_module() out="$($MODULES_DIR$1)" fi - [[ ! "$out" = "" ]] && out="$out$SEPARATOR." - echo "$out" > "$OUTPUT_CACHE$module" + if [[ ! "$out" = "" ]]; then + out="$out$SEPARATOR." + echo "$out" > "$OUTPUT_CACHE$module" + fi } run() diff --git a/modules/archupdates b/modules/archupdates index 30ee7a3..9fd509b 100755 --- a/modules/archupdates +++ b/modules/archupdates @@ -4,9 +4,9 @@ # Requires an internet connection # Depends on yay and checkupdates (pacman-contrib) -PREFIX=' Updates: ' +PREFIX=' Updates: ' -get_updates() +get_updates() { if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then updates_arch=0 diff --git a/modules/volumebar b/modules/volumebar index f2a9fa0..219428d 100755 --- a/modules/volumebar +++ b/modules/volumebar @@ -18,7 +18,7 @@ get_volume(){ active_sink=$(pacmd list-sinks | awk '/* index:/{print $3}') curStatus=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | awk '/muted/{ print $2}') volume=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | grep 'volume:' | grep -E -v 'base volume:' | awk -F : '{print $3}' | grep -o -P '.{0,3}%'| sed s/.$// | tr -d ' ') - slider_position=$(echo "scale=scale(1.0); x = ($volume / 100) * $VOLUME_WIDTH; scale=scale(1); x / 1" | bc) + slider_position=$(python -c "print(($volume / 100) * $VOLUME_WIDTH)") if [ "${curStatus}" = 'yes' ] then diff --git a/modules/weather b/modules/weather index 0933622..42887b7 100755 --- a/modules/weather +++ b/modules/weather @@ -1,56 +1,15 @@ #!/bin/bash -# Prints out the weather at your approximate location -# Needs an internet connection -# Dependencies: jq +# Deps: +# curl -SUN_ICON='' -CLOUD_ICON='摒' -RAIN_ICON='歹' -THUNDER_ICON='朗' -SNOW_ICON='流' -MIST_ICON='敖' get_weather() { - LOCATION=$(curl -s http://ip-api.com/json | \ - jq '.lat, .lon' | \ - while read -r LATITUDE; do - read -r LONGITUDE - echo "${LATITUDE}:${LONGITUDE}" | tr -d '"' - done) - - LANG="en" - UNITS="Metric" - API_KEY="756edce7e9d4c385ef9499a53492678c" - - LOCATION_FORMATTED_2=$(echo $LOCATION | cut -d ':' -f2) - LOCATION_FORMATTED_1=$(echo $LOCATION | cut -d ':' -f1) - - OUTPUT=$(curl -s "http://api.openweathermap.org/data/2.5/weather?lat=$LOCATION_FORMATTED_1&lon=$LOCATION_FORMATTED_2&lang=$LANG&appid=$API_KEY&units=$UNITS") - STATUS=$(echo $OUTPUT | jq '.weather' | tr '[' ' ' | tr ']' ' ' | jq '.main' | sed 's/"//g') - TEMP=$(echo $OUTPUT | jq '.main' | jq '.temp' | xargs printf "%.*f\n" 0) - - case $STATUS in - "Clear" ) - echo $SUN_ICON;; - "Clouds" ) - echo $CLOUD_ICON;; - "Rain" ) - echo $RAIN_ICON;; - "Thunderstorm" ) - echo $THUNDER_ICON;; - "Snow" ) - echo $SNOW_ICON;; - "Mist" ) - echo $MIST_ICON;; - * ) - echo "?";; - esac - - echo "$STATUS, " - echo "$TEMP°C" + curl -s v2.wttr.in | grep -e "Weather" | sed 's/C,.*/C/g; s/+//g; s/.*\[0m.//g; s/.//2' } -get_weather +if [ $(( 10#$(date +'%S') % 30 )) -eq 0 ]; then + get_weather +fi |