-
Star
(141)
You must be signed in to star a gist -
Fork
(23)
You must be signed in to fork a gist
-
-
Save sontek/1505483 to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| LINES=$(tput lines) | |
| COLUMNS=$(tput cols) | |
| declare -A snowflakes | |
| declare -A lastflakes | |
| clear | |
| function move_flake() { | |
| i="$1" | |
| if [ "${snowflakes[$i]}" = "" ] || [ "${snowflakes[$i]}" = "$LINES" ]; then | |
| snowflakes[$i]=0 | |
| else | |
| if [ "${lastflakes[$i]}" != "" ]; then | |
| printf "\033[%s;%sH \033[1;1H " ${lastflakes[$i]} $i | |
| fi | |
| fi | |
| printf "\033[%s;%sH\u274$[($RANDOM%6)+3]\033[1;1H" ${snowflakes[$i]} $i | |
| lastflakes[$i]=${snowflakes[$i]} | |
| snowflakes[$i]=$((${snowflakes[$i]}+1)) | |
| } | |
| while : | |
| do | |
| i=$(($RANDOM % $COLUMNS)) | |
| move_flake $i | |
| for x in "${!lastflakes[@]}" | |
| do | |
| move_flake "$x" | |
| done | |
| sleep 0.1 | |
| done |
I think people are finding it through a python implementation that got to hackernews front page https://news.ycombinator.com/item?id=38652339
Oh thats also yours hahaha @sontek
For people on MacOS that the new version isn't working on, it's due to the bash version shipping with macOS being too old to support unicode escape.
If you have a newer version of bash installed in homebrew you can change the bang at the top e.g. #!/opt/homebrew/bin/bash (or use the author's python version)
That’s a fun idea it instantly reminds me of a snow day predictor in a playful way. Turning your terminal into a snowy scene makes you feel like a snow day is coming, even if it’s just visual. It’s a cool mix of tech and seasonal vibes that keeps things light, almost like seeing cheerful snow day quotes that put you in the right mood before heading outside. Sometimes little touches like that make coding way more enjoyable.




Wow, interesting that others are finding this today. I've done a lot of work on this over the years and its currently packaged over here:
https://github.com/sontek/snowmachine