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' 'Mozilla.Thunderbird' 'WireGuard.WireGuard' 'Bitwarden.Bitwarden' 'Mikrotik.Winbox' 'Inkscape.Inkscape' ) "gaming" = @( 'Valve.Steam' 'Discord.Discord' ) "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