commit c4d6f4c027bb7e81093ec7c588f027de568e6bb6
parent 87b0754319a00648cd20b7f013cc821868f6d25e
Author: Luke Smith <luke@lukesmith.xyz>
Date: Tue, 2 Jun 2020 12:46:47 -0400
Merge branch 'chambln-refactor'
Diffstat:
18 files changed, 47 insertions(+), 40 deletions(-)
diff --git 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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/nettraf b/.local/bin/statusbar/nettraf
@@ -4,19 +4,25 @@
# 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"
-[ -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"
diff --git 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/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
diff --git 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-