mirror of https://github.com/rwxrob/dot
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.8 KiB
Plaintext
70 lines
1.8 KiB
Plaintext
3 years ago
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Courtesy of @bvierra and company (long ago, pre-cPanel)
|
||
|
|
||
|
### Customization:
|
||
|
blue="\033[0;34m"
|
||
|
brightblue="\033[1;34m"
|
||
|
cyan="\033[0;36m"
|
||
|
brightcyan="\033[1;36m"
|
||
|
green="\033[0;32m"
|
||
|
brightgreen="\033[1;32m"
|
||
|
red="\033[0;31m"
|
||
|
brightred="\033[1;31m"
|
||
|
white="\033[1;37m"
|
||
|
black="\033[0;30m"
|
||
|
grey="\033[0;37m"
|
||
|
darkgrey="\033[1;30m"
|
||
|
# Choose the colors that will be used from the above list
|
||
|
# space-separated list
|
||
|
# e.g. `colors=($green $brightgreen $darkgrey $white)`
|
||
|
colors=($green $brightgreen)
|
||
|
### End customization
|
||
|
|
||
|
### Do not edit below this line
|
||
|
spacing=${1:-100} # the likelihood of a character being left in place
|
||
|
scroll=${2:-0} # 0 for static, positive integer determines scroll speed
|
||
|
screenlines=$(expr `tput lines` - 1 + $scroll)
|
||
|
screencols=$(expr `tput cols` / 2 - 1)
|
||
|
|
||
|
# chars=(a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ^)
|
||
|
# charset via Carl:
|
||
|
chars=(ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン)
|
||
|
|
||
|
count=${#chars[@]}
|
||
|
colorcount=${#colors[@]}
|
||
|
|
||
|
trap "tput sgr0; clear; exit" SIGTERM SIGINT
|
||
|
|
||
|
if [[ $1 =~ '-h' ]]; then
|
||
|
echo "Display a Matrix(ish) screen in the terminal"
|
||
|
echo "Usage: matrix [SPACING [SCROLL]]"
|
||
|
echo "Example: matrix 100 0"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
|
||
|
clear
|
||
|
tput cup 0 0
|
||
|
while :
|
||
|
do for i in $(eval echo {1..$screenlines})
|
||
|
do for i in $(eval echo {1..$screencols})
|
||
|
do rand=$(($RANDOM%$spacing))
|
||
|
case $rand in
|
||
|
0)
|
||
|
printf "${colors[$RANDOM%$colorcount]}${chars[$RANDOM%$count]} "
|
||
|
;;
|
||
|
1)
|
||
|
printf " "
|
||
|
;;
|
||
|
*)
|
||
|
printf "\033[2C"
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
printf "\n"
|
||
|
|
||
|
# sleep .005
|
||
|
done
|
||
|
tput cup 0 0
|
||
|
done
|