Update
Addes menu to script updated readme to allow to run from repo
This commit is contained in:
@@ -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
|
||||||
|
|||||||
279
start.ps1
279
start.ps1
@@ -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 {
|
||||||
|
Write-Host "Creating Win95 Directory"
|
||||||
|
|
||||||
|
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
|
||||||
|
$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")
|
||||||
|
|||||||
Reference in New Issue
Block a user