-
-
Save alexfornuto/f2f6ffa423bd5bc21c5e to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| # | |
| # matrix: matrix-ish display for Bash terminal | |
| # Author: Brett Terpstra 2012 <http://brettterpstra.com> | |
| # Contributors: Lauri Ranta and Carl <http://blog.carlsensei.com/> | |
| # | |
| # A morning project. Could have been better, but I'm learning when to stop. | |
| ### 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 | |
| # A change to prove that the url stays the same if edited. |
bash <(curl -sL https://gist.githubusercontent.com/alexfornuto/f2f6ffa423bd5bc21c5e/raw/matrix.sh)a quick way to execute it without having to have the script on your machine π , for anyone who wanna try it out π
Oh my gawsh someone is still looking at this!
haha yup. it's pretty cool tbh
haha cool you can execute with curl without hosting the file. thanks @MaymoonaAlBolosh.
Nice!!! π₯
Seeing as the PR owner can edit gists (see L76) without the URL changing, I would advice against curling directly into bash. Sure, I'm a swell guy who would never edit this gist to be malicious, but you shouldn't take my word for it.
Even a better one:
bash <(curl -sL https://bruxy.regnet.cz/linux/matrix/matrix.sh)
Even a better one: bash <(curl -sL https://bruxy.regnet.cz/linux/matrix/matrix.sh)
I would trust non-github download locations even less, and would suggest not downloading from them without thorough research of the source first.
Not mine, just here for easy access.