mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-03-20 01:37:45 +01:00
By changing CF_ICONS variable you can edit icons all across your system.
For example if you want to use material-design-icons-git (AUR) all you
need to do is to change the variable like below:
export CF_ICONS="/home=:/mnt=:android=:bat-charging=:\
bat-discharging=:bat-f=:bat-unknown=:bat=:\
batt=:btc=:cb=📋:clock-00=:clock-01=:clock-02=:\
clock-03=:clock-04=:clock-05=:\
clock-06=:clock-07=:clock-08=:clock-09=:clock-10=:\
clock-11=:clock-12=:cpu=:crypto=:disk=:\
down=:eth=:f-move=:help=:\
hib=:internet=:lan-x=:lan=:lbc=:leave=:lock=:\
mail=:mem=:music=:news=:pause=:pc=:\
pkg-down=:pkg=:q-add=:reboot=:\
rec-cam=:rec-screen=:rec-voice=:renew=:sheets=:\
shutdown=:sync=:temp=:tick-clock=:tick-cloud=:\
time=:tor=:torrent-add=:torrent-seed-x=:torrent-idle=:\
torrent-seed=:up=:usb=:vol-0=:vol-1=:\
vol-2=:vol-m=:vol-x=:vol=:vpn=:weather-h=:\
weather-l=:weather-perc=:weather=:\
wifi-x=:wifi=:🌑=:🌒=:🌓=:🌔=:🌕=:🌖=:🌗=:🌘=:"
55 lines
1.8 KiB
Bash
Executable File
55 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Shows the price for desired cryptocurrencies. Module updates automatically
|
|
# every calendar day, but can also be updated with a middle click.
|
|
|
|
# Currencies should be ;-separated:
|
|
# human-readable name;urlname;icon
|
|
coins="Bitcoin;btc;$(ico btc)
|
|
Etherium;eth;$(ico eth)
|
|
Basic Attention Token;bat;$(ico batt)
|
|
LBC;lbc;$(ico lbc)"
|
|
|
|
# Directory where currency info is stored.
|
|
dir="${XDG_DATA_HOME:-$HOME/.local/share}/crypto-prices"
|
|
|
|
getprices() { # The command to get the desired prices
|
|
printf "%s " "$(ico sync)"; printprices
|
|
{ rm -rf "${dir:?}/*"
|
|
echo "$coins" | while IFS=';' read -r human web icon; do
|
|
val="$(curl -s "rate.sx/1$web")" &&
|
|
echo "$icon;$val;$human" > "$dir/$web"
|
|
done; [ -d "$dir" ] && touch "$dir"
|
|
pkill -RTMIN+13 "${STATUSBAR:-dwmblocks}" ;} &
|
|
exit
|
|
}
|
|
|
|
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"
|
|
done | sed 's/ $/\n/'
|
|
}
|
|
|
|
[ ! -d "$dir" ] && mkdir -p "$dir" && { getprices; exit ;}
|
|
|
|
# If currencies haven't been updated today, try to update them.
|
|
[ "$(stat -c %x "$HOME/.local/share/crypto-prices" | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] &&
|
|
{ ping -q -c 1 example.org >/dev/null 2>&1 && getprices || exit ;}
|
|
|
|
case $BLOCK_BUTTON in
|
|
1) uptime="$(date -d "$(stat -c %x "$dir")" '+%D at %T' | sed "s|$(date '+%D')|Today|")"
|
|
notify-send "Exact prices in USD" "$(awk -F';' '{print $1, $3 ":\n\t$" $2}' "$dir"/*)
|
|
<b>Last updated:</b>
|
|
$uptime" ;;
|
|
2) getprices ;;
|
|
3) notify-send "$(ico crypto) Crypto-currency module" "\- Left click for exact prices.
|
|
- Middle click to update.
|
|
- Shows $(ico sync) if updating prices.
|
|
- Manually add/remove currencies to list in the script." ;;
|
|
6) "$TERMINAL" -e "$EDITOR" "$0" ;;
|
|
esac
|
|
|
|
printprices
|