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

285
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"
if (-not (Test-Path $folderPath -PathType Container)) { Function Make-Program-Directory {
New-Item -Path $folderPath -ItemType Directory -Force Write-Host "Creating Win95 Directory"
Write-Host "Folder '$folderPath' created successfully."
} else { if (-not (Test-Path $folderPath -PathType Container)) {
Write-Host "Folder '$folderPath' already exists." New-Item -Path $folderPath -ItemType Directory -Force
Write-Host "Folder '$folderPath' created successfully."
} else {
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
$tempPath = Join-Path $env:TEMP "sounds.zip"
$download = "https://git.tcmeta.net/kurtis/win95-sounds/archive/main.zip"
Invoke-WebRequest $download -Out $tempPath
Write-Host "Unzipping"
Expand-Archive $tempPath -DestinationPath "$folderPath\Sounds" -Force
Write-Host "Removing Temp"
Remove-Item $tempPath -Force
}
git clone https://git.tcmeta.net/kurtis/win95-icons.git "$folderPath\Icons" Function Set-Login {
Write-Host "Downloading Login Screen"
Write-Host "Downloading Sounds" $download = "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/login.png"
Invoke-WebRequest $download -Out "$folderPath\login.png"
git clone https://git.tcmeta.net/kurtis/win95-sounds.git "$folderPath\Sounds" 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 Login Screen" New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImageStatus" -Value "00000001" -PropertyType "DWord" -Force
$download = "https://git.tcmeta.net/kurtis/win95ify-11/raw/branch/main/login.png" New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImagePath" -Value "$folderPath\login.png" -PropertyType "String" -Force
Invoke-WebRequest $download -Out "$folderPath\login.png" New-ItemProperty -Path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" -Name "LockScreenImageUrl" -Value "$folderPath\login.png" -PropertyType "String" -Force
}
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"
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")
Write-Host "Changing to lite mode (if not already done)" Function Update-Wallpaper {
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -Value 1 -Type Dword -Force Write-Host "Updating Wallpaper"
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -Value 1 -Type Dword -Force Download-Wallpapers
Set-WallPaper("$folderPath\Wallpapers\default.png")
}
Write-Host "Updating Login Screen" 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
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization" /V "LockScreenImage" /T REG_SZ /D "$folderPath\login.png" /F Write-Host "Unzipping"
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" /V "LockScreenImageStatus" /T REG_DWORD /D "00000001" /F Expand-Archive $tempPath -DestinationPath "$folderPath" -Force
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" /V "LockScreenImagePath" /T REG_SZ /D "$folderPath\login.png" /F Write-Host "Removing Temp"
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP" /V "LockScreenImageUrl" /T REG_SZ /D "$folderPath\login.png" /F 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
}
# Update icons 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)"
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
}
Function Install-JCReborn {
Write-Host "Installing JC_REBORN"
$download = "https://git.tcmeta.net/kurtis/castaway/releases/download/Win-Release/jc_reborn.msi"
$tempPath = Join-Path $env:TEMP "jc_reborn.msi"
Invoke-WebRequest $download -Out $tempPath
Start-Process 'msiexec.exe' -ArgumentList "/I `"$tempPath`" /qn" -Wait
Remove-Item $tempPath -Force
}
Function Install-Clippy {
Write-Host "Installing Clippy"
$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")