Handle Microsoft Store winget sources (#4790)

This commit is contained in:
Chris Titus
2026-07-01 17:15:44 -05:00
committed by GitHub
parent 104c763132
commit c3b4f85fce
3 changed files with 103 additions and 6 deletions
+81
View File
@@ -161,6 +161,15 @@
"winget": "Cemu.Cemu", "winget": "Cemu.Cemu",
"foss": true "foss": true
}, },
"chatgpt": {
"category": "Development",
"choco": "na",
"content": "ChatGPT Desktop",
"description": "The official ChatGPT desktop app for Windows, distributed through the Microsoft Store.",
"link": "https://apps.microsoft.com/detail/9nt1r1c2hh7j",
"winget": "msstore:9NT1R1C2HH7J",
"foss": false
},
"chatterino": { "chatterino": {
"category": "Communications", "category": "Communications",
"choco": "chatterino", "choco": "chatterino",
@@ -188,6 +197,33 @@
"winget": "Hibbiki.Chromium", "winget": "Hibbiki.Chromium",
"foss": true "foss": true
}, },
"cinebenchr23": {
"category": "Pro Tools",
"choco": "na",
"content": "Cinebench R23",
"description": "Cinebench R23 is a benchmark tool for comparing CPU rendering performance across systems.",
"link": "https://www.maxon.net/en/cinebench",
"winget": "Maxon.CinebenchR23",
"foss": false
},
"claude": {
"category": "Development",
"choco": "claude",
"content": "Claude Desktop",
"description": "Anthropic's Claude desktop application for focused AI-assisted work and chat.",
"link": "https://claude.ai/download",
"winget": "Anthropic.Claude",
"foss": false
},
"claude-code": {
"category": "Development",
"choco": "claude-code",
"content": "Claude Code",
"description": "Anthropic's agentic coding tool for terminal and IDE development workflows.",
"link": "https://code.claude.com/",
"winget": "Anthropic.ClaudeCode",
"foss": false
},
"cmake": { "cmake": {
"category": "Development", "category": "Development",
"choco": "cmake", "choco": "cmake",
@@ -197,6 +233,15 @@
"winget": "Kitware.CMake", "winget": "Kitware.CMake",
"foss": true "foss": true
}, },
"codex": {
"category": "Development",
"choco": "codex",
"content": "Codex",
"description": "Codex CLI is an OpenAI coding agent that runs locally in your terminal.",
"link": "https://developers.openai.com/codex/cli",
"winget": "OpenAI.Codex",
"foss": true
},
"cpuz": { "cpuz": {
"category": "Pro Tools", "category": "Pro Tools",
"choco": "cpu-z", "choco": "cpu-z",
@@ -314,6 +359,15 @@
"winget": "Microsoft.DotNet.DesktopRuntime.10", "winget": "Microsoft.DotNet.DesktopRuntime.10",
"foss": true "foss": true
}, },
"dropbox": {
"category": "Utilities",
"choco": "dropbox",
"content": "Dropbox",
"description": "Dropbox is a cloud storage client for syncing files, sharing content, and keeping documents available across devices.",
"link": "https://www.dropbox.com/desktop",
"winget": "Dropbox.Dropbox",
"foss": false
},
"eaapp": { "eaapp": {
"category": "Games", "category": "Games",
"choco": "ea-app", "choco": "ea-app",
@@ -539,6 +593,15 @@
"winget": "DuongDieuPhap.ImageGlass", "winget": "DuongDieuPhap.ImageGlass",
"foss": true "foss": true
}, },
"internetdownloadmanager": {
"category": "Utilities",
"choco": "internet-download-manager",
"content": "Internet Download Manager",
"description": "Internet Download Manager is a download manager for accelerating, resuming, and scheduling file downloads.",
"link": "https://www.internetdownloadmanager.com/",
"winget": "Tonec.InternetDownloadManager",
"foss": false
},
"irfanview": { "irfanview": {
"category": "Multimedia Tools", "category": "Multimedia Tools",
"choco": "irfanview", "choco": "irfanview",
@@ -1285,6 +1348,15 @@
"winget": "SlackTechnologies.Slack", "winget": "SlackTechnologies.Slack",
"foss": false "foss": false
}, },
"startallback": {
"category": "Utilities",
"choco": "StartAllBack",
"content": "StartAllBack",
"description": "StartAllBack restores and improves Windows taskbar, Start menu, File Explorer, and shell UI behavior.",
"link": "https://www.startallback.com/",
"winget": "StartIsBack.StartAllBack",
"foss": false
},
"steam": { "steam": {
"category": "Games", "category": "Games",
"choco": "steam-client", "choco": "steam-client",
@@ -1573,6 +1645,15 @@
"winget": "Waterfox.Waterfox", "winget": "Waterfox.Waterfox",
"foss": true "foss": true
}, },
"whatsapp": {
"category": "Communications",
"choco": "na",
"content": "WhatsApp Desktop",
"description": "WhatsApp Desktop is the official Windows desktop messaging app from Meta, distributed through the Microsoft Store.",
"link": "https://apps.microsoft.com/detail/9nksqgp7f2nh",
"winget": "msstore:9NKSQGP7F2NH",
"foss": false
},
"wingetui": { "wingetui": {
"category": "Utilities", "category": "Utilities",
"choco": "wingetui", "choco": "wingetui",
@@ -8,9 +8,21 @@ Function Install-WinUtilProgramWinget {
[string[]]$Programs [string[]]$Programs
) )
if ($Action -eq 'Install') { foreach ($program in $Programs) {
Start-Process -FilePath winget -ArgumentList "install $Programs --accept-package-agreements --source winget --silent" -NoNewWindow -Wait if ([string]::IsNullOrWhiteSpace($program) -or $program -eq "na") {
} else { continue
Start-Process -FilePath winget -ArgumentList "uninstall $Programs --source winget --silent" -NoNewWindow -Wait }
$source = "winget"
if ($program.StartsWith("msstore:", [System.StringComparison]::OrdinalIgnoreCase)) {
$source = "msstore"
$program = $program.Substring("msstore:".Length)
}
if ($Action -eq 'Install') {
Start-Process -FilePath winget -ArgumentList @("install", "--id", $program, "--accept-package-agreements", "--accept-source-agreements", "--source", $source, "--silent") -NoNewWindow -Wait
} else {
Start-Process -FilePath winget -ArgumentList @("uninstall", "--id", $program, "--source", $source, "--silent") -NoNewWindow -Wait
}
} }
} }
@@ -28,12 +28,16 @@ Function Invoke-WinUtilCurrentSystem {
$originalEncoding = [Console]::OutputEncoding $originalEncoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new() [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
$Sync.InstalledPrograms = winget list -s winget | Select-Object -skip 3 | ConvertFrom-String -PropertyNames "Name", "Id", "Version", "Available" -Delimiter '\s{2,}' $Sync.InstalledPrograms = @("winget", "msstore") | ForEach-Object {
winget list -s $psitem | Select-Object -skip 3 | ConvertFrom-String -PropertyNames "Name", "Id", "Version", "Available" -Delimiter '\s{2,}'
}
[Console]::OutputEncoding = $originalEncoding [Console]::OutputEncoding = $originalEncoding
$filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "WPFInstall*"} $filter = Get-WinUtilVariables -Type Checkbox | Where-Object {$psitem -like "WPFInstall*"}
$sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object { $sync.GetEnumerator() | Where-Object {$psitem.Key -in $filter} | ForEach-Object {
$dependencies = @($sync.configs.applications.$($psitem.Key).winget -split ";") $dependencies = @($sync.configs.applications.$($psitem.Key).winget -split ";") | ForEach-Object {
$psitem -replace "^msstore:", ""
}
if ($dependencies[-1] -in $sync.InstalledPrograms.Id) { if ($dependencies[-1] -in $sync.InstalledPrograms.Id) {
Write-Output $psitem.name Write-Output $psitem.name