From 9ff57927907b0aafd8c2bd198e4556357ffd7c65 Mon Sep 17 00:00:00 2001 From: "geoffray.levasseur" Date: Wed, 4 Mar 2026 15:55:11 +0100 Subject: [PATCH] configurable rain --- history.txt | 3 +++ profile.d/rain.sh | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/history.txt b/history.txt index e1d34d0..f1ce573 100644 --- a/history.txt +++ b/history.txt @@ -7,6 +7,9 @@ Current version from Geoffray Levasseur ------------------------------------------------------------------------------ Version history: ------------------------------------------------------------------------------ +# 04/03/2026 v3.5.0 + rain has now configurable speed and color + showinfo adapted to fastfetch, replacing neofetch # 24/02/2022 v3.3.1 Fixed version detection diff --git a/profile.d/rain.sh b/profile.d/rain.sh index e48df9d..9c1fbf6 100644 --- a/profile.d/rain.sh +++ b/profile.d/rain.sh @@ -39,19 +39,44 @@ # ------------------------------------------------------------------------------ rain() { + local step_duration=0.050 + local base_color="white" # Par défaut + + # 1. Analyse des arguments + while [[ "$#" -gt 0 ]]; do + case $1 in + -s|--speed) step_duration="$2"; shift ;; + -c|--color) base_color="$2"; shift ;; + *) echo "Usage: rain [-s speed] [-c color]"; return 1 ;; + esac + shift + done + + # 2. Définition de la palette de couleurs (Gradients 256-couleurs) + local rain_colors=() + case $base_color in + green) # Vert style Matrix + for i in {22..28} {34..40} {46..48}; do rain_colors+=("\e[38;5;${i}m"); done ;; + blue) # Bleu profond à clair + for i in {17..21} {27..33} {39..45}; do rain_colors+=("\e[38;5;${i}m"); done ;; + red) # Rouge sang à vif + for i in {52..52} {88..88} {124..124} {160..160} {196..201}; do rain_colors+=("\e[38;5;${i}m"); done ;; + yellow) # Ambre / Or + for i in {58..58} {100..100} {142..142} {184..184} {226..229}; do rain_colors+=("\e[38;5;${i}m"); done ;; + cyan) # Turquoise + for i in {30..31} {37..38} {44..45} {50..51}; do rain_colors+=("\e[38;5;${i}m"); done ;; + *) # Gris/Blanc par défaut (ton script original) + rain_colors=("\e[37m" "\e[37;1m") + for i in {244..255}; do rain_colors+=("\e[38;5;${i}m"); done ;; + esac + local exit_st=0 local rain_cars=("|" "│" "┃" "┆" "┇" "┊" "┋" "╽" "╿") - local rain_colors=("\e[37m" "\e[37;1m") - # More from 256 color mode - for i in {244..255}; do - rain_colors=("${rain_colors[@]}" "\e[38;5;${i}m") - done local rain_tab=${#rain_cars[@]} local rain_color_tab=${#rain_colors[@]} local num_rain_metadata=5 local term_height=$(tput lines) local term_width=$(tput cols) - local step_duration=0.050 local X=0 Y=0 drop_length=0 rain_drop=0 local max_rain_width=0 new_rain_odd=0 falling_odd=0