From 16874b6716a2f040077cac61b08cf3b21ec74fc6 Mon Sep 17 00:00:00 2001 From: Gregory Chamberlain Date: Sun, 31 May 2020 20:10:53 +0100 Subject: [PATCH 1/6] Remove unnecessary double quotes --- .local/bin/statusbar/nettraf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.local/bin/statusbar/nettraf b/.local/bin/statusbar/nettraf index c9b003f..6972b7e 100755 --- a/.local/bin/statusbar/nettraf +++ b/.local/bin/statusbar/nettraf @@ -4,18 +4,18 @@ # transmitted (TX) since the previous time this script ran. So if run every # second, gives network traffic per second. -case "$BLOCK_BUTTON" in +case $BLOCK_BUTTON in 3) notify-send "🌐 Network traffic module" "🔻: Traffic received 🔺: Traffic transmitted" ;; 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -logfile="${XDG_CACHE_HOME:-$HOME/.cache}/netlog" +logfile=${XDG_CACHE_HOME:-$HOME/.cache}/netlog [ -f "$logfile" ] || echo "0 0" > "$logfile" read -r rxprev txprev < "$logfile" -rxcurrent="$(($(paste -d '+' /sys/class/net/[ew]*/statistics/rx_bytes)))" -txcurrent="$(($(paste -d '+' /sys/class/net/[ew]*/statistics/tx_bytes)))" +rxcurrent=$(($(paste -d '+' /sys/class/net/[ew]*/statistics/rx_bytes))) +txcurrent=$(($(paste -d '+' /sys/class/net/[ew]*/statistics/tx_bytes))) printf "🔻%dKiB 🔺%dKiB\\n" "$(((rxcurrent-rxprev)/1024))" "$(((txcurrent-txprev)/1024))" From 63aef514d7b6e0793c01989a58eb0529d56052d9 Mon Sep 17 00:00:00 2001 From: Gregory Chamberlain Date: Sun, 31 May 2020 20:30:52 +0100 Subject: [PATCH 2/6] Refactor nettraf No longer relies on paste(1p). --- .local/bin/statusbar/nettraf | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.local/bin/statusbar/nettraf b/.local/bin/statusbar/nettraf index 6972b7e..42da6d0 100755 --- a/.local/bin/statusbar/nettraf +++ b/.local/bin/statusbar/nettraf @@ -10,13 +10,19 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac -logfile=${XDG_CACHE_HOME:-$HOME/.cache}/netlog -[ -f "$logfile" ] || echo "0 0" > "$logfile" -read -r rxprev txprev < "$logfile" +update() { + sum=0 + for arg; do + read -r i < "$arg" + sum=$(( "$sum" + "$i" )) + done + cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/} + [ -f "$cache" ] && read -r old < "$cache" || old=0 + printf %d\\n "$sum" > "$cache" + printf %d\\n $(( ("$sum" - "$old") / 1024 )) +} -rxcurrent=$(($(paste -d '+' /sys/class/net/[ew]*/statistics/rx_bytes))) -txcurrent=$(($(paste -d '+' /sys/class/net/[ew]*/statistics/tx_bytes))) +rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) +tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes) -printf "🔻%dKiB 🔺%dKiB\\n" "$(((rxcurrent-rxprev)/1024))" "$(((txcurrent-txprev)/1024))" - -echo "$rxcurrent $txcurrent" > "$logfile" +printf "🔻%dKiB 🔺%dKiB\\n" "$rx" "$tx" From 43f0f899ae4a0134930830fbccf7af614c87c92e Mon Sep 17 00:00:00 2001 From: Gregory Chamberlain Date: Sun, 31 May 2020 21:26:05 +0100 Subject: [PATCH 3/6] Fix arithmetic expansions --- .local/bin/statusbar/nettraf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/nettraf b/.local/bin/statusbar/nettraf index 42da6d0..fa9eb30 100755 --- a/.local/bin/statusbar/nettraf +++ b/.local/bin/statusbar/nettraf @@ -14,12 +14,12 @@ update() { sum=0 for arg; do read -r i < "$arg" - sum=$(( "$sum" + "$i" )) + sum=$(( $sum + $i )) done cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/} [ -f "$cache" ] && read -r old < "$cache" || old=0 printf %d\\n "$sum" > "$cache" - printf %d\\n $(( ("$sum" - "$old") / 1024 )) + printf %d\\n $(( ($sum - $old) / 1024 )) } rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) From f820ccf4dd69d4cf784fca4fc0e1ae273993077e Mon Sep 17 00:00:00 2001 From: JameyBear Date: Mon, 1 Jun 2020 15:29:57 -0400 Subject: [PATCH 4/6] Shellcheck (#676) Co-authored-by: WhispersOfJ --- .config/bspwm/bspwm/bspwmrc | 4 ++-- .config/bspwm/bspwmrc | 4 ++-- .config/ranger/scope.sh | 6 +++--- .local/bin/cron/crontog | 2 +- .local/bin/cron/newsup | 2 +- .local/bin/displayselect | 10 +++++----- .local/bin/getkeys | 4 ++-- .local/bin/linkhandler | 2 +- .local/bin/pauseallmpv | 2 +- .local/bin/podentr | 4 ++-- .local/bin/qndl | 2 +- .local/bin/rotdir | 2 +- .local/bin/statusbar/crypto | 2 +- .local/bin/statusbar/help-icon | 2 +- .local/bin/statusbar/news | 2 +- .local/bin/sysact | 2 +- 16 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.config/bspwm/bspwm/bspwmrc b/.config/bspwm/bspwm/bspwmrc index 71c1a34..f0d4809 100755 --- a/.config/bspwm/bspwm/bspwmrc +++ b/.config/bspwm/bspwm/bspwmrc @@ -18,7 +18,7 @@ mainmonitor="$(bspc query --monitors --names | grep -v LVDS | head -n 1)" # fi # Start workspaces on the main monitor. -bspc monitor $mainmonitor -d 1 2 3 4 5 6 7 8 9 10 +bspc monitor "$mainmonitor" -d 1 2 3 4 5 6 7 8 9 10 bspc desktop -f 1 # If you want a multi-monitor display or something else, I leave that to you to @@ -32,7 +32,7 @@ bspc config focus_follows_pointer true bspc rule -a Zathura state=tiled dropdownname="dropdown" -bspc query -N -n .hidden >/dev/null || setsid -f $TERMINAL -n "$dropdownname" -e dropdown >/dev/null 2>&1 +bspc query -N -n .hidden >/dev/null || setsid -f "$TERMINAL" -n "$dropdownname" -e dropdown >/dev/null 2>&1 bspc rule -a St:$dropdownname hidden=on bspc rule -a St:$dropdownname sticky=on bspc rule -a St:$dropdownname state=floating diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc index 95ff5db..36b9abc 100755 --- a/.config/bspwm/bspwmrc +++ b/.config/bspwm/bspwmrc @@ -13,7 +13,7 @@ if ! echo "$mainmonitor" | grep LVDS >/dev/null 2>&1; then fi # Start workspaces on the main monitor. -bspc monitor $mainmonitor -d 1 2 3 4 5 6 7 8 9 10 +bspc monitor "$mainmonitor" -d 1 2 3 4 5 6 7 8 9 10 bspc desktop -f 1 # If you want a multi-monitor display or something else, I leave that to you to @@ -26,7 +26,7 @@ bspc config top_padding 24 # top_padding I set equal to polybar's height bspc config focus_follows_pointer true dropdownname="dropdown" -bspc query -N -n .hidden >/dev/null || setsid -f $TERMINAL -n "$dropdownname" -e dropdown >/dev/null 2>&1 +bspc query -N -n .hidden >/dev/null || setsid -f "$TERMINAL" -n "$dropdownname" -e dropdown >/dev/null 2>&1 bspc rule -a St:$dropdownname hidden=on bspc rule -a St:$dropdownname sticky=on bspc rule -a St:$dropdownname state=floating diff --git a/.config/ranger/scope.sh b/.config/ranger/scope.sh index cce86cf..174ba17 100755 --- a/.config/ranger/scope.sh +++ b/.config/ranger/scope.sh @@ -88,9 +88,9 @@ case "$extension" in try odt2txt "$path" && { dump | trim; exit 5; } || exit 1;; # HTML Pages: htm|html|xhtml) - try w3m -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } - try lynx -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } - try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } + try w3m -dump "$path" && { dump | trim | fmt -s -w "$width"; exit 4; } + try lynx -dump "$path" && { dump | trim | fmt -s -w "$width"; exit 4; } + try elinks -dump "$path" && { dump | trim | fmt -s -w "$width"; exit 4; } ;; # fall back to highlight/cat if the text browsers fail esac diff --git a/.local/bin/cron/crontog b/.local/bin/cron/crontog index 8168012..5aba5e6 100755 --- a/.local/bin/cron/crontog +++ b/.local/bin/cron/crontog @@ -3,4 +3,4 @@ # Toggles all cronjobs off/on. # Stores disabled crontabs in ~/.consaved until restored. -([ -f ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved ] && crontab - < ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved && rm ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved && notify-send "🕓 Cronjobs re-enabled.") || ( crontab -l > ${XDG_CONFIG_HOME:-$HOME/.config}/cronsaved && crontab -r && notify-send "🕓 Cronjobs saved and disabled.") +([ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved ] && crontab - < "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && rm "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && notify-send "🕓 Cronjobs re-enabled.") || ( crontab -l > "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && crontab -r && notify-send "🕓 Cronjobs saved and disabled.") diff --git a/.local/bin/cron/newsup b/.local/bin/cron/newsup index bf8898e..94cfd87 100755 --- a/.local/bin/cron/newsup +++ b/.local/bin/cron/newsup @@ -7,7 +7,7 @@ ping -q -c 1 1.1.1.1 > /dev/null || exit /usr/bin/notify-send "📰 Updating RSS feeds..." -ps ax | grep -q newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name newsboat)" R && exit +pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name newsboat)" R && exit echo 🔃 > /tmp/newsupdate pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}" diff --git a/.local/bin/displayselect b/.local/bin/displayselect index 1c61103..890363c 100755 --- a/.local/bin/displayselect +++ b/.local/bin/displayselect @@ -18,10 +18,10 @@ twoscreen() { # If multi-monitor is selected and there are two screens. res_internal=$(xrandr --query | sed -n "/^$internal/,/\+/p" | \ tail -n 1 | awk '{print $1}') - res_ext_x=$(echo $res_external | sed 's/x.*//') - res_ext_y=$(echo $res_external | sed 's/.*x//') - res_int_x=$(echo $res_internal | sed 's/x.*//') - res_int_y=$(echo $res_internal | sed 's/.*x//') + res_ext_x=$(echo "$res_external" | sed 's/x.*//') + res_ext_y=$(echo "$res_external" | sed 's/.*x//') + res_int_x=$(echo "$res_internal" | sed 's/x.*//') + res_int_y=$(echo "$res_internal" | sed 's/.*x//') scale_x=$(echo "$res_ext_x / $res_int_x" | bc -l) scale_y=$(echo "$res_ext_y / $res_int_y" | bc -l) @@ -53,7 +53,7 @@ multimon() { # Multi-monitor handler. esac ;} onescreen() { # If only one output available or chosen. - xrandr --output "$1" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "$1" | awk '{print "--output", $1, "--off"}' | paste -sd ' ') + xrandr --output "$1" --auto --scale 1.0x1.0 "$(echo "$allposs" | grep -v "$1" | awk '{print "--output", $1, "--off"}' | paste -sd ' ')" } postrun() { # Stuff to run to clean up. diff --git a/.local/bin/getkeys b/.local/bin/getkeys index 0a0e86e..266f29a 100755 --- a/.local/bin/getkeys +++ b/.local/bin/getkeys @@ -1,5 +1,5 @@ #!/bin/sh -cat ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/getkeys/"$1" 2>/dev/null && exit +cat "${XDG_DATA_HOME:-$HOME/.local/share}"/larbs/getkeys/"$1" 2>/dev/null && exit echo "Run command with one of the following arguments for info about that program:" -ls ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/getkeys +ls "${XDG_DATA_HOME:-$HOME/.local/share}"/larbs/getkeys diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler index 923a3f9..e720641 100755 --- a/.local/bin/linkhandler +++ b/.local/bin/linkhandler @@ -18,5 +18,5 @@ case "$1" in setsid -f tsp curl -LO "$1" >/dev/null 2>&1 ;; *) if [ -f "$1" ]; then "$TERMINAL" -e "$EDITOR $1" - else setsid -f $BROWSER "$1" >/dev/null 2>&1; fi ;; + else setsid -f "$BROWSER" "$1" >/dev/null 2>&1; fi ;; esac diff --git a/.local/bin/pauseallmpv b/.local/bin/pauseallmpv index 15b9f59..d69a414 100755 --- a/.local/bin/pauseallmpv +++ b/.local/bin/pauseallmpv @@ -6,5 +6,5 @@ # (with other things) by default and is used in some other places. for i in $(ls /tmp/mpvSockets/*); do - echo '{ "command": ["set_property", "pause", true] }' | socat - $i; + echo '{ "command": ["set_property", "pause", true] }' | socat - "$i"; done diff --git a/.local/bin/podentr b/.local/bin/podentr index 9a8313a..9454b07 100755 --- a/.local/bin/podentr +++ b/.local/bin/podentr @@ -2,6 +2,6 @@ # entr command to run `queueandnotify` when newsboat queue is changed -[ "$(pgrep -x $(basename $0) | wc -l)" -gt 2 ] && exit +[ "$(pgrep -x "$(basename "$0")" | wc -l)" -gt 2 ] && exit -echo ${XDG_DATA_HOME:-$HOME/.local/share}/newsboat/queue | entr -p queueandnotify 2>/dev/null +echo "${XDG_DATA_HOME:-$HOME/.local/share}"/newsboat/queue | entr -p queueandnotify 2>/dev/null diff --git a/.local/bin/qndl b/.local/bin/qndl index f5bd14f..2236c66 100755 --- a/.local/bin/qndl +++ b/.local/bin/qndl @@ -6,7 +6,7 @@ base="$(basename "$1")" notify-send "⏳ Queuing $base..." cmd="$2" [ -z "$cmd" ] && cmd="youtube-dl --add-metadata" -idnum="$(tsp $cmd "$1")" +idnum="$(tsp "$cmd" "$1")" realname="$(echo "$base" | sed "s/?\(source\|dest\).*//;s/%20/ /g")" tsp -D "$idnum" mv "$base" "$realname" tsp -D "$idnum" notify-send "👍 $realname done." diff --git a/.local/bin/rotdir b/.local/bin/rotdir index 7313a42..7d32040 100755 --- a/.local/bin/rotdir +++ b/.local/bin/rotdir @@ -9,4 +9,4 @@ [ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1 base="$(basename "$1")" - ls "$PWD" | awk "BEGIN { lines = \"\"; m = 0; } /^$base$/ { m = 1; } { if (!m) { if (lines) { lines = lines\"\n\"; } lines = lines\"\"\$0; } else { print \$0; } } END { print lines; }" +find "$PWD" | awk "BEGIN { lines = \"\"; m = 0; } /^$base$/ { m = 1; } { if (!m) { if (lines) { lines = lines\"\n\"; } lines = lines\"\"\$0; } else { print \$0; } } END { print lines; }" diff --git a/.local/bin/statusbar/crypto b/.local/bin/statusbar/crypto index bb19fc9..ef025d4 100755 --- a/.local/bin/statusbar/crypto +++ b/.local/bin/statusbar/crypto @@ -28,7 +28,7 @@ printprices() { # Print/format all prices for x in "$dir"/*; do [ -f "$x" ] || break info="$(cut -d';' -f-2 --output-delimiter=' ' "$x")" - printf "%s$%0.2f " $info + printf "%s$%0.2f " "$info" done | sed 's/ $/\n/' } diff --git a/.local/bin/statusbar/help-icon b/.local/bin/statusbar/help-icon index 9c90964..5044324 100755 --- a/.local/bin/statusbar/help-icon +++ b/.local/bin/statusbar/help-icon @@ -3,7 +3,7 @@ # The clickable help menu. Middle click to restart wm. # If dwm is running, use dwm's readme and restart. -ps ax | grep -q "\sdwm$" && +pgrep -f "\sdwm$" && READMEFILE=/usr/local/share/dwm/larbs.mom restartwm() { pkill -HUP dwm ;} || restartwm() { i3 restart ;} diff --git a/.local/bin/statusbar/news b/.local/bin/statusbar/news index b414981..e997597 100755 --- a/.local/bin/statusbar/news +++ b/.local/bin/statusbar/news @@ -14,4 +14,4 @@ case $BLOCK_BUTTON in 6) "$TERMINAL" -e "$EDITOR" "$0" ;; esac - cat /tmp/newsupdate 2>/dev/null || echo "$(newsboat -x print-unread | awk '{ print "📰" $1}' | sed 's/^📰0$//g')$(cat ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/.update 2>/dev/null)" + cat /tmp/newsupdate 2>/dev/null || echo "$(newsboat -x print-unread | awk '{ print "📰" $1}' | sed 's/^📰0$//g')$(cat "${XDG_CONFIG_HOME:-$HOME/.config}"/newsboat/.update 2>/dev/null)" diff --git a/.local/bin/sysact b/.local/bin/sysact index 0a7cdd0..ce925ce 100755 --- a/.local/bin/sysact +++ b/.local/bin/sysact @@ -18,4 +18,4 @@ cmds="\ choice="$(echo "$cmds" | cut -d' ' -f 1 | dmenu)" || exit 1 -`echo "$cmds" | grep "^$choice " | cut -d ' ' -f2-` +echo "$cmds" | grep "^$choice " | cut -d ' ' -f2- From 88dfd0afe9df8b613e292f2e288d9b775735c9b5 Mon Sep 17 00:00:00 2001 From: Hekuran <62762955+narukeh@users.noreply.github.com> Date: Mon, 1 Jun 2020 23:45:47 +0200 Subject: [PATCH 5/6] cleaning (#677) making it a variable since its used 5 times --- .local/bin/statusbar/weather | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.local/bin/statusbar/weather b/.local/bin/statusbar/weather index 9a6c40a..e04bac0 100755 --- a/.local/bin/statusbar/weather +++ b/.local/bin/statusbar/weather @@ -6,17 +6,18 @@ # If we have internet, get a weather report from wttr.in and store it locally. # You could set up a shell alias to view the full file in a pager in the # terminal if desired. This function will only be run once a day when needed. -getforecast() { curl -sf "wttr.in/$LOCATION" > "${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" || exit 1 ;} +weatherreport="${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" +getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1 ;} # Some very particular and terse stream manipulation. We get the maximum # precipication chance and the daily high and low from the downloaded file and # display them with coresponding emojis. -showweather() { printf "%s" "$(sed '16q;d' "${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" | +showweather() { printf "%s" "$(sed '16q;d' "$weatherreport" | grep -wo "[0-9]*%" | sort -rn | sed "s/^/☔/g;1q" | tr -d '\n')" -sed '13q;d' "${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" | grep -o "m\\([-+]\\)*[0-9]\\+" | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " 🥶" $1 "°","🌞" $2 "°"}' ;} +sed '13q;d' "$weatherreport" | grep -o "m\\([-+]\\)*[0-9]\\+" | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " 🥶" $1 "°","🌞" $2 "°"}' ;} case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e less -Srf "${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" ;; + 1) setsid -f "$TERMINAL" -e less -Srf "$weatherreport" ;; 2) getforecast && showweather ;; 3) notify-send "🌈 Weather module" "\- Left click for full forecast. - Middle click to update forecast. @@ -28,7 +29,7 @@ esac # The test if our forcecast is updated to the day. If it isn't download a new # weather report from wttr.in with the above function. -[ "$(stat -c %y "${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || +[ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || getforecast showweather From 0df700f504cedeac1ae354c650ea80b32ab7668c Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Tue, 2 Jun 2020 12:45:26 -0400 Subject: [PATCH 6/6] nettraf --- .local/bin/statusbar/nettraf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.local/bin/statusbar/nettraf b/.local/bin/statusbar/nettraf index fa9eb30..ac43416 100755 --- a/.local/bin/statusbar/nettraf +++ b/.local/bin/statusbar/nettraf @@ -14,12 +14,12 @@ update() { sum=0 for arg; do read -r i < "$arg" - sum=$(( $sum + $i )) + sum=$(( sum + i )) done cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/} [ -f "$cache" ] && read -r old < "$cache" || old=0 printf %d\\n "$sum" > "$cache" - printf %d\\n $(( ($sum - $old) / 1024 )) + printf %d\\n $(( (sum - old) / 1024 )) } rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes)