aran628
13a18eeeb2
Add maximaze button ( #4841 )
...
* Add maximize button logic and update assets
* Add maximize button with theming
* delelte logo
* Center and restyle the window control buttons
* Fix window state test setup
---------
Co-authored-by: aran628 <aran2014+@gmail.com >
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-15 16:59:51 -05:00
Chris Titus
822003d87f
Fix AppX detection and add package restore support ( #4842 )
...
* Fix installed AppX package detection
* Add AppX package restore workflow
* Add AppX operation progress feedback
* Fix AppX operation launch race
* Handle AppX workflow failures
2026-07-15 15:57:56 -05:00
Yayo Razo
c8c3c7869f
Add window-level progress indicator for Run Tweaks and Undo ( #4830 )
...
* feat(tweaks): add window-level progress indicator for Run Tweaks and Undo
* Hide completed tweaks progress on next action
---------
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-15 14:17:42 -05:00
Paweł Gwozdowski
157a66b14d
Update Invoke-WPFUIElements.ps1 ( #4824 )
2026-07-13 13:20:53 -05:00
Omar
9791386f53
fix: resolve silent failures in AppX removal and PS7 DISM bugs ( #4822 )
...
* fix: resolve silent failures in AppX removal and PS7 DISM bugs
- Fixed a bug where Remove-AppxPackage failed silently in PowerShell 7 due to pipeline binding issues. We now explicitly loop through Get-AppxPackage results and pass PackageFullName directly.
- Added wildcard matching to Get-AppxPackage and Get-AppxProvisionedPackage to reliably locate packages regardless of short name vs family name variations.
- Offloaded Get-AppxProvisionedPackage and Remove-AppxProvisionedPackage execution to Windows PowerShell 5.1 (powershell.exe) to bypass PowerShell 7 DISM COM exceptions ("Class not registered") and performance hangs.
- Deduplicated AppX removal logic by calling Remove-WinUtilAPPX directly from Invoke-WPFAppxRemoval instead of copying the implementation.
* refactor(Remove-WinUtilAPPX): use script block to improve readability
* feat: enhance AppX removal process and add provisioned package removal function
* fix(tests): update AppX removal tests
This also adds tests for the new Remove-WinUtilProvisionedAPPX functionality
* Move AppX removal under Tweaks
* Address AppX removal review feedback
* Complete AppX removal error handling
* Prevent AppX cleanup confirmation prompts
---------
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-13 13:16:35 -05:00
Yayo Razo
90a19685f5
fix(install): use correctly-scoped $app instead of undefined $Apps in app entry rendering ( #4834 )
2026-07-13 04:23:24 -05:00
Vyas Devgna
007995c112
Improve install app card UI ( #4771 )
...
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-11 11:21:59 -05:00
Gabi
9fed8d1c4c
Reapply font scaling after theme change ( #4782 )
2026-07-04 00:29:22 -05:00
Paweł Gwozdowski
27e590577b
fix: make tweak/feature link (?) follow font scaling ( #4700 )
...
* Update Invoke-WPFUIElements.ps1
* Update Invoke-WPFUIElements.ps1
* Update Invoke-WPFUIElements.ps1
Update Invoke-WPFUIElements.ps1
* Fix tweak link margin scaling
---------
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-03 23:51:11 -05:00
Gabi
7a72c73906
Talk about "PowerShell 7 from the Microsoft Store" inside of KnownIssues.md ( #4758 )
...
* Talk about "PowerShell 7 from the Microsoft Store" inside of KnownIssues.md
* Update Invoke-WinUtilInstallPSProfile.ps1
* Update KnownIssues.md
* Update KnownIssues.md
* Update KnownIssues.md
2026-07-02 15:25:08 -05:00
Chris Titus
32891ada55
Fix DHCP DNS reset handling ( #4800 )
2026-07-02 15:24:14 -05:00
Gabi
de6652adc0
Remove local file preference storage and cleanup Invoke-WinutilThemeChange ( #4617 )
...
* Remove local file preference storage
* Update main.ps1
* Update main.ps1
* Update Set-Preferences.ps1
* Update main.ps1
* Update Set-Preferences.ps1
* Update main.ps1
* Delete functions/private/Set-Preferences.ps1
* simplify Invoke-WinutilThemeChange.ps1
* fix foss highlight in Invoke-WinutilThemeChange.ps1
* Update Invoke-WinutilThemeChange.ps1
* Update Invoke-WinutilThemeChange.ps1
* Update main.ps1
---------
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-02 13:04:50 -05:00
Gabi
727ba52a4d
Deleted Test-WinUtilPackageManager.ps1 + custom winget and choco installs + remove winget/choco enums and exeptions ( #4606 )
...
* Update Invoke-WPFGetInstalled.ps1
* Update Install-WinUtilWinget.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilWinget.ps1
* Delete functions/private/Test-WinUtilPackageManager.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilWinget.ps1
* Update Install-WinUtilChoco.ps1
* Update Invoke-WPFGetInstalled.ps1
* Update Invoke-WPFGetInstalled.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilWinget.ps1
* Update Install-WinUtilWinget.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilWinget.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilWinget.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilChoco.ps1
* Update Install-WinUtilWinget.ps1
* Fixed lastrun.json
* refactor: remove PackageManagers enum and unused custom exception classes
* Update Invoke-WPFUIElements.ps1
* Update Get-WinUtilSelectedPackages.ps1
* Update Set-Preferences.ps1
* Update main.ps1
* Complete package manager enum removal
Use string package-manager preferences throughout the remaining helpers and focused tests. Restore the existing Winget install flow and package-manager probe helper so PR 4606 keeps the current WinGet repair method.
* Fix string keyed package split
---------
Co-authored-by: Chris Titus <contact@christitus.com >
2026-07-02 12:50:57 -05:00
Chris Titus
58d37bb461
Clean up analyzer warnings across app search and ISO workflows ( #4794 )
...
* Clean up analyzer warnings
* Align analyzer warning cleanup policy
* Run PSScriptAnalyzer directly in unittests workflow
* Bind lazy-rendered buttons to click handlers
* Remove WinUtil performance tracing
* Fix Win11 ISO creator temp directory reuse
2026-07-02 12:05:25 -05:00
Chris Titus
93dc23dd66
Speed up runspace and tab initialization ( #4793 )
...
* Add startup performance tracing
* Lazy initialize non-default tabs
* Render install app entries incrementally
* Defer and cache toggle status checks
* Clean up runspace invocation ownership
* Defer GUI runspace pool startup
* Defer status taskbar asset rendering
* Record final speed verification
* Fix deferred install render timer callback
* Add dispatcher smoke coverage for install rendering
* Replace install render timer with dispatcher callbacks
* Gate performance tracing behind compile switch
* Clean up analyzer warnings in speed changes
* Speed up runspace and tab initialization
2026-07-01 23:34:59 -05:00
Chris Titus
2cb20893fc
Expand Pester coverage across install, tweaks, and UI workflows ( #4792 )
...
* Harden Pester CI and discard runspace return values
* Add prioritized test backlog
* Add WinUtil action logging
* Add config integrity tests
* Add XAML control wiring tests
* Add registry and service helper tests
* Add package manager tests
* Add runspace behavior tests
* Add tweak orchestration tests
* Add install workflow tests
* Add update profile tests
* Add AppX removal tests
* Log package installer output
* Add UI state helper tests
* Pin Pester test runner version
* Expand Win11 Creator tests
* Add preferences and theme tests
* Add search filter tests
* Add compile contract tests
* Use single WinUtil session log
* Remove installer output logging helper
* Handle locked WinUtil transcript log
* Avoid appending to active transcript log
* Log install uninstall package identities
2026-07-01 21:49:15 -05:00
Chris Titus
c3b4f85fce
Handle Microsoft Store winget sources ( #4790 )
2026-07-01 17:15:44 -05:00
Chris Titus
104c763132
Fix Win11 Creator product-key validation failures ( #4791 )
...
* feat: Enhance Win11 Creator with edition ID handling and update autounattend.xml generation
* Strengthen Pester coverage for config and function files
2026-07-01 17:15:26 -05:00
Gabi
7c71a39f7a
Feature/appx removal tab ( #4729 )
...
* feat: add config-driven AppX package removal tab
- Add config/appx.json with curated list of removable AppX packages
- Add AppX Removal tab (WPFTab6) with Select All, Clear, and Remove buttons
- Reuse existing Invoke-WPFUIElements engine for minimal code footprint
- Add Invoke-WPFAppxRemoval.ps1 for background runspace package removal
- Add theme colors for the new tab button in light and dark modes
* yep
* yep
* yep
* yep
* Update inputXML.xaml
* Update Invoke-WPFButton.ps1
* Update Invoke-WPFButton.ps1
* Update Invoke-WPFSelectedCheckboxesUpdate.ps1
* Update appx.json
* Update appx.json
* Update appx.json
* Update tweaks.json
* Update appx.json
* Update appx.json
* Update appx.json
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFButton.ps1
* Delete functions/public/Invoke-WPFAppxRemoval.ps1
* Revert "Update Invoke-WPFButton.ps1"
This reverts commit d8705cc08e .
* Revert "Delete functions/public/Invoke-WPFAppxRemoval.ps1"
This reverts commit 9e45d1ad99 .
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFButton.ps1
* yep
* Update appx.json
* Update appx.json
* Update tweaks.json
* Update start.ps1
* Update preset.json
* Update tweaks.json
* yep
* yep
* yep
* yep
* yep
* yep
* Update Invoke-WPFAppxRemoval.ps1
* Update Update-WinUtilSelections.ps1
* Update Update-WinUtilSelections.ps1
* yep
* Update Invoke-WPFAppxRemoval.ps1
* yep
* yep
* Update Invoke-WPFAppxRemoval.ps1
* Update appx.json
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update appx.json
* Update Invoke-WPFGetInstalled.ps1
* Update Invoke-WPFAppxRemoval.ps1
* yep
* yep
* Update Invoke-WPFSelectedCheckboxesUpdate.ps1
* yep
* yep
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* yep
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update appx.json
* Update Invoke-WPFImpex.ps1
* Update Invoke-WPFImpex.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update preset.json
* Update preset.json
* Update Invoke-WPFSelectedCheckboxesUpdate.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update tweaks.json
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* Update Invoke-WPFAppxRemoval.ps1
* yep
* yep
* Update Invoke-WPFAppxRemoval.ps1
* yep
* Delete functions/private/Find-AppxByNameOrDescription.ps1
* yep
* Update Invoke-WPFButton.ps1
* Update main.ps1
* Update Invoke-WPFTab.ps1
* yep
* yep
* Update themes.json
2026-07-01 12:13:32 -05:00
Gabi
5003f14e0a
update edge uninstall ( #4666 )
...
* yep
* Update tweaks.json
* Update tweaks.json
* Update tweaks.json
* Update tweaks.json
* Update tweaks.json
* Update tweaks.json
2026-06-29 10:33:31 -05:00
Gabi
7f0d2183e3
fix import not working ( #4762 )
2026-06-26 18:33:38 -05:00
Gabi
47f06e34e3
Deleted lastrun.json ( #4714 )
...
* Update Invoke-WPFtweaksbutton.ps1
* Update main.ps1
* Update tweaks.json
* Update tweaks.json
* Update tweaks.json
2026-06-22 14:46:38 -05:00
Gabi
d7cc5981e0
allow uninstallation of edge trough install tab ( #4716 )
...
* unlock edge uninstall whenever the user trys to uninstall edge trough install tab
* Update Invoke-WPFUnInstall.ps1
2026-06-22 14:33:09 -05:00
Gabi
51d7350e35
Fix Add-SelectedAppsMenuItem's spaces ( #4707 )
2026-06-22 14:28:39 -05:00
4hm3dn3d41
376156f072
Rework foss filtering ( #4696 )
...
* Replace FOSS highlight toggle with inline label
Remove the separate "Highlight FOSS" toggle and its theming logic, and instead append an inline "- FOSS" label to FOSS app entries. Changes: remove WPFToggleFOSSHighlight from app navigation and related event handlers, delete FOSSColor resource updates in theme code and button handler, simplify checkbox setup in Invoke-WPFUIElements by removing the special-case toggle logic, and update Initialize-InstallAppEntry to build a horizontal panel containing the app name plus a small green "- FOSS" TextBlock for FOSS items. This consolidates FOSS indication into the item UI and cleans up toggle/theme handling.
* Add inline FOSS label to app entries
Replace the separate StackPanel/TextBlock used for the FOSS indicator with an inline System.Windows.Documents.Run appended to the app name. The run is styled (green RGB(76,175,80) and FontSize=10) and the checkbox content assignment was moved outside the conditional so the appName (with optional FOSS run) is always used. Cleaned up related comments to reflect the FOSS label change.
* Add FOSS note type with green bullet
Added FOSS notes in the UI and FOSS labels with a green bullet instead of the text '#FOSS'
* Use larger circle glyph; remove italic text
Replaced the FOSS and list bullet glyphs with a larger circle for better visual consistency and removed the italic styling
* Update FOSS/bullet glyphs, colors and sizes
Updated FOSS/list bullet styling by switching glyphs from U+2B24 to U+25CF, increasing size (10→11.5), and adjusting bullet/text colors for better visibility and consistency across.
2026-06-22 14:23:09 -05:00
Paweł Gwozdowski
aefbf1a847
standardize console message punctuation and capitalization ( #4680 )
2026-06-22 14:17:23 -05:00
Gabi
8eadd527ad
Stop using temp varible ( #4645 )
...
* Update Invoke-WPFOOSU.ps1
* Update Invoke-WPFPanelAutologin.ps1
2026-06-22 14:03:00 -05:00
Paweł Gwozdowski
a280ddb1fa
correct case of "WinUtil" in GUI / user-facing messages ( #4675 )
...
* WinUtil in .ps1
* WinUtil in GUI
* Update KnownIssues.md
2026-06-09 12:22:56 -05:00
Gabi
01ef78915a
Remove -NoUi ( #4572 )
...
* Made -NoUi not exit the window
* Update start.ps1
* Update main.ps1
* Update main.ps1
* Update Set-WinUtilProgressbar.ps1
* Update Invoke-WPFImpex.ps1
* Update Invoke-WPFUIThread.ps1
* Update start.ps1
* Update Invoke-WPFUIThread.ps1
* Update main.ps1
* Update main.ps1
2026-06-08 10:02:35 -05:00
CodingWonders
297b3079e5
Fix slop remains ( #4640 )
...
* Fix slop remains
Chris likes to vibe code. AI likes to use different types of dashes (em-dashes, en-dashes), instead of regular dashes (-).
On PowerShell 7 this appears to work. The parser doesn't care. But, what about PowerShell 5? It begins throwing errors about the ampersand. Loading it in the ISE reveals how it stops parsing the syntax correctly when it encounters em-dashes. Rather than displaying them as such, the ISE displays them as —.
Chris, if you want to vibe code, I don't mind. But at least use regular dashes.
Anyway, I won't fix the AI code. I just want to make it work on my beloved powershell 5.
* Apparently this file is important
2026-06-08 09:43:04 -05:00
Vyas Devgna
e4d305284b
feat: detect reverted tweaks on startup ( #4582 )
...
Co-authored-by: vyas-devgna <vyas-devgna@users.noreply.github.com >
2026-06-04 15:28:37 -05:00
Gabi
26f3284919
Show ctt logo instantly ( #4603 )
...
* Update main.ps1
* Delete functions/public/Show-CTTLogo.ps1
* Update main.ps1
* Update main.ps1
2026-06-03 16:09:44 -05:00
Gabi
ceec8aeb53
Update Invoke-WPFPanelAutologin.ps1 ( #4596 )
2026-06-03 13:45:16 -05:00
Gabi
6b125346cd
Simplify Invoke-WPFFixesNetwork.ps1 ( #4594 )
...
* Update Invoke-WPFFixesNetwork.ps1
* Update Invoke-WPFFixesNetwork.ps1
2026-06-03 13:44:21 -05:00
Gabi
4db0248911
Simplify Invoke-WPFOOSU.ps1 ( #4593 )
...
* Simplify Invoke-WPFOOSU.ps1
* Update Invoke-WPFOOSU.ps1
2026-06-03 13:43:15 -05:00
Gabi
2bee0d6f2c
Update Invoke-WinUtilSponsors.ps1 ( #4589 )
2026-06-03 13:36:42 -05:00
Gabi
0e061692ba
Made "Upgrade all applications" not exit after completion ( #4575 )
...
* Update Invoke-WPFInstallUpgrade.ps1
* Update Test-WinUtilPackageManager.ps1
* Update Test-WinUtilPackageManager.ps1
2026-06-03 13:23:46 -05:00
Gabi
9b72c1e2de
Added advanced preset to tweaks ( #4538 )
...
* Update preset.json
* Update Invoke-WPFButton.ps1
* Update inputXML.xaml
2026-05-26 15:21:12 -05:00
Gabi
459d0fd1b2
Fixed Get-WinUtilToggleStatus.ps1 displaying incorrect infromation for tweaks ( #4522 )
...
* Fixed Get-WinUtilToggleStatus.ps1 displaying incorrect infromation of tweaks
* Update Get-WinUtilToggleStatus.ps1
* Update Get-WinUtilToggleStatus.ps1
* Update Get-WinUtilToggleStatus.ps1
* Update Get-WinUtilToggleStatus.ps1
2026-05-26 15:05:25 -05:00
Gabi
2582f094ff
Powerplan fix ( #4521 )
...
* Update Invoke-WPFUltimatePerformance.ps1
* Update Invoke-WPFButton.ps1
* Update Invoke-WPFUltimatePerformance.ps1
* Update KnownIssues.md
* Update KnownIssues.md
* Update Invoke-WPFUltimatePerformance.ps1
* Update Invoke-WPFUltimatePerformance.ps1
* Update Invoke-WPFUltimatePerformance.ps1
* Update tweaks.json
2026-05-26 15:00:33 -05:00
Chris Titus
5aa099f6e2
Fix missing dism metadata ( #4516 )
...
* Fix product key invalid and missing metadata on some isos
* Fix Gabi's broken light mode pr
2026-05-19 14:11:27 -05:00
Sree Sankar S
c765ffb317
Add minimize button to WinUtil window ( #4508 )
2026-05-19 13:26:54 -05:00
Gabi
8034e85521
Remove Write-Debug ( #4498 )
...
* Update Invoke-WinUtilCurrentSystem.ps1
* Update Invoke-WinUtilFontScaling.ps1
* Update Invoke-WinUtilTweaks.ps1
* Update Reset-WPFCheckBoxes.ps1
* Update Set-Preferences.ps1
* Update Update-WinUtilSelections.ps1
* Update Invoke-WPFSelectedCheckboxesUpdate.ps1
* Update Invoke-WPFtweaksbutton.ps1
* Update main.ps1
* Update main.ps1
* Update main.ps1
* Update main.ps1
* Update main.ps1
* Merge branch 'main' into Remove-Write-Debug
2026-05-19 13:16:06 -05:00
Gabi
a09736f9a8
Cleanup Get-WinUtilToggleStatus.ps1 ( #4497 )
...
* Cleanup Get-WinUtilToggleStatus.ps1
* Update Get-WinUtilToggleStatus.ps1
* Merge branch 'main' into patch-9
* Update Get-WinUtilToggleStatus.ps1
2026-05-19 13:13:27 -05:00
Gabi
24aaf9a3cf
Cleanup Get-WinUtilSelectedPackages.ps1 and remove annoying messages ( #4496 )
...
* Cleanup Get-WinUtilSelectedPackages.ps1 and remove annoying messages
* Update Get-WinUtilSelectedPackages.ps1
* Update Get-WinUtilSelectedPackages.ps1
* Update Get-WinUtilSelectedPackages.ps1
* Merge branch 'main' into patch-8
* Update Get-WinUtilSelectedPackages.ps1
* Update Get-WinUtilSelectedPackages.ps1
* Update Get-WinUtilSelectedPackages.ps1
* Update Get-WinUtilSelectedPackages.ps1
2026-05-19 13:07:10 -05:00
Nazrul Islam
743f9e3783
Refactor: Secure literal search and defensive scope handling ( #4492 )
...
* Refactor: Secure literal search and defensive scope handling
* Refactor: Secure literal search for Tweaks Tab
* Merge branch 'ChrisTitusTech:main' into fix-search-security
2026-05-19 12:56:58 -05:00
Gabi
6c1cb0caab
Deleted unused functions ( #4482 )
...
* Delete functions/private/Get-LocalizedYesNo.ps1
* Delete functions/private/Get-WPFObjectName.ps1
* Merge branch 'main' into patch-4
2026-05-19 12:36:49 -05:00
Gabi
bcafbe6234
CleanUp Invoke-WinUtilFeatureInstall.ps1 and fix typo ( #4481 )
...
* CleanUp Invoke-WinUtilFeatureInstall.ps1
* Update Invoke-WinUtilFeatureInstall.ps1
* Update feature.json
2026-05-19 12:34:04 -05:00
Gabi
d46d324df8
Cleanup programs install ( #4465 )
...
* Cleanup programs install
* Update Install-WinUtilProgramChoco.ps1
2026-05-12 13:06:13 -05:00
Gabi
e6d8fdff75
fix import ( #4447 )
...
* Made -Config use Runspaces main.ps1
* Fix no-UI config autorun
* Skip empty no-UI autorun sections
* Update Invoke-WinUtilAutoRun.ps1
* Ignore blank DNS selection during autorun
* Update main.ps1
* Update Invoke-WPFRunspace.ps1
* Update Invoke-WPFRunspace.ps1
* Update Invoke-WinUtilAutoRun.ps1
* Update Invoke-WinUtilAutoRun.ps1
* Update Invoke-WPFtweaksbutton.ps1
* Update start.ps1
* Update main.ps1
* Update Invoke-WPFtweaksbutton.ps1
* Update Invoke-WPFRunspace.ps1
* Update _index.md
* Merge branch 'ChrisTitusTech:main' into patch-3
* Merge branch 'ChrisTitusTech:main' into patch-3
2026-05-12 12:58:46 -05:00