misc-scripts/avalifetch

79 lines
2.5 KiB
Plaintext
Raw Normal View History

2023-05-03 17:29:22 -05:00
#!/bin/sh
set -euf
COLORS="178 245 36 163 239 15"
ASCIIART="$XDG_CONFIG_HOME/neofetch/avali"
GAP=2
system_info() {
# use the function "iprint" for everything
# use $(col x) to get an arbitrary 0-255 color
# use $(bold) to bold, $(res) to reset formatting
iprint "$(col 10)$(bold)${USER}$(res)$(col 15)@$(bold)$(col 10)$(uname -n)"
iprint "$(col 7)$(bold)--------------"
iprint "$(col 15)$(bold)OS:$(res)$(col 10) Void Linux"
iprint "$(col 15)$(bold)Kernel:$(res)$(col 11) $(uname -r)"
iprint "$(col 15)$(bold)Shell:$(res)$(col 13) ${SHELL##*/}"
iprint "$(col 15)$(bold)WM:$(res)$(col 7) awesome"
iprint "$(col 15)$(bold)Terminal:$(res)$(col 7) urxvt"
# iprint "$(col 15)$(bold)CPU:$(res)$(col 7) $(cat /proc/cpuinfo | grep -i '^model name' | sort -u | sed -r 's/^model name\t: (.+)/\1/')"
iprint "$(col 15)$(bold)Packages:$(res)$(col 7) $(xbps-query -l | rg -c .)"
iprint "$(col 15)$(bold)Uptime:$(res)$(col 7) $(uptime -p | cut -d ' ' -f 2-)"
iprint "$(col 15)$(bold)Song:$(res)$(col 7) $(mpc -f '%artist% - %title%' current)"
iprint "$(col 7)$(bold)--------------"
iprint ""
iprint "$(col 0)███$(col 1)███$(col 2)███$(col 3)███$(col 4)███$(col 5)███$(col 6)███$(col 7)███"
iprint "$(col 8)███$(col 9)███$(col 10)███$(col 11)███$(col 12)███$(col 13)███$(col 14)███$(col 15)███"
}
# <-+-+-+-+-+- CONFIGURATION ENDS -+-+-+-+-+-> #
colres='\033[m'
process_colors() {
2024-02-04 19:16:30 -06:00
colindex=1
for c; do
colesc="$(printf '%b\033[38;5;%sm' "$colres" "$c")"
eval "c$colindex="'$colesc'
colindex=$((colindex + 1))
done
2023-05-03 17:29:22 -05:00
}
process_ascii() {
# get maximum line length
maxlen="$(sed -e 's/\${c[1-6]}//g' "$ASCIIART" | wc -L)"
linecount="$(grep -c '^' "$ASCIIART")"
# actually do color replacement
final_ascii="$(sed \
-e "s/\${c1}/$c1/g" \
-e "s/\${c2}/$c2/g" \
-e "s/\${c3}/$c3/g" \
-e "s/\${c4}/$c4/g" \
-e "s/\${c5}/$c5/g" \
-e "s/\${c6}/$c6/g" \
"$ASCIIART")"
info_padding=$((GAP+maxlen))
}
col() { printf "\033[38;5;%sm" "$1"; }
bold() { printf '\033[1m'; }
res() { printf '\033[0m'; }
# reset formatting, move to padding, print line
iprint() { printf "%b%s\n" "\033[0m\033[${info_padding}C" "$1"; }
print_all() {
2024-02-04 19:16:30 -06:00
printf '%s' '[?7l' # disable line wrapping
2023-05-03 17:29:22 -05:00
printf '%s\n' "$final_ascii"
printf '\0337 \033[?25l' # save cursor pos & hide it
printf "\033[%sF" "$linecount" #
system_info
2024-02-04 19:16:30 -06:00
printf '%s' '[?7h' # enable line wrapping
2023-05-03 17:29:22 -05:00
printf '\0338\n\033[?25h' # restore cursor pos & unhide it
}
2024-02-04 19:16:30 -06:00
process_colors $COLORS
2023-05-03 17:29:22 -05:00
process_ascii
print_all