From 97e0711034acb442182963255c017ff2e9bfe838 Mon Sep 17 00:00:00 2001
From: Omar <90123670+mewclouds@users.noreply.github.com>
Date: Mon, 3 Aug 2026 20:07:56 -0400
Subject: [PATCH] Restore Document category and applications (#4902)
* feat: restore document category
Moves existing document-focused apps into the Document category and adds its filter chip.
* feat: restore document applications
Restores reviewed document-focused apps removed in PR #4451.
* chore: update apps list as per code review comments
This also updates the link for PDF24 Creator
* test: verify document category filter wiring
Covers the Document filter handler and config category presence.
* fix: categorize Calibre as multimedia
Keeps the e-book reader in Multimedia Tools.
---
config/applications.json | 111 ++++++++++++++++++++++++++++++++++++---
pester/xaml.Tests.ps1 | 10 ++++
scripts/main.ps1 | 1 +
xaml/inputXML.xaml | 1 +
4 files changed, 117 insertions(+), 6 deletions(-)
diff --git a/config/applications.json b/config/applications.json
index 19149f06..9d0f50e7 100644
--- a/config/applications.json
+++ b/config/applications.json
@@ -18,7 +18,7 @@
"foss": true
},
"adobe": {
- "category": "Multimedia Tools",
+ "category": "Document",
"choco": "adobereader",
"content": "Adobe Acrobat Reader",
"description": "Adobe Acrobat Reader is a free PDF viewer with essential features for viewing, printing, and annotating PDF documents.",
@@ -458,6 +458,15 @@
"winget": "flux.flux",
"foss": false
},
+ "foxpdfreader": {
+ "category": "Document",
+ "choco": "foxitreader",
+ "content": "Foxit PDF Reader",
+ "description": "Foxit PDF Reader is a free PDF viewer with a familiar ribbon-style interface.",
+ "link": "https://www.foxit.com/pdf-reader/",
+ "winget": "Foxit.FoxitReader",
+ "foss": false
+ },
"geforcenow": {
"category": "Games",
"choco": "nvidia-geforce-now",
@@ -701,6 +710,15 @@
"winget": "sylikc.JPEGView",
"foss": true
},
+ "joplin": {
+ "category": "Document",
+ "choco": "joplin",
+ "content": "Joplin",
+ "description": "Joplin is an open-source note-taking and to-do application with synchronization capabilities.",
+ "link": "https://joplinapp.org/",
+ "winget": "Joplin.Joplin",
+ "foss": true
+ },
"keepassxc": {
"category": "Utilities",
"choco": "keepassxc",
@@ -738,7 +756,7 @@
"foss": true
},
"libreoffice": {
- "category": "Multimedia Tools",
+ "category": "Document",
"choco": "libreoffice-fresh",
"content": "LibreOffice",
"description": "LibreOffice is a powerful and free office suite, compatible with other major office suites.",
@@ -882,9 +900,9 @@
"foss": true
},
"naps2": {
- "category": "Multimedia Tools",
+ "category": "Document",
"choco": "naps2",
- "content": "NAPS2 (Document Scanner)",
+ "content": "NAPS2 (Scanner)",
"description": "NAPS2 is a document scanning application that simplifies the process of creating electronic documents.",
"link": "https://www.naps2.com/",
"winget": "Cyanfish.NAPS2",
@@ -980,7 +998,7 @@
"foss": true
},
"obsidian": {
- "category": "Multimedia Tools",
+ "category": "Document",
"choco": "obsidian",
"content": "Obsidian",
"description": "Obsidian is a powerful note-taking and knowledge management application.",
@@ -988,6 +1006,15 @@
"winget": "Obsidian.Obsidian",
"foss": false
},
+ "okular": {
+ "category": "Document",
+ "choco": "okular",
+ "content": "Okular",
+ "description": "Okular is a versatile document viewer with advanced features.",
+ "link": "https://okular.kde.org/",
+ "winget": "KDE.Okular",
+ "foss": true
+ },
"onedrive": {
"category": "Microsoft Tools",
"choco": "onedrive",
@@ -998,7 +1025,7 @@
"foss": false
},
"onlyoffice": {
- "category": "Multimedia Tools",
+ "category": "Document",
"choco": "onlyoffice",
"content": "ONLYOFFICE Desktop",
"description": "ONLYOFFICE Desktop is a comprehensive office suite for document editing and collaboration.",
@@ -1087,6 +1114,42 @@
"winget": "Giorgiotani.Peazip",
"foss": true
},
+ "pdf-xchange": {
+ "category": "Document",
+ "choco": "pdfxchangeeditor",
+ "content": "PDF-XChange Editor",
+ "description": "A comprehensive Windows-based software suite and editor for creating, viewing, editing, annotating, and signing PDF files.",
+ "link": "https://www.pdf-xchange.com/",
+ "winget": "TrackerSoftware.PDF-XChangeEditor",
+ "foss": false
+ },
+ "pdf24creator": {
+ "category": "Document",
+ "choco": "pdf24",
+ "content": "PDF24 Creator",
+ "description": "Free and easy-to-use online/desktop PDF tools that make you more productive",
+ "link": "https://tools.pdf24.org/en/creator",
+ "winget": "geeksoftwareGmbH.PDF24Creator",
+ "foss": false
+ },
+ "pdfgear": {
+ "category": "Document",
+ "choco": "pdfgear",
+ "content": "PDFgear",
+ "description": "PDFgear is a piece of full-featured PDF management software for Windows, macOS, and mobile, and it's completely free to use.",
+ "link": "https://www.pdfgear.com/",
+ "winget": "PDFgear.PDFgear",
+ "foss": false
+ },
+ "pdfsam": {
+ "category": "Document",
+ "choco": "pdfsam",
+ "content": "PDFsam Basic",
+ "description": "PDFsam Basic is a free and open-source tool for splitting, merging, and rotating PDF files.",
+ "link": "https://pdfsam.org/",
+ "winget": "PDFsam.PDFsam",
+ "foss": true
+ },
"playnite": {
"category": "Games",
"choco": "playnite",
@@ -1339,6 +1402,15 @@
"winget": "WhirlwindFX.SignalRgb",
"foss": false
},
+ "simplenote": {
+ "category": "Document",
+ "choco": "simplenote",
+ "content": "Simplenote",
+ "description": "Simplenote is an easy way to keep notes, lists, ideas and more.",
+ "link": "https://simplenote.com/",
+ "winget": "Automattic.Simplenote",
+ "foss": true
+ },
"simplewall": {
"category": "Pro Tools",
"choco": "simplewall",
@@ -1384,6 +1456,15 @@
"winget": "SublimeHQ.SublimeText.4",
"foss": false
},
+ "sumatra": {
+ "category": "Document",
+ "choco": "sumatrapdf",
+ "content": "Sumatra PDF",
+ "description": "Sumatra PDF is a lightweight and fast PDF viewer with minimalistic design.",
+ "link": "https://www.sumatrapdfreader.org/free-pdf-reader.html",
+ "winget": "SumatraPDF.SumatraPDF",
+ "foss": true
+ },
"sunshine": {
"category": "Selfhosted Tools",
"choco": "sunshine",
@@ -1726,6 +1807,15 @@
"winget": "MHNexus.HxD",
"foss": false
},
+ "xournal": {
+ "category": "Document",
+ "choco": "xournalplusplus",
+ "content": "Xournal++",
+ "description": "Xournal++ is an open-source handwriting notetaking software with PDF annotation capabilities.",
+ "link": "https://xournalpp.github.io/",
+ "winget": "Xournal++.Xournal++",
+ "foss": true
+ },
"yarn": {
"category": "Development",
"choco": "yarn",
@@ -1807,6 +1897,15 @@
"winget": "ZedIndustries.Zed",
"foss": true
},
+ "zotero": {
+ "category": "Document",
+ "choco": "zotero",
+ "content": "Zotero",
+ "description": "Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share your research materials.",
+ "link": "https://www.zotero.org/",
+ "winget": "DigitalScholar.Zotero",
+ "foss": true
+ },
"deskflow": {
"category": "Utilities",
"choco": "deskflow",
diff --git a/pester/xaml.Tests.ps1 b/pester/xaml.Tests.ps1
index 736c4bed..010ff099 100644
--- a/pester/xaml.Tests.ps1
+++ b/pester/xaml.Tests.ps1
@@ -142,6 +142,7 @@ Describe "XAML document" {
"WPFSearchChipBrowsers",
"WPFSearchChipCommunications",
"WPFSearchChipDevelopment",
+ "WPFSearchChipDocument",
"WPFSearchChipGames",
"WPFSearchChipMicrosoftTools",
"WPFSearchChipMultimediaTools",
@@ -179,6 +180,15 @@ Describe "XAML document" {
}
}
+ It "wires the Document search chip to an existing Document category" {
+ $mainScript = Get-Content -Path $script:mainScriptPath -Raw
+ $mainScript | Should -Match '\$sync\["WPFSearchChipDocument"\]\.Add_Click\(\{ Set-WinUtilAppCategoryFilter -Category "Document" \}\)'
+
+ $applications = Get-WinUtilConfigObject -Name "applications"
+ $categories = @($applications.PSObject.Properties | ForEach-Object { $_.Value.category } | Sort-Object -Unique)
+ $categories | Should -Contain "Document"
+ }
+
It "presents the three Updates profiles with accurate action labels" {
$updatesTab = $script:xaml.SelectSingleNode('//*[local-name()="TabItem"][@Name="WPFTab4"]')
$profileGrid = $updatesTab.SelectSingleNode('.//*[local-name()="UniformGrid"]')
diff --git a/scripts/main.ps1 b/scripts/main.ps1
index 887b1e26..e3f14dec 100644
--- a/scripts/main.ps1
+++ b/scripts/main.ps1
@@ -368,6 +368,7 @@ $sync["WPFSearchChipAll"].Add_Click({ Set-WinUtilAppCategoryFilter })
$sync["WPFSearchChipBrowsers"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Browsers" })
$sync["WPFSearchChipCommunications"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Communications" })
$sync["WPFSearchChipDevelopment"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Development" })
+$sync["WPFSearchChipDocument"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Document" })
$sync["WPFSearchChipGames"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Games" })
$sync["WPFSearchChipMicrosoftTools"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Microsoft Tools" })
$sync["WPFSearchChipMultimediaTools"].Add_Click({ Set-WinUtilAppCategoryFilter -Category "Multimedia Tools" })
diff --git a/xaml/inputXML.xaml b/xaml/inputXML.xaml
index 30994e75..a3667c56 100644
--- a/xaml/inputXML.xaml
+++ b/xaml/inputXML.xaml
@@ -1326,6 +1326,7 @@
+