Unos pequeños trucos con el cursor en tu terminal con estos scripts

Como divertimento vamos a ver unos «simples» scripts para nuestra terminal de GNU/Linux que mostrarán unos curiosos movimientos del cursor en la pantalla

Imagen: Ondiz Zárraga

Por estas latitudes continuamos en verano y con calor, apetece relajarse y disfrutar. También con nuestro sistema GNU/Linux apetece «frikear» un poco.

En esta ocasión os traigo unos cuantos scripts en Bash, que hacen que nuestra terminal se comporte de manera extraña y tengamos un cursor que no pare de rebotar en la pantalla, otro que además lo hace a todo color, ver matrix en la terminal o incluso que nieve…

Todos estos scripts los he cogido prestados de la web climagic, y que estos y mucho más material lo puedes encontrar en este enlace:

Abre una terminal con Bash como Shell (si como yo usas Fish, hay un par de scripts que los he «traducido» para que funcionen en esta shell), maximízala para que se vea grande y copia y pega los scripts que se detallan:

Un cursor que no para de rebotar

En Bash ejecuta el siguiente script:

x=1;y=1;xd=1;yd=1;while true;do if [[ $x == $LINES || $x == 0 ]]; then xd=$(( $xd *-1 )) ; fi ; if [[ $y == $COLUMNS || $y == 0 ]]; then yd=$(( $yd * -1 )) ; fi ; x=$(( $x + $xd )); y=$(( $y + $yd )); printf "\33[%s;%sH" $x $y; sleep 0.02 ;done 

Como yo uso la shell Fish, he traducido el script para que funcione en esta Shell. Si como yo usas Fish, copia y pega lo siguiente:

set x 1 ; set y 1; set xd 1; set yd 1; while true; if test $x -eq $LINES; or test $x -eq 0; set xd $(math $xd \* -1 ); end; if test $y -eq $COLUMNS; or test $y -eq 0;set yd $(math $yd \* -1 ); end;set x $(math $x + $xd );set y $(math $y + $yd );printf "\33[%s;%sH" $x $y;sleep 0.02;end

Cursor rebotando a todo color dejando una estela

Una pequeña variante del anterior, ahora el cursor por donde pasa deja una estela multicolor. En Bash copia y pega lo siguiente:

a=1;x=1;y=1;xd=1;yd=1;while true;do if [[ $x == $LINES || $x == 0 ]]; then xd=$(( $xd *-1 )) ; fi ; if [[ $y == $COLUMNS || $y == 0 ]]; then yd=$(( $yd * -1 )) ; fi ; x=$(( $x + $xd )); y=$(( $y + $yd )); printf "\33[%s;%sH\33[48;5;%sm \33[0m" $x $y $(($a%199+16)) ;a=$(( $a + 1 )) ; sleep 0.001 ;done 

También este script lo he traducido para Fish. Si usas Fish copia y pega lo siguiente:

set a 1;set x 1;set y 1;set xd 1;set yd 1;while true;if test $x -eq $LINES;or test $x -eq 0;set xd $(math $xd \*-1 );end;if test $y -eq $COLUMNS;or test $y -eq 0;set yd $(math $yd \* -1 );end;set x $(math $x + $xd );set y $(math $y + $yd );printf "\33[%s;%sH\33[48;5;%sm \33[0m" $x $y $(math $a%199+16);set a $(math $a + 1 );sleep 0.001;end 

Salvapantallas para la terminal

Crea un patrón de colores a pantalla completa. En bash, copia y pega lo siguiente:

j=0;a=1;x=1;y=1;xd=1;yd=1;while true;do for i in {1..2000} ; do if [[ $x == $LINES || $x == 0 ]]; then xd=$(( $xd *-1 )) ; fi ; if [[ $y == $COLUMNS || $y == 0 ]]; then yd=$(( $yd * -1 )) ; fi ; x=$(( $x + $xd )); y=$(( $y + $yd )); printf "\33[%s;%sH\33[48;5;%sm . \33[0m" $x $y $(( $a % 8 + 16 + $j % 223 )) ;a=$(( $a + 1 )) ; done ; x=$(( x%$COLUMNS + 1 )) ; j=$(( $j + 8 )) ;done 

Para este script no lo he «traducido» a Fish ¿Te atreves tu? Si lo haces compártelo en los comentarios. 🙂

Puerta psicodélica a otra dimensión

En Bash ejecuta lo siguiente:

clear;x=$(($COLUMNS/2));y=$(($LINES/2));c=0;n=1;a=90;while :;do bgc=$(($c%232 + 16));case "$a" in 0)xd=0;yd=-1;n=$(($n+1));; 90)xd=1;yd=0;; 180)xd=0;yd=1;n=$(($n+1));; 270)xd=-1;yd=0 ;; *) break ;; esac; for ((i=0;i < $n;i++));do if [[ $x -ge $COLUMNS || $x -le 0 || $y -ge $LINES || $y -le 0 ]]; then x=$(($COLUMNS/2));y=$(($LINES/2));n=1;a=0; continue ; fi ; printf "\033[%s;%sH\033[48;5;%sm \033[0m" $y $x $bgc ; x=$(( $x + $xd )); y=$(( $y + $yd )); done ; c=$(( $c + 1 )); a=$(( $(( $a + 90 )) % 360 )) ; sleep 0.001; done

Matrix en tu terminal

En Bash copia y pega lo siguiente para ver Matrix igual que Neo…

echo -e "\e[1;40m" ; clear ; while :; do echo $LINES $COLUMNS $(( $RANDOM % $COLUMNS)) $( printf "\U$(( $RANDOM % 500 ))" ) ;sleep 0.05; done|gawk '{c=$4; letter=$4;a[$3]=0;for (x in a) {o=a[x];a[x]=a[x]+1; printf "\033[%s;%sH\033[2;32m%s",o,x,letter; printf "\033[%s;%sH\033[1;37m%s\033[0;0H",a[x],x,letter;if (a[x] >= $1) { a[x]=0; } }}' 

Está nevando en la terminal

Por Europa hay una gran falta de agua y mucho calor, podemos consolarnos viendo como nieva en nuestra terminal. Con Bash usa cualquiera de estas opciones:

clear;while :;do echo $LINES $COLUMNS $(($RANDOM%$COLUMNS)) $(printf "\u2744\n");sleep 0.1;done|gawk '{a[$3]=0;for(x in a) {o=a[x];a[x]=a[x]+1;printf "\033[%s;%sH ",o,x;printf "\033[%s;%sH%s \033[0;0H",a[x],x,$4;}}' 

o esta:

for((I=0;J=--I;))do clear;for((D=LINES;S=++J**3%COLUMNS,--D;))do printf %*s.\\n $S;done;sleep 0.1;done

Esto es todo por hoy. Pueden parecer scripts sencillos, pero verás que tienen «miga» y muchas cosas que podemos aprender viendo cómo funcionan. Te animo a que crees tus propios scripts a partir de estos, o que te animes a probar con distintos valores y opciones estos mismos.

Te recuerdo que todos estos scripts y muchos más los tienes disponibles en este enlace:

10 comentarios sobre “Unos pequeños trucos con el cursor en tu terminal con estos scripts

  1. Los he probado todos y el que más me ha gustado es el efecto Matrix (los de nieve no desmerecen).

    Tras 1h peleándome con pasar a un script de bash la línea del efecto Matrix, al final he buscado el script por internet. Es este:

    #!/bin/bash
    echo -e «\033[2J\033[?25l»; R=tput lines C=tput cols;: $[R–] ; while true
    do ( e=echo\ -e s=sleep j=$[RANDOM%C] d=$[RANDOM%R];for i in eval $e {1..$R};
    do c=printf '\\\\0%o' $[RANDOM%57+33] ### http://bruxy.regnet.cz/web/linux ###
    $e «\033[$[i-1];${j}H\033[32m$c\033[$i;${j}H\033[37m»$c; $s 0.1;if [ $i -ge $d ]
    then $e «\033[$[i-d];${j}H «;fi;done;for i in eval $e {$[i-d]..$R}; #[mat!rix]
    do echo -e «\033[$i;${j}f «;$s 0.1;done)& sleep 0.05;done #(c) 2011 — [ BruXy ]

    Lo he descargado de https://bruxy.regnet.cz/web/linux/EN/matrix-sh/

    Saludos

    1. La línea del script que comparteo, si cada punto y coma ; lo borras y haces un salto de línea, ya tienes un script si añades al principio el crunch bang #!

      Saludo.

  2. Muchas gracias por este post. Queria consultarte algo: recien finalize la instalacion de Tumbleweed (dual boot con otro S.O). Mi grafica es la siguiente (info obtenida despues de ejecutar sudo lspci | grep VGA): NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile]
    Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630].

    ¿El driver nvidia_G05.ymp es el que me corresponde instalar?

      1. Gracias por estar al tanto y responder al compañero…
        La verdad es que como tengo una Nvidia ya sin soporte no sé mucho al respecto de los drivers.
        Gracias a ambos!

      2. Muchas gracias Krovikan74 y victorhck por la respuesta. La verdad estoy encantado con Opensuse, considero que encontre la distro definitiva.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.