Reduced 459 lines from GUI + 20 from minimal script!

- Simplify every button click, when installing something
- Move Prompt-PcRestart() func to simple-message-box.ps1 lib
- Remove Old comments
- Renamed last functions to match PS naming convention
- Pass winget command as default, when installing a package
- Rename GUI Layout lib to GUI Helper
- Updated lib examples
 README:
- Update README about Search Indexing
- This finishs my day 🙃
main
Plínio Larrubia 3 years ago committed by Plínio Larrubia
parent 418a61477d
commit b281a2d1b0
No known key found for this signature in database
GPG Key ID: 057B0A87CB137C69

@ -78,9 +78,10 @@ Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force; ls -Recurse *.ps*1 |
- `Reinstall Pre-Installed Apps`: Rebloat Windows with all the Pre-Installed Apps; ([`reinstall-pre-installed-apps.ps1`](./src/utils/reinstall-pre-installed-apps.ps1)) - `Reinstall Pre-Installed Apps`: Rebloat Windows with all the Pre-Installed Apps; ([`reinstall-pre-installed-apps.ps1`](./src/utils/reinstall-pre-installed-apps.ps1))
- `Revert Tweaks`: Re-apply some tweaks and [Revert] all possible ones, covering the `Scheduled Tasks`, `Services`, `Privacy and Performance`, `Personal` and `Optional Features` tweaks; - `Revert Tweaks`: Re-apply some tweaks and [Revert] all possible ones, covering the `Scheduled Tasks`, `Services`, `Privacy and Performance`, `Personal` and `Optional Features` tweaks;
- `Dark Mode & Light Mode`: Apply [Dark Mode](./src/utils/use-dark-theme.reg) or [Light Mode](./src/utils/use-light-theme.reg) exclusively from GUI; - `Dark Mode & Light Mode`: Apply [Dark Mode](./src/utils/use-dark-theme.reg) or [Light Mode](./src/utils/use-light-theme.reg) exclusively from GUI;
- `Enable/Disable Cortana`: Let you choose whether the **Cortana** is [enabled](./src/utils/enable-cortana.reg) or [disabled](src/utils/disable-cortana.reg); - `Enable/Disable Search Indexing`: Let you choose whether the **Search Service** is [enabled](./src/utils/enable-search-idx.ps1) or [disabled](src/utils/disable-search-idx.ps1);
- `Enable Full Telemetry & Disable Telemetry`: Let you choose whether the **Telemetry** is [enabled](./src/utils/enable-full-telemetry.reg) or [disabled](src/utils/disable-telemetry.reg);
- `Enable/Disable Background Apps`: Let you choose whether the **Background Apps** are [enabled](./src/utils/enable-bg-apps.reg) or [disabled](src/utils/disable-bg-apps.reg); - `Enable/Disable Background Apps`: Let you choose whether the **Background Apps** are [enabled](./src/utils/enable-bg-apps.reg) or [disabled](src/utils/disable-bg-apps.reg);
- `Enable Full Telemetry & Disable Telemetry`: Let you choose whether the **Telemetry** is [enabled](./src/utils/enable-full-telemetry.reg) or [disabled](src/utils/disable-telemetry.reg);
- `Enable/Disable Cortana`: Let you choose whether the **Cortana** is [enabled](./src/utils/enable-cortana.reg) or [disabled](src/utils/disable-cortana.reg);
- `Install CPU/GPU Drivers`: Install CPU and GPU drivers. ([`install-drivers.ps1`](./src/scripts/install-drivers.ps1)); - `Install CPU/GPU Drivers`: Install CPU and GPU drivers. ([`install-drivers.ps1`](./src/scripts/install-drivers.ps1));
- The Latest CPU (`Intel (Winget)` and [AMD (Chocolatey)](https://community.chocolatey.org/packages/amd-ryzen-chipset)) driver installer; - The Latest CPU (`Intel (Winget)` and [AMD (Chocolatey)](https://community.chocolatey.org/packages/amd-ryzen-chipset)) driver installer;
- The Latest Graphics driver of your GPU (Except AMD). See `Intel (Winget)` and [NVIDIA (Chocolatey)](https://community.chocolatey.org/packages/geforce-game-ready-driver), including `GeForce Experience (Winget)`); - The Latest Graphics driver of your GPU (Except AMD). See `Intel (Winget)` and [NVIDIA (Chocolatey)](https://community.chocolatey.org/packages/geforce-game-ready-driver), including `GeForce Experience (Winget)`);

@ -3,7 +3,7 @@ function Quick-PrivilegesElevation() {
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit } If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }
} }
function LoadLibs() { function Load-Libs() {
Write-Host "Your Current Folder $pwd" Write-Host "Your Current Folder $pwd"
Write-Host "Script Root Folder $PSScriptRoot" Write-Host "Script Root Folder $PSScriptRoot"
@ -20,27 +20,7 @@ function LoadLibs() {
Pop-Location Pop-Location
} }
function PromptPcRestart() { function Run-Scripts() {
$Ask = "If you want to see the changes restart your computer!
Do you want to Restart now?"
switch (Show-Question -Title "Read carefully" -Message $Ask) {
'Yes' {
Write-Host "You choose to Restart now"
Restart-Computer
}
'No' {
Write-Host "You choose to Restart later"
}
'Cancel' {
# With Yes, No and Cancel, the user can press Esc to exit
Write-Host "You choose to Restart later"
}
}
}
function RunScripts() {
$DoneTitle = "Done" $DoneTitle = "Done"
$DoneMessage = "Process Completed!" $DoneMessage = "Process Completed!"
@ -78,12 +58,12 @@ function RunScripts() {
function Main() { function Main() {
Quick-PrivilegesElevation # Check admin rights Quick-PrivilegesElevation # Check admin rights
LoadLibs # Import modules from lib folder Load-Libs # Import modules from lib folder
Unrestrict-Permissions # Unlock script usage Unrestrict-Permissions # Unlock script usage
Setup-ConsoleStyle # Make the console look cooler Setup-ConsoleStyle # Make the console look cooler
RunScripts # Run all scripts inside 'scripts' folder Run-Scripts # Run all scripts inside 'scripts' folder
Restrict-Permissions # Lock script usage Restrict-Permissions # Lock script usage
PromptPcRestart # Prompt options to Restart the PC Prompt-PcRestart # Prompt options to Restart the PC
} }

@ -3,7 +3,7 @@ function Quick-PrivilegesElevation() {
If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit } If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }
} }
function LoadLibs() { function Load-Libs() {
Write-Host "Your Current Folder $pwd" Write-Host "Your Current Folder $pwd"
Write-Host "Script Root Folder $PSScriptRoot" Write-Host "Script Root Folder $PSScriptRoot"
@ -13,7 +13,7 @@ function LoadLibs() {
Get-ChildItem -Recurse *.ps*1 | Unblock-File Get-ChildItem -Recurse *.ps*1 | Unblock-File
Import-Module -DisableNameChecking .\"install-package.psm1" Import-Module -DisableNameChecking .\"install-package.psm1"
Import-Module -DisableNameChecking .\"set-gui-layout.psm1" Import-Module -DisableNameChecking .\"gui-helper.psm1"
Import-Module -DisableNameChecking .\"set-script-policy.psm1" Import-Module -DisableNameChecking .\"set-script-policy.psm1"
Import-Module -DisableNameChecking .\"setup-console-style.psm1" Import-Module -DisableNameChecking .\"setup-console-style.psm1"
Import-Module -DisableNameChecking .\"simple-message-box.psm1" Import-Module -DisableNameChecking .\"simple-message-box.psm1"
@ -22,41 +22,16 @@ function LoadLibs() {
Pop-Location Pop-Location
} }
function PromptPcRestart() {
$Ask = "If you want to see the changes restart your computer!
Do you want to Restart now?"
switch (Show-Question -Title "Read carefully" -Message $Ask) {
'Yes' {
Write-Host "You choose to Restart now"
Restart-Computer
}
'No' {
Write-Host "You choose to Restart later"
}
'Cancel' {
# With Yes, No and Cancel, the user can press Esc to exit
Write-Host "You choose to Restart later"
}
}
}
# https://docs.microsoft.com/pt-br/powershell/scripting/samples/creating-a-custom-input-box?view=powershell-7.1 # https://docs.microsoft.com/pt-br/powershell/scripting/samples/creating-a-custom-input-box?view=powershell-7.1
# Adapted majorly from https://github.com/ChrisTitusTech/win10script and https://github.com/Sycnex/Windows10Debloater # Adapted majorly from https://github.com/ChrisTitusTech/win10script and https://github.com/Sycnex/Windows10Debloater
function PrepareGUI() { function Prepare-GUI() {
Set-GUILayout # Load the GUI Layout Set-GUILayout # Load the GUI Layout
# <=== AFTER PROCESS ===>
$Global:NeedRestart = $false $Global:NeedRestart = $false
$DoneTitle = "Done" $DoneTitle = "Done"
$DoneMessage = "Process Completed!" $DoneMessage = "Process Completed!"
# <=== DISPLAYED GUI ===>
# Main Window: # Main Window:
$Form = New-Object System.Windows.Forms.Form $Form = New-Object System.Windows.Forms.Form
$Form.BackColor = [System.Drawing.ColorTranslator]::FromHtml("$WinDark") $Form.BackColor = [System.Drawing.ColorTranslator]::FromHtml("$WinDark")
@ -464,7 +439,7 @@ function PrepareGUI() {
$Panel3_2.Controls.AddRange(@($CaptionLabel3_2_8, $CPUZ, $GPUZ, $CrystalDiskInfo, $CrystalDiskMark)) $Panel3_2.Controls.AddRange(@($CaptionLabel3_2_8, $CPUZ, $GPUZ, $CrystalDiskInfo, $CrystalDiskMark))
$Panel3_2.Controls.AddRange(@($CaptionLabel3_2_9, $WSL2, $Ubuntu, $Debian, $KaliLinux, $OpenSuse, $SLES, $Ubuntu16LTS, $Ubuntu18LTS, $Ubuntu20LTS)) $Panel3_2.Controls.AddRange(@($CaptionLabel3_2_9, $WSL2, $Ubuntu, $Debian, $KaliLinux, $OpenSuse, $SLES, $Ubuntu16LTS, $Ubuntu18LTS, $Ubuntu20LTS))
# <=== CLICK EVENTS ===> # <== CLICK EVENTS ==>
$ApplyTweaks.Add_Click( { $ApplyTweaks.Add_Click( {
Push-Location -Path "src\scripts\" Push-Location -Path "src\scripts\"
@ -674,223 +649,83 @@ function PrepareGUI() {
}) })
$BraveBrowser.Add_Click( { $BraveBrowser.Add_Click( {
Install-Package -Name $BraveBrowser.Text -PackageName "BraveSoftware.BraveBrowser"
$InstallParams = @{
Name = $BraveBrowser.Text
PackageName = "BraveSoftware.BraveBrowser"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$GoogleChrome.Add_Click( { $GoogleChrome.Add_Click( {
Install-Package -Name $GoogleChrome.Text -PackageName "Google.Chrome" -InstallBlock { winget install --silent --id $Package; choco install -y "ublockorigin-chrome" }
$InstallParams = @{
Name = $GoogleChrome.Text
PackageName = "Google.Chrome"
InstallBlock = { winget install --silent --id $Package; choco install -y "ublockorigin-chrome" }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$MozillaFirefox.Add_Click( { $MozillaFirefox.Add_Click( {
Install-Package -Name $MozillaFirefox.Text -PackageName "Mozilla.Firefox"
$InstallParams = @{
Name = $MozillaFirefox.Text
PackageName = "Mozilla.Firefox"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$7Zip.Add_Click( { $7Zip.Add_Click( {
Install-Package -Name $7Zip.Text -PackageName "7zip.7zip"
$InstallParams = @{
Name = $7Zip.Text
PackageName = "7zip.7zip"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$WinRar.Add_Click( { $WinRar.Add_Click( {
Install-Package -Name $WinRar.Text -PackageName "winrar" -InstallBlock { choco install -y $Package }
$InstallParams = @{
Name = $WinRar.Text
PackageName = "winrar"
InstallBlock = { choco install -y $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$OnlyOffice.Add_Click( { $OnlyOffice.Add_Click( {
Install-Package -Name $OnlyOffice.Text -PackageName "ONLYOFFICE.DesktopEditors"
$InstallParams = @{
Name = $OnlyOffice.Text
PackageName = "ONLYOFFICE.DesktopEditors"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$LibreOffice.Add_Click( { $LibreOffice.Add_Click( {
Install-Package -Name $LibreOffice.Text -PackageName "LibreOffice.LibreOffice"
$InstallParams = @{
Name = $LibreOffice.Text
PackageName = "LibreOffice.LibreOffice"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$PowerBI.Add_Click( { $PowerBI.Add_Click( {
Install-Package -Name $PowerBI.Text -PackageName "Microsoft.PowerBI"
$InstallParams = @{
Name = $PowerBI.Text
PackageName = "Microsoft.PowerBI"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$PaintNet.Add_Click( { $PaintNet.Add_Click( {
Install-Package -Name $PaintNet.Text -PackageName "paint.net" -InstallBlock { choco install -y $Package }
$InstallParams = @{
Name = $PaintNet.Text
PackageName = "paint.net"
InstallBlock = { choco install -y $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Gimp.Add_Click( { $Gimp.Add_Click( {
Install-Package -Name $Gimp.Text -PackageName "GIMP.GIMP"
$InstallParams = @{
Name = $Gimp.Text
PackageName = "GIMP.GIMP"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Inkscape.Add_Click( { $Inkscape.Add_Click( {
Install-Package -Name $Inkscape.Text -PackageName "Inkscape.Inkscape"
$InstallParams = @{
Name = $Inkscape.Text
PackageName = "Inkscape.Inkscape"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$IrfanView.Add_Click( { $IrfanView.Add_Click( {
Install-Package -Name $IrfanView.Text -PackageName "IrfanSkiljan.IrfanView"
$InstallParams = @{
Name = $IrfanView.Text
PackageName = "IrfanSkiljan.IrfanView"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Krita.Add_Click( { $Krita.Add_Click( {
Install-Package -Name $Krita.Text -PackageName "KDE.Krita"
$InstallParams = @{
Name = $Krita.Text
PackageName = "KDE.Krita"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$ShareX.Add_Click( { $ShareX.Add_Click( {
Install-Package -Name $ShareX.Text -PackageName "ShareX.ShareX"
$InstallParams = @{
Name = $ShareX.Text
PackageName = "ShareX.ShareX"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$VSCode.Add_Click( { $VSCode.Add_Click( {
Install-Package -Name $VSCode.Text -PackageName "Microsoft.VisualStudioCode"
$InstallParams = @{
Name = $VSCode.Text
PackageName = "Microsoft.VisualStudioCode"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$NotepadPlusPlus.Add_Click( { $NotepadPlusPlus.Add_Click( {
Install-Package -Name $NotepadPlusPlus.Text -PackageName "Notepad++.Notepad++"
$InstallParams = @{
Name = $NotepadPlusPlus.Text
PackageName = "Notepad++.Notepad++"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$GoogleDrive.Add_Click( { $GoogleDrive.Add_Click( {
Install-Package -Name $GoogleDrive.Text -PackageName "Google.Drive"
$InstallParams = @{
Name = $GoogleDrive.Text
PackageName = "Google.Drive"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Dropbox.Add_Click( { $Dropbox.Add_Click( {
Install-Package -Name $Dropbox.Text -PackageName "Dropbox.Dropbox"
$InstallParams = @{
Name = $Dropbox.Text
PackageName = "Dropbox.Dropbox"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$AuthyDesktop.Add_Click( { $AuthyDesktop.Add_Click( {
Install-Package -Name $AuthyDesktop.Text -PackageName "Twilio.Authy"
$InstallParams = @{
Name = $AuthyDesktop.Text
PackageName = "Twilio.Authy"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$WindowsTerminal.Add_Click( { $WindowsTerminal.Add_Click( {
Install-Package -Name $WindowsTerminal.Text -PackageName "Microsoft.WindowsTerminal"
$InstallParams = @{
Name = $WindowsTerminal.Text
PackageName = "Microsoft.WindowsTerminal"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$GitAndKeysSetup.Add_Click( { $GitAndKeysSetup.Add_Click( {
@ -904,124 +739,47 @@ function PrepareGUI() {
}) })
$JavaJRE.Add_Click( { $JavaJRE.Add_Click( {
Install-Package -Name $JavaJRE.Text -PackageName "Oracle.JavaRuntimeEnvironment"
$InstallParams = @{
Name = $JavaJRE.Text
PackageName = "Oracle.JavaRuntimeEnvironment"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$JavaJDKs.Add_Click( { $JavaJDKs.Add_Click( { # Be vigilant as Eclipse Adoptium will become the newest owner
Install-Package -Name $JavaJDKs.Text -PackageName @("AdoptOpenJDK.OpenJDK.8", "AdoptOpenJDK.OpenJDK.11", "AdoptOpenJDK.OpenJDK.16")
$InstallParams = @{
Name = $JavaJDKs.Text
PackageName = @("AdoptOpenJDK.OpenJDK.8", "AdoptOpenJDK.OpenJDK.11", "AdoptOpenJDK.OpenJDK.16") # Be vigilant as Eclipse Adoptium will become the newest owner
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$NodeJsLts.Add_Click( { $NodeJsLts.Add_Click( {
Install-Package -Name $NodeJsLts.Text -PackageName "OpenJS.NodeJSLTS"
$InstallParams = @{
Name = $NodeJsLts.Text
PackageName = "OpenJS.NodeJSLTS"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$NodeJs.Add_Click( { $NodeJs.Add_Click( {
Install-Package -Name $NodeJs.Text -PackageName "OpenJS.NodeJS"
$InstallParams = @{
Name = $NodeJs.Text
PackageName = "OpenJS.NodeJS"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Python3.Add_Click( { $Python3.Add_Click( {
Install-Package -Name $Python3.Text -PackageName "Python.Python.3"
$InstallParams = @{
Name = $Python3.Text
PackageName = "Python.Python.3"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Anaconda3.Add_Click( { $Anaconda3.Add_Click( {
Install-Package -Name $Anaconda3.Text -PackageName "Anaconda.Anaconda3"
$InstallParams = @{
Name = $Anaconda3.Text
PackageName = "Anaconda.Anaconda3"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Ruby.Add_Click( { $Ruby.Add_Click( {
Install-Package -Name $Ruby.Text -PackageName "RubyInstallerTeam.RubyWithDevKit"
$InstallParams = @{
Name = $Ruby.Text
PackageName = "RubyInstallerTeam.RubyWithDevKit"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$AndroidStudio.Add_Click( { $AndroidStudio.Add_Click( {
Install-Package -Name $AndroidStudio.Text -PackageName "Google.AndroidStudio"
$InstallParams = @{
Name = $AndroidStudio.Text
PackageName = "Google.AndroidStudio"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$DockerDesktop.Add_Click( { $DockerDesktop.Add_Click( {
Install-Package -Name $DockerDesktop.Text -PackageName "Docker.DockerDesktop"
$InstallParams = @{
Name = $DockerDesktop.Text
PackageName = "Docker.DockerDesktop"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$PostgreSQL.Add_Click( { $PostgreSQL.Add_Click( {
Install-Package -Name $PostgreSQL.Text -PackageName "PostgreSQL.PostgreSQL"
$InstallParams = @{
Name = $PostgreSQL.Text
PackageName = "PostgreSQL.PostgreSQL"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$MySQL.Add_Click( { $MySQL.Add_Click( {
Install-Package -Name $MySQL.Text -PackageName "Oracle.MySQL"
$InstallParams = @{
Name = $MySQL.Text
PackageName = "Oracle.MySQL"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$InstallGamingDependencies.Add_Click( { $InstallGamingDependencies.Add_Click( {
@ -1041,257 +799,96 @@ function PrepareGUI() {
}) })
$Discord.Add_Click( { $Discord.Add_Click( {
Install-Package -Name $Discord.Text -PackageName "Discord.Discord"
$InstallParams = @{
Name = $Discord.Text
PackageName = "Discord.Discord"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$MSTeams.Add_Click( { $MSTeams.Add_Click( {
Install-Package -Name $MSTeams.Text -PackageName "Microsoft.Teams"
$InstallParams = @{
Name = $MSTeams.Text
PackageName = "Microsoft.Teams"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Slack.Add_Click( { $Slack.Add_Click( {
Install-Package -Name $Slack.Text -PackageName "SlackTechnologies.Slack"
$InstallParams = @{
Name = $Slack.Text
PackageName = "SlackTechnologies.Slack"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Zoom.Add_Click( { $Zoom.Add_Click( {
Install-Package -Name $Zoom.Text -PackageName "Zoom.Zoom"
$InstallParams = @{
Name = $Zoom.Text
PackageName = "Zoom.Zoom"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$RocketChat.Add_Click( { $RocketChat.Add_Click( {
Install-Package -Name $RocketChat.Text -PackageName "RocketChat.RocketChat"
$InstallParams = @{
Name = $RocketChat.Text
PackageName = "RocketChat.RocketChat"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Steam.Add_Click( { $Steam.Add_Click( {
Install-Package -Name $Steam.Text -PackageName "Valve.Steam"
$InstallParams = @{
Name = $Steam.Text
PackageName = "Valve.Steam"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$GogGalaxy.Add_Click( { $GogGalaxy.Add_Click( {
Install-Package -Name $GogGalaxy.Text -PackageName "GOG.Galaxy"
$InstallParams = @{
Name = $GogGalaxy.Text
PackageName = "GOG.Galaxy"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$EpicGames.Add_Click( { $EpicGames.Add_Click( {
Install-Package -Name $EpicGames.Text -PackageName "EpicGames.EpicGamesLauncher"
$InstallParams = @{
Name = $EpicGames.Text
PackageName = "EpicGames.EpicGamesLauncher"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$EADesktop.Add_Click( { $EADesktop.Add_Click( {
Install-Package -Name $EADesktop.Text -PackageName "ElectronicArts.EADesktop"
$InstallParams = @{
Name = $EADesktop.Text
PackageName = "ElectronicArts.EADesktop"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$UbisoftConnect.Add_Click( { $UbisoftConnect.Add_Click( {
Install-Package -Name $UbisoftConnect.Text -PackageName "Ubisoft.Connect"
$InstallParams = @{
Name = $UbisoftConnect.Text
PackageName = "Ubisoft.Connect"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Notion.Add_Click( { $Notion.Add_Click( {
Install-Package -Name $Notion.Text -PackageName "Notion.Notion"
$InstallParams = @{
Name = $Notion.Text
PackageName = "Notion.Notion"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Parsec.Add_Click( { $Parsec.Add_Click( {
Install-Package -Name $Parsec.Text -PackageName "Parsec.Parsec"
$InstallParams = @{
Name = $Parsec.Text
PackageName = "Parsec.Parsec"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$TeamViewer.Add_Click( { $TeamViewer.Add_Click( {
Install-Package -Name $TeamViewer.Text -PackageName "TeamViewer.TeamViewer"
$InstallParams = @{
Name = $TeamViewer.Text
PackageName = "TeamViewer.TeamViewer"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$ObsStudio.Add_Click( { $ObsStudio.Add_Click( {
Install-Package -Name $ObsStudio.Text -PackageName "OBSProject.OBSStudio"
$InstallParams = @{
Name = $ObsStudio.Text
PackageName = "OBSProject.OBSStudio"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$StreamlabsObs.Add_Click( { $StreamlabsObs.Add_Click( {
Install-Package -Name $StreamlabsObs.Text -PackageName "Streamlabs.StreamlabsOBS"
$InstallParams = @{
Name = $StreamlabsObs.Text
PackageName = "Streamlabs.StreamlabsOBS"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$qBittorrent.Add_Click( { $qBittorrent.Add_Click( {
Install-Package -Name $qBittorrent.Text -PackageName "qBittorrent.qBittorrent"
$InstallParams = @{
Name = $qBittorrent.Text
PackageName = "qBittorrent.qBittorrent"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Spotify.Add_Click( { $Spotify.Add_Click( {
Install-Package -Name $Spotify.Text -PackageName "Spotify.Spotify"
$InstallParams = @{
Name = $Spotify.Text
PackageName = "Spotify.Spotify"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Vlc.Add_Click( { $Vlc.Add_Click( {
Install-Package -Name $Vlc.Text -PackageName "VideoLAN.VLC"
$InstallParams = @{
Name = $Vlc.Text
PackageName = "VideoLAN.VLC"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$MpcHc.Add_Click( { $MpcHc.Add_Click( {
Install-Package -Name $MpcHc.Text -PackageName "clsid2.mpc-hc"
$InstallParams = @{
Name = $MpcHc.Text
PackageName = "clsid2.mpc-hc"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$CPUZ.Add_Click( { $CPUZ.Add_Click( {
Install-Package -Name $CPUZ.Text -PackageName "CPUID.CPU-Z"
$InstallParams = @{
Name = $CPUZ.Text
PackageName = "CPUID.CPU-Z"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$GPUZ.Add_Click( { $GPUZ.Add_Click( {
Install-Package -Name $GPUZ.Text -PackageName "TechPowerUp.GPU-Z"
$InstallParams = @{
Name = $GPUZ.Text
PackageName = "TechPowerUp.GPU-Z"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$CrystalDiskInfo.Add_Click( { $CrystalDiskInfo.Add_Click( {
Install-Package -Name $CrystalDiskInfo.Text -PackageName "CrystalDewWorld.CrystalDiskInfo"
$InstallParams = @{
Name = $CrystalDiskInfo.Text
PackageName = "CrystalDewWorld.CrystalDiskInfo"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$CrystalDiskMark.Add_Click( { $CrystalDiskMark.Add_Click( {
Install-Package -Name $CrystalDiskMark.Text -PackageName "CrystalDewWorld.CrystalDiskMark"
$InstallParams = @{
Name = $CrystalDiskMark.Text
PackageName = "CrystalDewWorld.CrystalDiskMark"
InstallBlock = { winget install --silent --id $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$WSL2.Add_Click( { $WSL2.Add_Click( {
@ -1305,91 +902,35 @@ function PrepareGUI() {
}) })
$Ubuntu.Add_Click( { $Ubuntu.Add_Click( {
Install-Package -Name $Ubuntu.Text -PackageName "Ubuntu" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $Ubuntu.Text
PackageName = "Ubuntu"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Debian.Add_Click( { $Debian.Add_Click( {
Install-Package -Name $Debian.Text -PackageName "Debian" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $Debian.Text
PackageName = "Debian"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$KaliLinux.Add_Click( { $KaliLinux.Add_Click( {
Install-Package -Name $KaliLinux.Text -PackageName "kali-linux" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $KaliLinux.Text
PackageName = "kali-linux"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$OpenSuse.Add_Click( { $OpenSuse.Add_Click( {
Install-Package -Name $OpenSuse.Text -PackageName "openSUSE-42" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $OpenSuse.Text
PackageName = "openSUSE-42"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$SLES.Add_Click( { $SLES.Add_Click( {
Install-Package -Name $SLES.Text -PackageName "SLES-12" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $SLES.Text
PackageName = "SLES-12"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Ubuntu16LTS.Add_Click( { $Ubuntu16LTS.Add_Click( {
Install-Package -Name $Ubuntu16LTS.Text -PackageName "Ubuntu-16.04" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $Ubuntu16LTS.Text
PackageName = "Ubuntu-16.04"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Ubuntu18LTS.Add_Click( { $Ubuntu18LTS.Add_Click( {
Install-Package -Name $Ubuntu18LTS.Text -PackageName "Ubuntu-18.04" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $Ubuntu18LTS.Text
PackageName = "Ubuntu-18.04"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
$Ubuntu20LTS.Add_Click( { $Ubuntu20LTS.Add_Click( {
Install-Package -Name $Ubuntu20LTS.Text -PackageName "Ubuntu-20.04" -InstallBlock { wsl --install --distribution $Package }
$InstallParams = @{
Name = $Ubuntu20LTS.Text
PackageName = "Ubuntu-20.04"
InstallBlock = { wsl --install --distribution $Package }
}
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock
}) })
# Show the Window # Show the Window
@ -1404,17 +945,17 @@ function Main() {
Clear-Host # Clear the Powershell before it got an Output Clear-Host # Clear the Powershell before it got an Output
Quick-PrivilegesElevation # Check admin rights Quick-PrivilegesElevation # Check admin rights
LoadLibs # Import modules from lib folder Load-Libs # Import modules from lib folder
Unrestrict-Permissions # Unlock script usage Unrestrict-Permissions # Unlock script usage
Setup-ConsoleStyle # Make the console look cooler Setup-ConsoleStyle # Make the console look cooler
# Install Winget and Chocolatey already on the start # Install Winget and Chocolatey already on the start
Import-Module -DisableNameChecking .\"src\scripts\install-package-managers.ps1" -Force Import-Module -DisableNameChecking "$PSScriptRoot\src\scripts\install-package-managers.ps1" -Force
PrepareGUI # Load the GUI Prepare-GUI # Load the GUI
Write-Verbose "Restart: $Global:NeedRestart" Write-Verbose "Restart: $Global:NeedRestart"
If ($Global:NeedRestart) { If ($Global:NeedRestart) {
PromptPcRestart # Prompt options to Restart the PC Prompt-PcRestart # Prompt options to Restart the PC
} }
Restrict-Permissions # Lock script usage Restrict-Permissions # Lock script usage

@ -1,4 +1,3 @@
# function to() Check if a system is 32-bits or 64-bits or Something Else
function Check-OSArchitecture() { function Check-OSArchitecture() {
[CmdletBinding()] #<<-- This turns a regular function into an advanced function [CmdletBinding()] #<<-- This turns a regular function into an advanced function
@ -27,7 +26,6 @@ function Check-OSArchitecture() {
return $Architecture return $Architecture
} }
# function to() detect the current CPU
function Check-CPU() { function Check-CPU() {
[CmdletBinding()] #<<-- This turns a regular function into an advanced function [CmdletBinding()] #<<-- This turns a regular function into an advanced function
@ -50,7 +48,6 @@ function Check-CPU() {
return $CPU.Name return $CPU.Name
} }
# function to() detect the current GPU
function Check-GPU() { function Check-GPU() {
[CmdletBinding()] #<<-- This turns a regular function into an advanced function [CmdletBinding()] #<<-- This turns a regular function into an advanced function

@ -9,5 +9,7 @@ function Count-Nseconds() {
$Time..0 | ForEach-Object { Start-Sleep -Seconds 1 ; "$Msg $_ seconds..." } $Time..0 | ForEach-Object { Start-Sleep -Seconds 1 ; "$Msg $_ seconds..." }
} }
# Example: <#
# Count-Nseconds -Time 5 -Msg "This is closing in" Example:
Count-Nseconds -Time 5 -Msg "This is closing in"
#>

@ -5,7 +5,7 @@ function Install-Package() {
param ( param (
[String] $Name, [String] $Name,
[Array] $PackageName, [Array] $PackageName,
[String] $InstallBlock [String] $InstallBlock = { winget install --silent --id $Package }
) )
$DoneTitle = "Done" $DoneTitle = "Done"
@ -27,5 +27,6 @@ function Install-Package() {
<# <#
Example: Example:
Install-Package -Name $InstallParams.Name -PackageName $InstallParams.PackageName -InstallBlock $InstallParams.InstallBlock Install-Package -Name "Brave Browser" -PackageName "BraveSoftware.BraveBrowser"
Install-Package -Name "Multiple Packages" -PackageName @("Package1", "Package2", "Package3", ...) -InstallBlock { choco install -y $Package }
#> #>

@ -18,6 +18,8 @@ function Restrict-Permissions() {
Get-ExecutionPolicy -List Get-ExecutionPolicy -List
} }
# Example: <#
# Unrestrict-Permissions # to Unlock script usage Example:
# Restrict-Permissions # to Lock script usage Unrestrict-Permissions # to Unlock script usage
Restrict-Permissions # to Lock script usage
#>

@ -38,6 +38,28 @@ function Show-Question() {
return $Answer return $Answer
} }
# Example: function Prompt-PcRestart() {
# $Question = Show-Question -Title "Title" -Message "Message"
# Returns Yes or No or Cancel $Ask = "If you want to see the changes restart your computer!
Do you want to Restart now?"
switch (Show-Question -Title "Read carefully" -Message $Ask) {
'Yes' {
Write-Host "You choose to Restart now"
Restart-Computer
}
'No' {
Write-Host "You choose to Restart later"
}
'Cancel' {
# With Yes, No and Cancel, the user can press Esc to exit
Write-Host "You choose to Restart later"
}
}
}
<#
Example:
$Question = Show-Question -Title "Title" -Message "Message"
Returns Yes or No or Cancel
#>

@ -60,8 +60,10 @@ function Write-TitleCounter() {
} }
} }
# Example: <#
# Write-Title -Text "Text" Example:
# Write-Section -Text "Text" Write-Title -Text "Text"
# Write-Caption -Text "Text" Write-Section -Text "Text"
# Write-TitleCounter -Text "Text" -MaxNum 100 # First time only insert MaxNum Write-Caption -Text "Text"
Write-TitleCounter -Text "Text" -MaxNum 100 # First time only insert MaxNum
#>
Loading…
Cancel
Save