diff options
author | ache <ache@ache.one> | 2023-12-02 22:26:02 +0100 |
---|---|---|
committer | ache <ache@ache.one> | 2023-12-02 22:26:02 +0100 |
commit | 0bf415257ba71e33134fe3d18f04799cf5c8dbda (patch) | |
tree | 3cc0a150472be8870c63c304c4744c96967ff263 | |
parent | Updating PKGBUILD (diff) |
Revert "Animated scripts cause serious issues with cpu/mem leaks when run in .bashrc/zshrc."master
This reverts commit 2c93d923099db7ac5d280ddb1934d11bb9b2f01d.
-rwxr-xr-x | colorscripts/bomber | 99 | ||||
-rwxr-xr-x | colorscripts/pipes1 | 185 | ||||
-rwxr-xr-x | colorscripts/pipes2 | 52 | ||||
-rwxr-xr-x | colorscripts/pipes2-slim | 60 |
4 files changed, 396 insertions, 0 deletions
diff --git a/colorscripts/bomber b/colorscripts/bomber new file mode 100755 index 0000000..3c632ed --- /dev/null +++ b/colorscripts/bomber @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +#by necro +e="\e[0m" +bk="\e[38;2;1;1;1m" +bl="\e[48;2;101;166;232m" +wh="\e[48;2;251;253;252m" +pi="\e[48;2;229;139;121m" +while true; do +clear +echo -e " + $bk██████████ $bk████$e + $bk████$wh ████$e$bk ██$bl ██$e + $bk██$wh ██████$bl $bk██$e + $bk██$pi $wh ██$e$bk ████$e + $bk██$pi ██ $wh ██$e + $bk██$pi ██ $wh ██$e + $bk██$pi ██ $wh ██$e + $bk██$pi $wh ██$e + $bk████$wh ██ ██$e + $bk████████$wh ████████$e + $bk██$bl ██$wh ██$bl ██$e + $bk██$bl ██$wh ██$bl ██$e + $bk██$wh ██$bl ██████$e + $bk██$bl ██$bl ██$bl ██$e + $bk████████████████$e + $bk██$wh ██$e + $bk██████████████$e + $bk██$bl ██$e + $bk████████████████$e" +sleep 0.1 +clear +echo -e " + $bk██████████ ████$e + $bk████$wh ██████$bl ██$e + $bk██$wh ██$bl ██$e + $bk██$pi $wh ████$e + $bk████$pi ██ $wh ██$e + $bk████$pi ██ $wh ██$e + $bk████$pi ██ $wh ██$e + $bk██$pi $wh ██$e + $bk████$wh ████ ██$e + $bk██$bl ████$wh ██████████$e + $bk██$bl ██$wh ██$bl ██$wh ██$e + $bk████$wh ██$bl ██$wh ██$e + $bk████$wh ████████████████$e + $bk██$bl ██████ ████$bl ██$e + $bk████$wh $bl $wh ██████$e + $bk██$bl ██$wh ████ ██$e + $bk██$bl ████████$e$bk ██$wh ██$bl ██$e + $bk████ ████$bl ██$e + $bk██$bl ██$e + $bk████$e" +sleep 0.3 +clear +echo -e " + $bk██████████ $bk████$e + $bk████$wh ████$e$bk ██$bl ██$e + $bk██$wh ██████$bl $bk██$e + $bk██$pi $wh ██$e$bk ████$e + $bk██$pi ██ $wh ██$e + $bk██$pi ██ $wh ██$e + $bk██$pi ██ $wh ██$e + $bk██$pi $wh ██$e + $bk████$wh ██ ██$e + $bk████████$wh ████████$e + $bk██$bl ██$wh ██$bl ██$e + $bk██$bl ██$wh ██$bl ██$e + $bk██$wh ██$bl ██████$e + $bk██$bl ██$bl ██$bl ██$e + $bk████████████████$e + $bk██$wh ██$e + $bk██████████████$e + $bk██$bl ██$e + $bk████████████████$e" +sleep 0.1 +clear +echo -e " + $bk██████████ ████ + $bk████$wh ████$e $bk██$bl ██$e + $bk██$wh ████$bl ██$e + $bk██$pi $wh ██████████$e + $bk██$pi ██ $wh ██$e + $bk██$pi ██ $wh ██$e + $bk██$pi ██ $wh ██$e + $bk██$pi $wh ██$e + $bk████████$wh ██████ ██$e + $bk██$bl ██████████$wh ████$e + $bk██$bl ████ ██$wh ██$e + $bk██$wh ██$bl ██$wh ████$e + $bk██$wh ██ ███████ ██$bl ██$e + $bk████$bl ██ ██$e + $bk████$bl ████$e + $bk██████$wh $bl ██████$wh ████$e + $bk██$bl ██$wh ██$e$bk ██$wh ██$bl ██$e + $bk██$bl ██$e$bk ████$bl ██$e + $bk████$e$bk ██$bl ██$e + $bk████" +sleep 0.3 +done diff --git a/colorscripts/pipes1 b/colorscripts/pipes1 new file mode 100755 index 0000000..70a751e --- /dev/null +++ b/colorscripts/pipes1 @@ -0,0 +1,185 @@ +#!/usr/bin/env bash +# Animated pipes.sh terminal screensaver at an angle. +# Copyright (C) 2013 by Yu-Jie Lin +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +# Blog: http://blog.yjl.im/2013/07/pipesxsh-animated-pipessh-terminal.html +# Gist: https://gist.github.com/livibetter/5974905 +# Screenshot: https://lh3.googleusercontent.com/-UaCta_DtgrQ/Ud6dqIgcfmI/AAAAAAAAE_8/VXPac0OpULU/s800/pipesX.sh.gif +# Screenshot: https://lh6.googleusercontent.com/-yBety-A8J_c/Ud6dk10sjBI/AAAAAAAAE_0/S98aRRV8t0s/s800/pipesX.sh%25202013-07-11--19%253A51%253A05.png +# Screencast: http://youtu.be/dITTlFPYVPA + +W=$(tput cols) H=$(tput lines) +# maximal random value + 1 +M=32768 + +SETS=('╱╲' '/\') +COLORS=(31 32 33 34 35 36 37) + +# default values +N=1 +T=0 +I=0.05 +P=25 +R=$((W * H / 4)) + +HELP="Usage: $(basename $0) [OPTIONS] +Animated pipes.sh terminal screensaver at an angle. +Options: + -n [1-] number of pipes. (Default: $N) + -t [0-$((${#SETS[@]} - 1))] type of pipes. (Default: $T) + -i [float] piping interval or maze generation interval. (Default: $I) + -P [0-100] probability of a turning pipe or of \\ in maze generation. (Default: $P) + -r [LIMIT] reset after x characters, 0 if no limit. (Default: $R) + -R random starting point. + -C no color. + -X maze generation. + -h this help message. +" + +while getopts "n:t:i:P:r:RCXh" arg; do + case $arg in + n) + ((N = OPTARG > 0 ? OPTARG : N)) + ;; + t) + ((T = (OPTARG >= 0 && OPTARG < ${#SETS[@]}) ? OPTARG : T)) + ;; + i) + I=$OPTARG + ;; + P) + ((P = (OPTARG >= 0 && OPTARG <= 100) ? OPTARG : P)) + ;; + r) + ((R = OPTARG >= 0 ? OPTARG : R)) + ;; + R) + RNDSTART=1 + ;; + C) + NOCOLOR=1 + ;; + X) + MAZE=1 + ;; + h) + echo -e "$HELP" + exit 0 + ;; + esac +done + +do_exit() { + # Show cursor and echo stdin + echo -ne "\e[?25h" + stty echo + clear + exit 0 + } +trap do_exit INT TERM + +# No echo stdin and hide the cursor +stty -echo +echo -ne "\e[?25l" + +# maze geneartion +while [[ $MAZE ]] && clear; do + [[ $NOCOLOR ]] || echo -ne "\e[1;${COLORS[${#COLORS[@]} * RANDOM / M]}m" + for ((i = 0; i < W * H; i++ )); do + echo -ne ${SETS[T]:100 * RANDOM / M < P:1} + done + read -t $I -n 1 && [[ $REPLY =~ q|Q ]] && do_exit +done + +# initialze values +for ((n = 0; n < N; n++)); do + ((X[n] = RNDSTART ? (W + 2) * RANDOM / M : W / 2)) + ((Y[n] = RNDSTART ? (H + 2) * RANDOM / M : H / 2)) + D[n]=$((4 * RANDOM / M)) + C[n]=${COLORS[${#COLORS[@]} * RANDOM / M]} +done + +clear +while :; do + for ((n = 0; n < N; n++, CC = 0)); do + x=${X[n]} y=${Y[n]} + d=${D[n]} c=${C[n]} + + # calculate new direction `d` + # 1 0 + # \/ 4 directions 0 to 3 + # /\ + # 2 3 + # valid directions: d: dd', d' is the new direction + # d + # 0: / 00 \ 01 03 + # / / /\ + # 1: / 10 \ 11 12 + # \ \ /\ + # 2: \/ 21 / 22 / 23 + # / \ + # 3: \/ 30 \ 32 \ 33 + # / \ + ((d = (100 * RANDOM / M) < P ? ((d + 1) + 2 * (RANDOM % 2)) % 4 : d)) + ((e = (d + 1) % 4)) + + # calculate new position + # d' x' y' + # 0: x+1 y-1 + # 1: x-1 y-1 + # 2: x-1 y+1 + # 3: x+1 y+1 + ((xn = e < 2 ? x + 1 : x - 1)) + ((yn = d < 2 ? y - 1 : y + 1)) + + # adjust position and change color? + ((d < 2 && y == 0)) && ((yn--, CC=1)) + ((e > 1 && x == 0)) && ((xn--, CC=1)) + ((d > 1 && y == H)) && ((yn++, CC=1)) + ((e < 2 && x == W)) && ((xn++, CC=1)) + ((CC)) && c=${COLORS[${#COLORS[@]} * RANDOM / M]} + + # warp pipe + ((xn = (xn + W + 1) % (W + 1))) + ((yn = (yn + H + 1) % (H + 1))) + + # calculate position in terminal + # d' xt yt + # 0: x' y'+1 + # 1: x'+1 y'+1 + # 2: x'+1 y' + # 3: x' y' + ((xt = e < 2 ? xn : xn + 1)) + ((yt = d < 2 ? yn + 1 : yn)) + + echo -ne "\e[${yt};${xt}H" + [[ $NOCOLOR ]] || echo -ne "\e[1;${c}m" + echo -n "${SETS[T]:d%2:1}" + + X[n]=$xn Y[n]=$yn + D[n]=$d C[n]=$c + done + read -t $I -n 1 && [[ $REPLY =~ q|Q ]] && do_exit + ((R)) && ((r += N, r >= R)) && r=0 && clear +done + +do_exit + diff --git a/colorscripts/pipes2 b/colorscripts/pipes2 new file mode 100755 index 0000000..c658f37 --- /dev/null +++ b/colorscripts/pipes2 @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +declare -i f=75 s=13 r=2000 t=0 c=1 n=0 l=0 +declare -ir w=$(tput cols) h=$(tput lines) +declare -i x=$((w/2)) y=$((h/2)) +declare -ar v=( [00]="\x83" [01]="\x8f" [03]="\x93" + [10]="\x9b" [11]="\x81" [12]="\x93" + [21]="\x97" [22]="\x83" [23]="\x9b" + [30]="\x97" [32]="\x8f" [33]="\x81" ) + +OPTIND=1 +while getopts "f:s:r:h" arg; do +case $arg in + f) ((f=($OPTARG>19 && $OPTARG<101)?$OPTARG:$f));; + s) ((s=($OPTARG>4 && $OPTARG<16 )?$OPTARG:$s));; + r) ((r=($OPTARG>0)?$OPTARG:$r));; + h) echo -e "Usage: pipes [OPTION]..." + echo -e "Animated pipes terminal screensaver.\n" + echo -e " -f [20-100]\tframerate (D=75)." + echo -e " -s [5-15]\tprobability of a straight fitting (D=13)." + echo -e " -r LIMIT\treset after x characters (D=2000)." + echo -e " -h\t\thelp (this screen).\n" + exit 0;; + esac +done + +tput smcup +tput reset +tput civis +while ! read -t0.0$((1000/$f)) -n1; do + # New position: + (($l%2)) && ((x+=($l==1)?1:-1)) + ((!($l%2))) && ((y+=($l==2)?1:-1)) + + # Loop on edges (change color on loop): + ((c=($x>$w || $x<0 || $y>$h || $y<0)?($RANDOM%7-1):$c)) + ((x=($x>$w)?0:(($x<0)?$w:$x))) + ((y=($y>$h)?0:(($y<0)?$h:$y))) + + # New random direction: + ((n=$RANDOM%$s-1)) + ((n=($n>1||$n==0)?$l:$l+$n)) + ((n=($n<0)?3:$n%4)) + + # Print: + tput cup $y $x + echo -ne "\033[1;3${c}m\xe2\x94${v[$l$n]}" + (($t>$r)) && tput reset && tput civis && t=0 || ((t++)) + l=$n +done +tput rmcup + diff --git a/colorscripts/pipes2-slim b/colorscripts/pipes2-slim new file mode 100755 index 0000000..7b26506 --- /dev/null +++ b/colorscripts/pipes2-slim @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +declare -i f=75 s=13 r=2000 t=0 c=1 n=0 l=0 +declare -ir w=$(tput cols) h=$(tput lines) +declare -i x=$((w/2)) y=$((h/2)) + +declare -ar v=( [00]="\x82" [01]="\x8c" [03]="\x90" #### + [10]="\x98" [11]="\x80" [12]="\x90" # Normal UTF-8 box characters. + [21]="\x94" [22]="\x82" [23]="\x98" # (These are the default for they are supported almost everywhere.) + [30]="\x94" [32]="\x8c" [33]="\x80" ) #### + +# declare -ar v=( [00]="\x83" [01]="\x8f" [03]="\x93" #### +# [10]="\x9b" [11]="\x81" [12]="\x93" # Heavy UTF-8 box characters. +# [21]="\x97" [22]="\x83" [23]="\x9b" # (Uncomment only if your terminal supports it) +# [30]="\x97" [32]="\x8f" [33]="\x81" ) #### + +OPTIND=1 +while getopts "f:s:r:h" arg; do + case $arg in + f) ((f=($OPTARG>19 && $OPTARG<101)?$OPTARG:$f));; + s) ((s=($OPTARG>4 && $OPTARG<16 )?$OPTARG:$s));; + r) ((r=($OPTARG>0)?$OPTARG:$r));; + h) echo -e "Usage: pipes [OPTION]..." + echo -e "Animated pipes terminal screensaver.\n" + echo -e " -f [20-100]\tframerate (D=75)." + echo -e " -s [5-15]\tprobability of a straight fitting (D=13)." + echo -e " -r LIMIT\treset after x characters (D=2000)." + echo -e " -h\t\thelp (this screen).\n" + exit 0;; + esac + done + +tput smcup +tput reset +tput civis + +trap "tput rmcup; tput reset; exit" SIGINT + +while true; do + # New position: + (($l%2)) && ((x+=($l==1)?1:-1)) + ((!($l%2))) && ((y+=($l==2)?1:-1)) + + # Loop on edges (change color on loop): + ((c=($x>$w || $x<0 || $y>$h || $y<0)?($RANDOM%7):$c)) + ((x=($x>$w)?0:(($x<0)?$w:$x))) + ((y=($y>$h)?0:(($y<0)?$h:$y))) + + # New random direction: + ((n=$RANDOM%$s-1)) + ((n=($n>1||$n==0)?$l:$l+$n)) + ((n=($n<0)?3:$n%4)) + + # Print: + tput cup $y $x + printf "\033[1;3${c}m\xe2\x94${v[$l$n]}" + (($t>$r)) && tput reset && tput civis && t=0 || ((t++)) + l=$n + sleep $(echo "scale=5;1/$f"|bc) +done |