param ( [string[]]$collections ) $packages = @{ "common" = @( 'TheDocumentFoundation.LibreOffice' 'Mozilla.Firefox' 'Microsoft.PowerShell' 'VideoLAN.VLC' 'Microsoft.WindowsTerminal' 'RustDesk.RustDesk' '7zip.7zip' 'GIMP.GIMP' ) "classic" = @('Google.Chrome') "workstation" = @( 'FreeCAD.FreeCAD' 'Git.Git' 'gerardog.gsudo' 'Helix.Helix' 'Chocolatey.Chocolatey' 'KiCAD.KiCAD' 'Prusa3D.PrusaSlicer' 'Microsoft.VisualStudioCode' 'MartiCliment.UniGetUI' 'WireGuard.WireGuard' 'Bitwarden.Bitwarden' ) "gaming" = @('Valve.Steam') "nvidia" = @('Nvidia.GeForceExperience') } $args += $packages["common"] foreach ($collection in $collections) { if ($packages.ContainsKey($collection)) { $args += $packages[$collection] } else { Write-Host "Unknown collection: $collection" -ForegroundColor Yellow } } Write-Host "Installed collections: $collections" -ForegroundColor Cyan Write-Host "Installed packages: $args" -ForegroundColor Green winget install @args