220 lines
6.7 KiB
PowerShell
220 lines
6.7 KiB
PowerShell
# 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") |