# Check if the script is running as administrator If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { # If not running as administrator, attempt to restart with elevation Write-Host "This script needs to run with Administrator privileges. Please Run again" Exit } function Install-Zen { Write-Host "Installing Zen" winget install Zen-Team.Zen-Browser } function Config-Zen { Write-Host "Creating Directory" $folderPath = "C:\Program Files\Zen Browser\distribution" if (-not (Test-Path $folderPath -PathType Container)) { New-Item -Path $folderPath -ItemType Directory -Force Write-Host "Folder '$folderPath' created successfully." } else { Write-Host "Folder '$folderPath' already exists." } Write-Host "Downloading Policy" $download = "https://git.tcmeta.net/kurtis/win11-scripts/raw/branch/main/vargscript/zen-policy.json" Invoke-WebRequest $download -Out "$folderPath\policies.json" } function Install-FlowLauncher { Write-Host "Installing Flow Launcher" winget install Flow-Launcher.Flow-Launcher } function Config-FlowLauncher { $folderPath = "$ENV:APPDATA\FlowLauncher\Themes" if (-not (Test-Path $folderPath -PathType Container)) { New-Item -Path $folderPath -ItemType Directory -Force Write-Host "Folder '$folderPath' created successfully." } else { Write-Host "Folder '$folderPath' already exists." } Write-Host "Downloading Theme" $download = "https://git.tcmeta.net/kurtis/win11-scripts/raw/branch/main/vargscript/flow-95theme.xaml" Invoke-WebRequest $download -Out "$folderPath\Windows 95.xaml" } function Install-NextCloud { Write-Host "Installing Nextcloud" winget install Nextcloud.NextcloudDesktop } function Install-SteamLink { Write-Host "Installing Steamlink" winget install Valve.SteamLink } function Install-Clink { Write-Host "Installing Clink" winget install chrisant996.Clink } function Install-Starship { Write-Host "running Nerdfont installer" $process = Start-Process powershell.exe -ArgumentList "& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1')))" -PassThru $process.WaitForExit() winget install Starship.Starship Write-Host "Configuring CMD" $folderPath = "$ENV:LOCALAPPDATA\clink" if (-not (Test-Path $folderPath -PathType Container)) { New-Item -Path $folderPath -ItemType Directory -Force Write-Host "Folder '$folderPath' created successfully." } else { Write-Host "Folder '$folderPath' already exists." } Set-Content -Path "$folderPath\starship.lua" -Value "load(io.popen('starship init cmd'):read(`"*a`"))()" Write-Host "Configuring PowerShell" $folderPath = "$([Environment]::GetFolderPath("MyDocuments"))\WindowsPowerShell" if (-not (Test-Path $folderPath -PathType Container)) { New-Item -Path $folderPath -ItemType Directory -Force Write-Host "Folder '$folderPath' created successfully." } else { Write-Host "Folder '$folderPath' already exists." } Add-Content -Path "$folderPath\Microsoft.PowerShell_profile.ps1" -Value "Invoke-Expression (&starship init powershell)" } function Install-JaxCore { Write-Host "Installing Jaxcore" $process = Start-Process powershell.exe -ArgumentList "iwr -useb `"https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1`" | iex" -PassThru $process.WaitForExit() } function Install-Cyberduck { Write-Host "Installing Cyberduck" winget install Iterate.Cyberduck } function Install-Bitwarden { Write-Host "Installing Bitwarden" winget install Bitwarden.Bitwarden } function Install-Discord { Write-Host "Installing Discord" winget install Discord.Discord } function Install-LibreOffice { Write-Host "Installing LibreOffice" winget install TheDocumentFoundation.LibreOffice } function Install-Gimp { Write-Host "Installing Gimp" winget install GIMP.GIMP.3 } function Install-Joplin { Write-Host "Installing Joplin" winget install Joplin.Joplin } function Install-PlexAmp { Write-Host "Installing Plexamp" winget install Plex.Plexamp } function Install-WindowsTerminal { Write-Host "Installing Windows Terminal" winget install Microsoft.WindowsTerminal } function Config-WindowsTerminal { Write-Host "Configuring Windows Terminal" $folderPath = "$ENV:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState" if (-not (Test-Path $folderPath -PathType Container)) { New-Item -Path $folderPath -ItemType Directory -Force Write-Host "Folder '$folderPath' created successfully." } else { Write-Host "Folder '$folderPath' already exists." } $download = "https://git.tcmeta.net/kurtis/win11-scripts/raw/branch/main/vargscript/termsettings.json" Invoke-WebRequest $download -Out "$folderPath\settings.json" } function Install-VSCode { Write-Host "Installing VSCode" winget install Microsoft.VisualStudioCode } 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 = @( "Run All", "Install Zen Config", "Install FlowLauncher Theme", "Install Terminal Settings" ) do { Show-InteractiveMenu -Title "Onboarding Script" -Options $menuOptions $choice = Read-Host "Enter your choice (1- $($menuOptions.Count), or Q to quit)" switch ($choice) { "1" { Install-Zen Config-Zen Install-FlowLauncher Config-FlowLauncher Install-NextCloud Install-SteamLink Install-Clink Install-Starship Install-JaxCore Install-Cyberduck Install-Discord Install-LibreOffice Install-Gimp Install-Joplin Install-PlexAmp Install-WindowsTerminal Config-WindowsTerminal Install-VSCode Pause } "2" { Pause } "3" { Pause } "4" { 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")