From 687ac88c85b18c12d3589bce953836cb46bccc0c Mon Sep 17 00:00:00 2001 From: mnerv <24420859+mnerv@users.noreply.github.com> Date: Wed, 4 Feb 2026 00:03:20 +0100 Subject: [PATCH] winfetch: improve GPU detection and add logo variants - Prioritize discrete GPU (NVIDIA/AMD) over integrated graphics - Add classic Windows 7/Vista logo - Add Windows 8/10 logo - Add Windows 95 retro logo - Add Windows 2025 logo with rounded corners - Fix classic logo alignment with padding --- windows/winfetch.ps1 | 101 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/windows/winfetch.ps1 b/windows/winfetch.ps1 index ebc12fa..813a7ac 100644 --- a/windows/winfetch.ps1 +++ b/windows/winfetch.ps1 @@ -2,7 +2,7 @@ # Windows system information display with ASCII art (inspired by fastfetch/neofetch) param( - [ValidateSet("11", "small", "classic")] + [ValidateSet("11", "small", "classic", "8", "95", "2025")] [string]$Logo = "11" ) @@ -55,9 +55,99 @@ $logoSmall = @( " " # Empty line with proper width (16 chars) ) +# Classic Windows logo (Windows 7/Vista style) +$logoClassic = @( + "$($colors.Red) ,.=:!!t3Z3z., ", + "$($colors.Red) :tt:::tt333EE3 ", + "$($colors.Red) Et:::ztt33EEEL$($colors.Green) @Ee., ..,", + "$($colors.Red) ;tt:::tt333EE7$($colors.Green) ;EEEEEEttttt33#", + "$($colors.Red) :Et:::zt333EEQ.$($colors.Green) `$EEEEEttttt33QL", + "$($colors.Red) it::::tt333EEF$($colors.Green) @EEEEEEttttt33F ", + "$($colors.Red) ;3=*^``````""*4EEV$($colors.Green) :EEEEEEttttt33@.", + "$($colors.Blue) ,.=::::!t=., $($colors.Red)``$($colors.Green) @EEEEEEtttz33QF ", + "$($colors.Blue) ;::::::::zt33)$($colors.Green) ""4EEEtttji3P* ", + "$($colors.Blue) :t::::::::tt33.$($colors.Yellow):Z3z..$($colors.Green) ````$($colors.Yellow) ,..g. ", + "$($colors.Blue) i::::::::zt33F$($colors.Yellow) AEEEtttt::::ztF ", + "$($colors.Blue) ;:::::::::t33V$($colors.Yellow) ;EEEttttt::::t3 ", + "$($colors.Blue) E::::::::zt33L$($colors.Yellow) @EEEtttt::::z3F ", + "$($colors.Blue){3=*^``````""*4E3)$($colors.Yellow) ;EEEtttt:::::tZ`` ", + "$($colors.Blue) ``$($colors.Yellow) :EEEEtttt::::z7 ", + "$($colors.Yellow) ""VEzjt:;;z>*`` " +) + +# Windows 8/10 logo +$logo8 = @( + "$($colors.Cyan) ..,", + "$($colors.Cyan) ....,,:;+ccllll", + "$($colors.Blue) ...,,+:; $($colors.Cyan)cllllllllllllllllll", + "$($colors.Blue),cclllllllllll $($colors.Cyan)lllllllllllllllllll", + "$($colors.Blue)llllllllllllll $($colors.Cyan)lllllllllllllllllll", + "$($colors.Blue)llllllllllllll $($colors.Cyan)lllllllllllllllllll", + "$($colors.Blue)llllllllllllll $($colors.Cyan)lllllllllllllllllll", + "$($colors.Blue)llllllllllllll $($colors.Cyan)lllllllllllllllllll", + "$($colors.Blue)llllllllllllll $($colors.Cyan)lllllllllllllllllll", + "", + "$($colors.BrightGreen)llllllllllllll $($colors.BrightYellow)lllllllllllllllllll", + "$($colors.BrightGreen)llllllllllllll $($colors.BrightYellow)lllllllllllllllllll", + "$($colors.BrightGreen)llllllllllllll $($colors.BrightYellow)lllllllllllllllllll", + "$($colors.BrightGreen)llllllllllllll $($colors.BrightYellow)lllllllllllllllllll", + "$($colors.BrightGreen)llllllllllllll $($colors.BrightYellow)lllllllllllllllllll", + "$($colors.BrightGreen)``'ccllllllllll $($colors.BrightYellow)lllllllllllllllllll", + "$($colors.BrightGreen) ``' \*:: $($colors.BrightYellow):ccllllllllllllllll", + "$($colors.BrightYellow) ````''*::cll", + "$($colors.BrightYellow) ``" +) + +# Windows 95 logo +$logo95 = @( + "$($colors.Gray) ___", + "$($colors.Gray) .--=+++++=-:.", + "$($colors.Gray). _ *%@@@@@@@@@@@@@@*", + "$($colors.Gray) *:+:.__ :+* @@@ @""$($colors.Cyan)_*&%$($colors.Gray)@@$($colors.Yellow)%&&&*$($colors.Gray)""@@@", + "$($colors.Gray) ""+.-#+ +%* "" _ $($colors.Cyan)++&&&%$($colors.Gray)@@$($colors.Yellow)%&&&&&#$($colors.Gray)@@", + "$($colors.Cyan)"" , $($colors.Gray)%@@ $($colors.Cyan)&&&&&%$($colors.Gray)@@$($colors.Yellow)%&&&&&#$($colors.Gray)@@", + "$($colors.Cyan) * oo *# $($colors.Gray)"" _ $($colors.Cyan)&&&&&%$($colors.Gray)@@$($colors.Yellow)%&&&&&#$($colors.Gray)@@", + "$($colors.Cyan)"" , $($colors.Gray)%@@ $($colors.Cyan)&&&&""$($colors.Gray)@@@@#*$($colors.Yellow)""&&&$($colors.Gray)@@", + "$($colors.Cyan). * oo *# $($colors.Gray)"" _ %@@@@@@@@@@@@@@@@", + "$($colors.Gray) *:+:.__ :=* %@@ @""$($colors.Red)**&%$($colors.Gray)@@$($colors.Green)%&&&*$($colors.Gray)""@@@", + "$($colors.Gray) ""+.-#+ +%* "" _ $($colors.Red)&&&&&%$($colors.Gray)@@$($colors.Green)%&&&&&#$($colors.Gray)@@", + "$($colors.Red)"" , $($colors.Gray)%@@ $($colors.Red)&&&&&%$($colors.Gray)@@$($colors.Green)%&&&&&#$($colors.Gray)@@", + "$($colors.Red) * oo *# $($colors.Gray)"" _ $($colors.Red)&&&&&%$($colors.Gray)@@$($colors.Green)%&&&&&#$($colors.Gray)@@", + "$($colors.Red)"" , $($colors.Gray)%@@ $($colors.Red)&&*""%$($colors.Gray)@@@@@@$($colors.Green)""*%&$($colors.Gray)@@", + "$($colors.Red). * oo *# $($colors.Gray)"" _ @@@@@@@@@@@@@@@@@", + "$($colors.Gray) *:+:.__ :+# @@@ @%#=+""""""""""+==%#@", + "$($colors.Gray) ""+.-#+ +%* %+"" "" "":@", + "$($colors.Gray) "" """ +) + +# Windows 2025 logo (rounded corners) +$logo2025 = @( + "$($colors.Blue) ##%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%##", + "$($colors.Blue) ###%%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%%###", + "$($colors.Blue) ####%%%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%%%####", + "$($colors.Blue) ##%%%%%%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%%%%%%##", + "$($colors.Blue)#%%%%%%%%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%%%%%%%%#", + "$($colors.Blue)%%%%%%%%%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%%%%%%%%%", + "$($colors.Blue)%%%%%%%%%%%%%%%%% $($colors.BrightCyan)%%%%%%%%%%%%%%%%%", + "$($colors.Blue)%%%%%%%%%%%%%%%%% $($colors.BrightCyan)#%%%%%%%%%%%%%%%%", + "", + "$($colors.BrightGreen)%%%%%%%%%%%%%%%%% $($colors.BrightYellow)#%%%%%%%%%%%%%%%%", + "$($colors.BrightGreen)%%%%%%%%%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%%%%%%%%%", + "$($colors.BrightGreen)%%%%%%%%%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%%%%%%%%%", + "$($colors.BrightGreen)%%%%%%%%%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%%%%%%%%#", + "$($colors.BrightGreen) ###%%%%%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%%%%%%%##", + "$($colors.BrightGreen) ####%%%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%%%#%####", + "$($colors.BrightGreen) ##%#%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%%%######", + "$($colors.BrightGreen) ##%%%%%%%%% $($colors.BrightYellow)%%%%%%%%%########" +) + # Select logo $asciiLogo = switch ($Logo) { "small" { $logoSmall } + "classic" { $logoClassic } + "8" { $logo8 } + "95" { $logo95 } + "2025" { $logo2025 } default { $logo11 } } @@ -140,7 +230,14 @@ if ($Logo -eq "small") { $maxLines = [Math]::Max($asciiLogo.Count, $info.Count) # Calculate logo width dynamically -$logoWidth = if ($Logo -eq "small") { 16 } else { 38 } +$logoWidth = switch ($Logo) { + "small" { 16 } + "classic" { 40 } + "8" { 36 } + "95" { 40 } + "2025" { 38 } + default { 38 } +} for ($i = 0; $i -lt $maxLines; $i++) { $logoLine = if ($i -lt $asciiLogo.Count) { $asciiLogo[$i] } else { "" }