.motd/motd.sh

78 lines
2.8 KiB
Bash
Raw Normal View History

2021-07-16 00:28:37 +02:00
# Fancy waifu motd
2021-07-29 22:08:09 +02:00
MOTDPATH="/home/belar/.motd" # path to motd folder
2021-07-24 12:02:25 +02:00
CACHEFILE="/tmp/waifu.cache" # to cache waifu state
2021-07-16 03:25:59 +02:00
RESOLUTION=256 # resolution of waifu
2021-07-16 02:55:53 +02:00
CENTER=true # center motd?
2021-07-29 22:08:09 +02:00
LOLCAT=false # use lolcat? (start delay)
2021-07-16 02:55:53 +02:00
UNAMEARG="-sr" # uname arguments
UPTIMEARG="--pretty" # uptime arguments
2021-07-16 03:25:59 +02:00
tput_cols=$(/usr/bin/tput cols) # terminal columns
MINTERMWIDTH=200 # minimal width of term, to display motd
WAIFUS=$(($(ls $MOTDPATH/waifus/*.256.png | wc -w) - 1)) # count of waifus
2021-07-16 02:55:53 +02:00
2021-07-24 12:55:40 +02:00
function output() {
2021-07-16 02:55:53 +02:00
val=0
if [ $1 == "true" ]; then val=$(($val + 1)); fi
if [ $2 == "true" ]; then val=$(($val + 2)); fi
if [ -f "/usr/games/lolcat" ]; then lx="/usr/games/lolcat"; else lx="/usr/bin/lolcat"; fi
case "$val" in
0)
2021-07-30 18:07:27 +02:00
/bin/cat $MOTDPATH/motd
2021-07-16 02:55:53 +02:00
uname $UNAMEARG
uptime $UPTIMEARG
;;
1)
2021-07-30 18:07:27 +02:00
/bin/cat $MOTDPATH/motd | $lx
2021-07-16 02:55:53 +02:00
uname $UNAMEARG | $lx
uptime $UPTIMEARG | $lx
;;
2)
2021-07-30 18:07:27 +02:00
/bin/cat $MOTDPATH/motd | awk '{ z = '$tput_cols' - length; y = int(z / 2); x = z - y; printf "%*s%s%*s\n", x, "", $0, y, ""; }'
2021-07-16 03:25:59 +02:00
uname $UNAMEARG | awk '{ z = '$tput_cols' - length; y = int(z / 2); x = z - y; printf "%*s%s%*s\n", x, "", $0, y, ""; }'
uptime $UPTIMEARG | awk '{ z = '$tput_cols' - length; y = int(z / 2); x = z - y; printf "%*s%s%*s\n", x, "", $0, y, ""; }'
2021-07-16 02:55:53 +02:00
;;
3)
2021-07-24 12:01:00 +02:00
/bin/cat $MOTDPATH/motd | awk '{ z = '$tput_cols' - length; y = int(z / 2); x = z - y; printf "%*s%s%*s\n", x, "", $0, y, ""; }' | $lx
2021-07-16 03:25:59 +02:00
uname $UNAMEARG | awk '{ z = '$tput_cols' - length; y = int(z / 2); x = z - y; printf "%*s%s%*s\n", x, "", $0, y, ""; }' | $lx
uptime $UPTIMEARG | awk '{ z = '$tput_cols' - length; y = int(z / 2); x = z - y; printf "%*s%s%*s\n", x, "", $0, y, ""; }' | $lx
2021-07-16 02:55:53 +02:00
;;
esac
}
2021-07-16 00:28:37 +02:00
2021-07-29 22:08:09 +02:00
# if [ $tput_cols -gt $MINTERMWIDTH ]
# then
2021-07-16 00:28:37 +02:00
if [ $TERM == "xterm-kitty" ]
then
if [ $((0 + RANDOM % 2)) -eq 0 ]
then
if [ -f "$CACHEFILE" ]
then
WAIFU=$(/bin/cat $CACHEFILE)
else
touch $CACHEFILE
echo 0 > $CACHEFILE
WAIFU=$((0 + RANDOM % $WAIFUS))
fi
if [ $WAIFU -gt $WAIFUS ]
then
echo 0 > $CACHEFILE
WAIFU=$((0 + RANDOM % $WAIFUS))
else
2021-07-16 02:55:53 +02:00
echo $(($WAIFU + 1)) > $CACHEFILE
2021-07-16 00:28:37 +02:00
fi
2021-07-16 03:25:59 +02:00
if $CENTER; then kitty +kitten icat "$MOTDPATH/waifus/waifu-$WAIFU.$RESOLUTION.png"; else kitty +kitten icat --align left "$MOTDPATH/waifus/waifu-$WAIFU.$RESOLUTION.png"; fi
2021-07-16 00:28:37 +02:00
else
2021-07-16 03:25:59 +02:00
if $CENTER; then kitty +kitten icat "$MOTDPATH/waifus/waifu-$((0 + RANDOM % $WAIFUS)).$RESOLUTION.png"; else kitty +kitten icat --align left "$MOTDPATH/waifus/waifu-$((0 + RANDOM % $WAIFUS)).$RESOLUTION.png"; fi
2021-07-16 00:28:37 +02:00
fi
fi
2021-07-16 02:55:53 +02:00
output $LOLCAT $CENTER
2021-07-29 22:08:09 +02:00
# fi
2021-07-16 02:55:53 +02:00