Addes menu to script
updated readme to allow to run from repo
This commit is contained in:
Kurtis
2025-10-28 23:34:05 +10:00
parent 117a7abada
commit 45362f360c
2 changed files with 216 additions and 75 deletions

View File

@@ -1,5 +1,11 @@
## Win95ify! Windows 11 Edition ## Win95ify! Windows 11 Edition
Run the script with the following from an administrator cmd
```
powershell -ExecutionPolicy Bypass -c "irm "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/start.ps1" | iex"
```
This script converts your windows 11 ui to windows 95. This script converts your windows 11 ui to windows 95.
It does the following things It does the following things

263
start.ps1
View File

@@ -4,78 +4,63 @@ If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdenti
Write-Host "This script needs to run with Administrator privileges. Please Run again" Write-Host "This script needs to run with Administrator privileges. Please Run again"
Exit Exit
} }
# Global Variables
# download git via winget since we need to get this.
Write-Host "Making sure you have git"
winget install Git.Git
# Download all the software
Write-Host "Creating Win95 Directory"
$folderPath = "C:\Program Files\Win95" $folderPath = "C:\Program Files\Win95"
Function Make-Program-Directory {
Write-Host "Creating Win95 Directory"
if (-not (Test-Path $folderPath -PathType Container)) { if (-not (Test-Path $folderPath -PathType Container)) {
New-Item -Path $folderPath -ItemType Directory -Force New-Item -Path $folderPath -ItemType Directory -Force
Write-Host "Folder '$folderPath' created successfully." Write-Host "Folder '$folderPath' created successfully."
} else { } else {
Write-Host "Folder '$folderPath' already exists." Write-Host "Folder '$folderPath' already exists."
} }
}
Write-Host "Downloading Wallpapers" Function Download-Wallpapers {
Make-Program-Directory
$tempPath = Join-Path $env:TEMP "wallpapers.zip"
$download = "https://git.tcmeta.net/kurtis/chicago95-wallpapers/archive/main.zip"
Invoke-WebRequest $download -Out $tempPath
Write-Host "Unzipping"
Expand-Archive $tempPath -DestinationPath "$folderPath\Wallpapers" -Force
Write-Host "Removing Temp"
Remove-Item $tempPath -Force
}
git clone https://git.tcmeta.net/kurtis/chicago95-wallpapers.git "$folderPath\Wallpapers" Function Download-Icons {
Make-Program-Directory
$tempPath = Join-Path $env:TEMP "icons.zip"
$download = "https://git.tcmeta.net/kurtis/win95-icons/archive/main.zip"
Invoke-WebRequest $download -Out $tempPath
Write-Host "Unzipping"
Expand-Archive $tempPath -DestinationPath "$folderPath\Icons" -Force
Write-Host "Removing Temp"
Remove-Item $tempPath -Force
}
Write-Host "Downloading Icons" Function Download-Sounds {
Make-Program-Directory
git clone https://git.tcmeta.net/kurtis/win95-icons.git "$folderPath\Icons" $tempPath = Join-Path $env:TEMP "sounds.zip"
$download = "https://git.tcmeta.net/kurtis/win95-sounds/archive/main.zip"
Write-Host "Downloading Sounds" Invoke-WebRequest $download -Out $tempPath
Write-Host "Unzipping"
git clone https://git.tcmeta.net/kurtis/win95-sounds.git "$folderPath\Sounds" Expand-Archive $tempPath -DestinationPath "$folderPath\Sounds" -Force
Write-Host "Removing Temp"
Remove-Item $tempPath -Force
}
Function Set-Login {
Write-Host "Downloading Login Screen" Write-Host "Downloading Login Screen"
$download = "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/login.png" $download = "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/login.png"
Invoke-WebRequest $download -Out "$folderPath\login.png" Invoke-WebRequest $download -Out "$folderPath\login.png"
Write-Host "Updating Login Screen"
New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization" -Name "LockScreenImage" -Value "$folderPath\login.png" -PropertyType "String" -Force
Write-Host "Downloading Latest HackBRGT" New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImageStatus" -Value "00000001" -PropertyType "DWord" -Force
$tempPath = Join-Path $env:TEMP "hackgrbt.zip" New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImagePath" -Value "$folderPath\login.png" -PropertyType "String" -Force
$releases = "https://api.github.com/repos/Metabolix/HackBGRT/releases" New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImageUrl" -Value "$folderPath\login.png" -PropertyType "String" -Force
$tag = (Invoke-WebRequest $releases | ConvertFrom-Json)[0].tag_name }
$download = "https://github.com/Metabolix/HackBGRT/releases/download/$tag/HackBGRT-$($tag.SubString(1)).zip"
Invoke-WebRequest $download -Out $tempPath
Write-Host "Unzipping"
Expand-Archive $tempPath -DestinationPath "$folderPath" -Force
Write-Host "Removing Temp"
Remove-Item $tempPath -Force
Write-Host "Downloading Custom Logo"
$download = "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/splash.bmp"
Invoke-WebRequest $download -Out "$folderPath\HackBGRT-$($tag.SubString(1))\splash.bmp"
Write-Host "Starting Boot Screen setup."
Start-Process "$folderPath\HackBGRT-$($tag.SubString(1))\setup.exe"
pause
#Okay now lets start to install the essentials
Write-Host "Installing RetroBar"
winget install dremin.RetroBar
Start-Process "$ENV:LOCALAPPDATA\Programs\RetroBar\RetroBar.exe"
Write-Host "Installing OpenShell in interactive mode"
winget install Open-Shell.Open-Shell-Menu -i
# okay now we need to apply wallpapers and also other stuff
# need to download and install the latest clippy ai
Write-Host "Updating Wallpaper"
Function Set-WallPaper($Image) { Function Set-WallPaper($Image) {
<# <#
@@ -114,18 +99,168 @@ public class Params
$ret = [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni) $ret = [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni)
} }
Set-WallPaper("$folderPath\Wallpapers\default.png")
Function Update-Wallpaper {
Write-Host "Updating Wallpaper"
Download-Wallpapers
Set-WallPaper("$folderPath\Wallpapers\default.png")
}
Function Install-HackGRBT {
Write-Host "Downloading Latest HackBRGT"
$tempPath = Join-Path $env:TEMP "hackgrbt.zip"
$releases = "https://api.github.com/repos/Metabolix/HackBGRT/releases"
$tag = (Invoke-WebRequest $releases | ConvertFrom-Json)[0].tag_name
$download = "https://github.com/Metabolix/HackBGRT/releases/download/$tag/HackBGRT-$($tag.SubString(1)).zip"
Invoke-WebRequest $download -Out $tempPath
Write-Host "Unzipping"
Expand-Archive $tempPath -DestinationPath "$folderPath" -Force
Write-Host "Removing Temp"
Remove-Item $tempPath -Force
Write-Host "Downloading Custom Logo"
$download = "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/splash.bmp"
Invoke-WebRequest $download -Out "$folderPath\HackBGRT-$($tag.SubString(1))\splash.bmp"
Write-Host "Starting Boot Screen setup."
Start-Process "$folderPath\HackBGRT-$($tag.SubString(1))\setup.exe" -Wait
}
Function Install-RetroBar {
Write-Host "Installing RetroBar"
winget install dremin.RetroBar
New-ItemProperty -Path "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" -Name "RetroBar" -Value "$ENV:LOCALAPPDATA\Programs\RetroBar\RetroBar.exe" -PropertyType "String" -Force
Write-Host "Setting taskbar to hidden (makes booting look a bit nicer)"
$p='HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3';$v=(Get-ItemProperty -Path $p).Settings;$v[8]=3;&Set-ItemProperty -Path $p -Name Settings -Value $v;&Stop-Process -f -ProcessName explorer
}
Function Install-OpenShell {
Write-Host "Installing OpenShell in interactive mode"
winget install Open-Shell.Open-Shell-Menu -i
Write-Host "Changing to lite mode (if not already done)" Write-Host "Changing to lite mode (if not already done)"
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value 1 -Type Dword -Force Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value 1 -Type Dword -Force
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value 1 -Type Dword -Force Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value 1 -Type Dword -Force
}
Write-Host "Updating Login Screen" Function Install-JCReborn {
Write-Host "Installing JC_REBORN"
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization" /V "LockScreenImage" /T REG_SZ /D "$folderPath\login.png" /F $download = "https://git.tcmeta.net/kurtis/castaway/releases/download/Win-Release/jc_reborn.msi"
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" /V "LockScreenImageStatus" /T REG_DWORD /D "00000001" /F $tempPath = Join-Path $env:TEMP "jc_reborn.msi"
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" /V "LockScreenImagePath" /T REG_SZ /D "$folderPath\login.png" /F Invoke-WebRequest $download -Out $tempPath
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" /V "LockScreenImageUrl" /T REG_SZ /D "$folderPath\login.png" /F Start-Process 'msiexec.exe' -ArgumentList "/I `"$tempPath`" /qn" -Wait
Remove-Item $tempPath -Force
}
Function Install-Clippy {
Write-Host "Installing Clippy"
# Update icons $tempPath = Join-Path $env:TEMP "clippy.exe"
$releases = "https://api.github.com/repos/felixrieseberg/clippy/releases"
$tag = (Invoke-WebRequest $releases | ConvertFrom-Json)[0].tag_name
$download = "https://github.com/felixrieseberg/clippy/releases/download/$tag/Clippy-$($tag.SubString(1))-setup-x64.exe"
Invoke-WebRequest $download -Out $tempPath
$process = Start-Process -FilePath $tempPath -PassThru
$process.WaitForExit()
Remove-Item $tempPath -Force
}
Function Update-Sounds {
Download-Sounds
Set-ItemProperty -Path "HKCU:\AppEvents\Schemes\Apps\.Default\WindowsLogon\.Current\" -Name "(default)" -Value "$folderPath\The-Microsoft-Sound.wav"
Set-ItemProperty -Path "HKCU:\AppEvents\Schemes\Apps\.Default\SystemAsterisk\.Current\" -Name "(default)" -Value "$folderPath\CHORD.WAV"
Set-ItemProperty -Path "HKCU:\AppEvents\Schemes\Apps\.Default\SystemExclamation\.Current\" -Name "(default)" -Value "$folderPath\CHORD.WAV"
Set-ItemProperty -Path "HKCU:\AppEvents\Schemes\Apps\.Default\SystemQuestion\.Current\" -Name "(default)" -Value "$folderPath\CHORD.WAV"
}
Function Update-Icons {
Download-Icons
Write-Host "Updating Shortcut Icons"
$iconsArray = @(
@("$ENV:APPDATA\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\File Explorer.lnk",
"$folderPathicons\Icons\Folder.ico"),
@("$ENV:APPDATA\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Thunderbird.lnk",
"$folderPathicons\Icons\Mail.ico"),
)
foreach ($innerArray in $multiLevelArray) {
Write-Host "Processing Icon: $($innerArray[0])"
}
}
function Show-InteractiveMenu {
param (
[string]$Title = "Main Menu",
[array]$Options
)
Clear-Host
Write-Host "================ $Title ================"
for ($i = 0; $i -lt $Options.Count; $i++) {
Write-Host "$($i + 1): $($Options[$i])"
}
Write-Host "Q: Quit"
Write-Host "========================================"
}
$menuOptions = @(
"Install All",
"Update Wallpaper",
"Update Login",
"Update Icons",
"Update Sounds"
"Install RetroBar, Openshell, JCReborn and Clippy AI"
)
do {
Show-InteractiveMenu -Title "Win95ify! Windows 11 Edition" -Options $menuOptions
$choice = Read-Host "Enter your choice (1- $($menuOptions.Count), or Q to quit)"
switch ($choice) {
"1" {
Write-Head "Installing everything in no particular order"
Set-Login
Set-Wallpaper
Update-Wallpaper
Update-Sounds
Update-Icons
Install-HackBGRT
Install-RetroBar
Install-OpenShell
Install-JCReborn
Install-Clippy
Write-Head "All Done!"
Pause
}
"2" {
Update-Wallpaper
Pause
}
"3" {
Update-Login
Pause
}
"4" {
Update-Icons
Pause
}
"5" {
Update-Sounds
Pause
}
"q" {
Write-Host "Exiting menu."
break
}
"Q" {
Write-Host "Exiting menu."
break
}
default {
Write-Host "Invalid choice. Please try again." -ForegroundColor Red
Pause
}
}
} while ($choice -ne "q" -and $choice -ne "Q")