diff options
author | xero <x@xero.nu> | 2014-01-25 20:41:11 -0500 |
---|---|---|
committer | xero <x@xero.nu> | 2014-01-25 20:41:11 -0500 |
commit | eb27b03744dda54146ef1de1d7461ed8f5475736 (patch) | |
tree | 1232d2ac603da6a739ab1d5f92d73da9bb0bec26 /fun/rain | |
parent | 7e892df9b0e32673d5a635aca1ebfb079473a3f2 (diff) | |
download | dotfiles_ascii-eb27b03744dda54146ef1de1d7461ed8f5475736.tar.xz dotfiles_ascii-eb27b03744dda54146ef1de1d7461ed8f5475736.zip |
add README. remove duplicate fun scripts
Diffstat (limited to '')
-rw-r--r-- | fun/rain.sh | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/fun/rain.sh b/fun/rain.sh deleted file mode 100644 index 8a8d8f6..0000000 --- a/fun/rain.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/bash -RAINS=("|" "│" "┃" "┆" "┇" "┊" "┋" "╽" "╿") -COLORS=("\e[37m" "\e[37;1m") -# More from 256 color mode -for i in {244..255}; do - COLORS=("${COLORS[@]}" "\e[38;5;${i}m") -done -NRAINS=${#RAINS[@]} -NCOLORS=${#COLORS[@]} -NUM_RAIN_METADATA=5 - - -sigwinch() { - TERM_WIDTH=$(tput cols) - TERM_HEIGHT=$(tput lines) - STEP_DURATION=0.025 - ((MAX_RAINS = TERM_WIDTH * TERM_HEIGHT / 4)) - ((MAX_RAIN_LENGTH = TERM_HEIGHT < 10 ? 1 : TERM_HEIGHT / 10)) - # In percentage - ((NEW_RAIN_ODD = TERM_HEIGHT > 50 ? 100 : TERM_HEIGHT * 2)) - ((NEW_RAIN_ODD = NEW_RAIN_ODD * 75 / 100)) - ((FALLING_ODD = TERM_HEIGHT > 25 ? 100 : TERM_HEIGHT * 4)) - ((FALLING_ODD = FALLING_ODD * 90 / 100)) - } - -do_exit() { - echo -ne "\e[${TERM_HEIGHT};1H\e[0K" - - # Show cursor and echo stdin - echo -ne "\e[?25h" - stty echo - exit 0 - } - -do_render() { - # Clean screen first - for ((idx = 0; idx < num_rains * NUM_RAIN_METADATA; idx += NUM_RAIN_METADATA)); do - X=${rains[idx]} - Y=${rains[idx + 1]} - LENGTH=${rains[idx + 4]} - for ((y = Y; y < Y + LENGTH; y++)); do - (( y < 1 || y > TERM_HEIGHT )) && continue - echo -ne "\e[${y};${X}H " - done - done - - for ((idx = 0; idx < num_rains * NUM_RAIN_METADATA; idx += NUM_RAIN_METADATA)); do - if ((100 * RANDOM / 32768 < FALLING_ODD)); then - # Falling - if ((++rains[idx + 1] > TERM_HEIGHT)); then - # Out of screen, bye sweet <3 - rains=("${rains[@]:0:idx}" - "${rains[@]:idx+NUM_RAIN_METADATA:num_rains*NUM_RAIN_METADATA}") - ((num_rains--)) - continue - fi - fi - X=${rains[idx]} - Y=${rains[idx + 1]} - RAIN=${rains[idx + 2]} - COLOR=${rains[idx + 3]} - LENGTH=${rains[idx + 4]} - for ((y = Y; y < Y + LENGTH; y++)); do - (( y < 1 || y > TERM_HEIGHT )) && continue - echo -ne "\e[${y};${X}H${COLOR}${RAIN}" - done - done - } - -trap do_exit TERM INT -trap sigwinch WINCH -# No echo stdin and hide the cursor -stty -echo -echo -ne "\e[?25l" - -echo -ne "\e[2J" -rains=() -sigwinch -while :; do - read -n 1 -t $STEP_DURATION ch - case "$ch" in - q|Q) - do_exit - ;; - esac - - if ((num_rains < MAX_RAINS)) && ((100 * RANDOM / 32768 < NEW_RAIN_ODD)); then - # Need new |, 1-based - RAIN="${RAINS[NRAINS * RANDOM / 32768]}" - COLOR="${COLORS[NCOLORS * RANDOM / 32768]}" - LENGTH=$((MAX_RAIN_LENGTH * RANDOM / 32768 + 1)) - X=$((TERM_WIDTH * RANDOM / 32768 + 1)) - Y=$((1 - LENGTH)) - rains=("${rains[@]}" "$X" "$Y" "$RAIN" "$COLOR" "$LENGTH") - ((num_rains++)) - fi - - # Let rain fall! - do_render -done
\ No newline at end of file |