mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2026-10-08 11:39:10 +11:00
Kitchen sink changes (#5040)
* docs: fix typo in contributing image asset and markdown references * docs: fix typos and grammatical phrasing in documentation * fix(config): correct typographical errors in tweak and app descriptions * fix(scripts): resolve typos and grammatical errors in PowerShell sources * fix: address review feedback on Outlook description, WinUtil capitalization, and grammar
This commit is contained in:
@@ -91,7 +91,7 @@ graph TD
|
|||||||
* Run the following command to compile and run WinUtil:
|
* Run the following command to compile and run WinUtil:
|
||||||
* `.\Compile.ps1 -run`
|
* `.\Compile.ps1 -run`
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
Open PowerShell as Administrator.
|
Open PowerShell as Administrator.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ A curated compilation of Windows system tasks streamline **installs**, debloat w
|
|||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
> **WinUtil must be run as Administrator** Because it performs system-wide changes.
|
> **WinUtil must be run as Administrator** because it performs system-wide changes.
|
||||||
|
|
||||||
Open PowerShell or Terminal as admin, then run:
|
Open PowerShell or Terminal as admin, then run:
|
||||||
|
|
||||||
|
|||||||
@@ -1406,7 +1406,7 @@
|
|||||||
"category": "Document",
|
"category": "Document",
|
||||||
"choco": "qownnotes",
|
"choco": "qownnotes",
|
||||||
"content": "QOwnNotes",
|
"content": "QOwnNotes",
|
||||||
"description": "QOwnNotes is a free open-source note taking app with Nextcloud/ownCloud integration.",
|
"description": "QOwnNotes is a free open-source note-taking app with Nextcloud/ownCloud integration.",
|
||||||
"link": "https://www.qownnotes.org/",
|
"link": "https://www.qownnotes.org/",
|
||||||
"winget": "pbek.QOwnNotes",
|
"winget": "pbek.QOwnNotes",
|
||||||
"foss": true
|
"foss": true
|
||||||
@@ -1793,7 +1793,7 @@
|
|||||||
"category": "Communications",
|
"category": "Communications",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "Vesktop",
|
"content": "Vesktop",
|
||||||
"description": "A cross platform electron-based desktop app aiming to give you a snappier Discord experience with Vencord pre-installed.",
|
"description": "A cross-platform electron-based desktop app aiming to give you a snappier Discord experience with Vencord pre-installed.",
|
||||||
"link": "https://vesktop.dev",
|
"link": "https://vesktop.dev",
|
||||||
"winget": "Vencord.Vesktop",
|
"winget": "Vencord.Vesktop",
|
||||||
"foss": true
|
"foss": true
|
||||||
|
|||||||
+2
-2
@@ -854,7 +854,7 @@
|
|||||||
},
|
},
|
||||||
"WPFTweaksEndTaskOnTaskbar": {
|
"WPFTweaksEndTaskOnTaskbar": {
|
||||||
"Content": "End Task With Right Click - Enable",
|
"Content": "End Task With Right Click - Enable",
|
||||||
"Description": "Enables option to end task when right clicking a program in the taskbar.",
|
"Description": "Enables option to end task when right-clicking a program in the taskbar.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"registry": [
|
"registry": [
|
||||||
@@ -1385,7 +1385,7 @@
|
|||||||
},
|
},
|
||||||
"WPFToggleNewOutlook": {
|
"WPFToggleNewOutlook": {
|
||||||
"Content": "Microsoft Outlook New Version",
|
"Content": "Microsoft Outlook New Version",
|
||||||
"Description": "This will ensures the classic Outlook application is used.",
|
"Description": "This will ensure the new Outlook application is used.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -129,14 +129,14 @@ winutil/
|
|||||||
|
|
||||||
## Win11 Creator Architecture
|
## Win11 Creator Architecture
|
||||||
|
|
||||||
The **Win11 Creator** is a specialized subsystem within Winutil that creates customized Windows 11 ISOs. It operates independently from the main package installation and tweak system.
|
The **Win11 Creator** is a specialized subsystem within Winutil that creates customized Windows 11 ISOs. It operates independently of the main package installation and tweak system.
|
||||||
|
|
||||||
### Win11 Creator Components
|
### Win11 Creator Components
|
||||||
|
|
||||||
**Core Functions** (`functions/private/`):
|
**Core Functions** (`functions/private/`):
|
||||||
- `Invoke-WinUtilISO.ps1`: Main orchestrator containing all Win11 Creator functions
|
- `Invoke-WinUtilISO.ps1`: Main orchestrator containing all Win11 Creator functions
|
||||||
- `Invoke-WinUtilISOBrowse`: ISO file selection dialog
|
- `Invoke-WinUtilISOBrowse`: ISO file selection dialog
|
||||||
- `Invoke-WinUtilISOMountAndVerify`: Validates and mounts ISO, verifies it's official Windows 11
|
- `Invoke-WinUtilISOMountAndVerify`: Validates and mounts ISO, verifies it is an official Windows 11 ISO
|
||||||
- `Invoke-WinUtilISOModify`: Launches modification in background runspace
|
- `Invoke-WinUtilISOModify`: Launches modification in background runspace
|
||||||
- `Invoke-WinUtilISOExport`: Handles ISO and USB export
|
- `Invoke-WinUtilISOExport`: Handles ISO and USB export
|
||||||
- `Invoke-WinUtilISOCheckExistingWork`: Recovers incomplete work sessions
|
- `Invoke-WinUtilISOCheckExistingWork`: Recovers incomplete work sessions
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ While you can make your changes directly through the Web, we recommend cloning t
|
|||||||
* Run the following command to compile and run WinUtil:
|
* Run the following command to compile and run WinUtil:
|
||||||
* `.\Compile.ps1 -run`
|
* `.\Compile.ps1 -run`
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
|
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ If you run WinUtil and get an error like:
|
|||||||
|
|
||||||
`< : The term '<' is not recognized as the name of a cmdlet, function, script file, or operable program.`
|
`< : The term '<' is not recognized as the name of a cmdlet, function, script file, or operable program.`
|
||||||
|
|
||||||
try using a **VPN** and if that doesn't work than report the issue to https://github.com/ChrisTitusTech/winutil/issues
|
try using a **VPN** and if that doesn't work then report the issue to https://github.com/ChrisTitusTech/winutil/issues
|
||||||
|
|
||||||
### Script Won't Run
|
### Script Won't Run
|
||||||
|
|
||||||
@@ -17,13 +17,13 @@ If you run WinUtil and get the error:
|
|||||||
|
|
||||||
`"WinUtil is unable to run on your system. PowerShell execution is restricted by security policies"`
|
`"WinUtil is unable to run on your system. PowerShell execution is restricted by security policies"`
|
||||||
|
|
||||||
this means that your PowerShell session is in **Constrained Language Mode**, which prevents WinUtil from running.
|
This means that your PowerShell session is in **Constrained Language Mode**, which prevents WinUtil from running.
|
||||||
|
|
||||||
### Ultimate Performance Plan Not Working
|
### Ultimate Performance Plan Not Working
|
||||||
|
|
||||||
The Ultimate Performance power plan may not work on some laptops that do not fully support this power plan.
|
The Ultimate Performance power plan may not work on some laptops that do not fully support this power plan.
|
||||||
|
|
||||||
In these cases, the power plan may fail to apply, This is expected behavior on unsupported hardware.
|
In these cases, the power plan may fail to apply. This is expected behavior on unsupported hardware.
|
||||||
|
|
||||||
### Revert start menu tweak not working
|
### Revert start menu tweak not working
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ In this update, Microsoft completely removed the old Start Menu code from Window
|
|||||||
### Issues with PowerShell 7 or Class not registered Error
|
### Issues with PowerShell 7 or Class not registered Error
|
||||||
Installing PowerShell 7 from the Microsoft Store (MSIX package) is known to cause issues with DISM cmdlets such as `Get-WindowsOptionalFeature` and `Enable-WindowsOptionalFeature`, resulting in a `Class not registered` COM error.
|
Installing PowerShell 7 from the Microsoft Store (MSIX package) is known to cause issues with DISM cmdlets such as `Get-WindowsOptionalFeature` and `Enable-WindowsOptionalFeature`, resulting in a `Class not registered` COM error.
|
||||||
|
|
||||||
This might also make it so running the "pre-installed app removal" will take a indefinite amount of time
|
This might also make it so running the "pre-installed app removal" will take an indefinite amount of time
|
||||||
|
|
||||||
Instead, install PowerShell 7 using one of the following methods:
|
Instead, install PowerShell 7 using one of the following methods:
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ function Add-SelectedAppsMenuItem {
|
|||||||
$selectedAppRemoveButton.Add_MouseEnter({ $this.Foreground = "Red" })
|
$selectedAppRemoveButton.Add_MouseEnter({ $this.Foreground = "Red" })
|
||||||
$selectedAppRemoveButton.Add_MouseLeave({ $this.SetResourceReference([Windows.Controls.Control]::ForegroundProperty, "MainForegroundColor") })
|
$selectedAppRemoveButton.Add_MouseLeave({ $this.SetResourceReference([Windows.Controls.Control]::ForegroundProperty, "MainForegroundColor") })
|
||||||
$selectedAppRemoveButton.Add_Click({
|
$selectedAppRemoveButton.Add_Click({
|
||||||
$sync.($this.Tag).isChecked = $false # On click of the remove button, we only have to uncheck the corresponding checkbox. This will kick of all necessary changes to update the UI
|
$sync.($this.Tag).isChecked = $false # On click of the remove button, we only have to uncheck the corresponding checkbox. This will kick off all necessary changes to update the UI
|
||||||
})
|
})
|
||||||
[System.Windows.Controls.Grid]::SetColumn($selectedAppRemoveButton, 1)
|
[System.Windows.Controls.Grid]::SetColumn($selectedAppRemoveButton, 1)
|
||||||
$selectedAppGrid.Children.Add($selectedAppRemoveButton)
|
$selectedAppGrid.Children.Add($selectedAppRemoveButton)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Creates a [Windows.Controls.ScrollViewer] containing a [Windows.Controls.ItemsControl] which is setup to use Virtualization to only load the visible elements for performance reasons.
|
Creates a [Windows.Controls.ScrollViewer] containing a [Windows.Controls.ItemsControl] which is setup to use Virtualization to only load the visible elements for performance reasons.
|
||||||
This is used as the parent object for all category and app entries on the install tab
|
This is used as the parent object for all category and app entries on the install tab
|
||||||
Used to as part of the Install Tab UI generation
|
Used as part of the Install Tab UI generation
|
||||||
|
|
||||||
.PARAMETER TargetElement
|
.PARAMETER TargetElement
|
||||||
The element to which the AppArea should be added
|
The element to which the AppArea should be added
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
$targetGrid = $sync.Form.FindName($TargetElement)
|
$targetGrid = $sync.Form.FindName($TargetElement)
|
||||||
$null = $targetGrid.Children.Clear()
|
$null = $targetGrid.Children.Clear()
|
||||||
|
|
||||||
# Create the outer Border for the aren where the apps will be placed
|
# Create the outer Border for the area where the apps will be placed
|
||||||
$Border = New-Object Windows.Controls.Border
|
$Border = New-Object Windows.Controls.Border
|
||||||
$Border.VerticalAlignment = "Stretch"
|
$Border.VerticalAlignment = "Stretch"
|
||||||
$Border.SetResourceReference([Windows.Controls.Control]::StyleProperty, "BorderStyle")
|
$Border.SetResourceReference([Windows.Controls.Control]::StyleProperty, "BorderStyle")
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ function Reset-WPFCheckBoxes {
|
|||||||
<#
|
<#
|
||||||
|
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Set winutil checkboxs to match $sync.selected values.
|
Set WinUtil checkboxes to match $sync.selected values.
|
||||||
Should only need to be run if $sync.selected updated outside of UI (i.e. presets or import)
|
Should only need to be run if $sync.selected updated outside of UI (i.e. presets or import)
|
||||||
|
|
||||||
.PARAMETER doToggles
|
.PARAMETER doToggles
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
function Invoke-WPFUltimatePerformance ([switch]$Enable) {
|
function Invoke-WPFUltimatePerformance ([switch]$Enable) {
|
||||||
if ($Enable) {
|
if ($Enable) {
|
||||||
powercfg /setactive (powercfg /duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 | Select-String -Pattern '[A-Fa-f0-9-]{36}').Matches.Value
|
powercfg /setactive (powercfg /duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 | Select-String -Pattern '[A-Fa-f0-9-]{36}').Matches.Value
|
||||||
[System.Windows.MessageBox]::Show("Ultimate Power Plan plan installed and activated.","Success","OK","Information")
|
[System.Windows.MessageBox]::Show("Ultimate Power Plan installed and activated.","Success","OK","Information")
|
||||||
} else {
|
} else {
|
||||||
powercfg /restoredefaultschemes
|
powercfg /restoredefaultschemes
|
||||||
[System.Windows.MessageBox]::Show("Power Plan was reset to defaults.","Success","OK","Information")
|
[System.Windows.MessageBox]::Show("Power Plan was reset to defaults.","Success","OK","Information")
|
||||||
|
|||||||
+4
-4
@@ -37,7 +37,7 @@ $sync.preferences.packagemanager = "Winget"
|
|||||||
if ($Preset) {
|
if ($Preset) {
|
||||||
Initialize-WinUtilRunspacePool | Out-Null
|
Initialize-WinUtilRunspacePool | Out-Null
|
||||||
|
|
||||||
# Selects the tweaks from $Preset varible
|
# Selects the tweaks from $Preset variable
|
||||||
Update-WinUtilSelections -flatJson $sync.configs.preset.$Preset
|
Update-WinUtilSelections -flatJson $sync.configs.preset.$Preset
|
||||||
|
|
||||||
# Run tweaks that were selected by Update-WinUtilSelections
|
# Run tweaks that were selected by Update-WinUtilSelections
|
||||||
@@ -68,7 +68,7 @@ if ($Config) {
|
|||||||
[xml]$XAML = $inputXML
|
[xml]$XAML = $inputXML
|
||||||
|
|
||||||
# Read the XAML file
|
# Read the XAML file
|
||||||
$readerOperationSuccessful = $false # There's more cases of failure then success.
|
$readerOperationSuccessful = $false # There are more cases of failure than success.
|
||||||
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
|
$reader = (New-Object System.Xml.XmlNodeReader $xaml)
|
||||||
try {
|
try {
|
||||||
$sync["Form"] = [Windows.Markup.XamlReader]::Load( $reader )
|
$sync["Form"] = [Windows.Markup.XamlReader]::Load( $reader )
|
||||||
@@ -92,7 +92,7 @@ if (-NOT ($readerOperationSuccessful)) {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup the Window to follow listen for windows Theme Change events and update the winutil theme
|
# Setup the Window to listen for Windows Theme Change events and update the WinUtil theme
|
||||||
# throttle logic needed, because windows seems to send more than one theme change event per change
|
# throttle logic needed, because windows seems to send more than one theme change event per change
|
||||||
$lastThemeChangeTime = [datetime]::MinValue
|
$lastThemeChangeTime = [datetime]::MinValue
|
||||||
$debounceInterval = [timespan]::FromSeconds(2)
|
$debounceInterval = [timespan]::FromSeconds(2)
|
||||||
@@ -319,7 +319,7 @@ $sync["Form"].Add_ContentRendered({
|
|||||||
})
|
})
|
||||||
|
|
||||||
# The SearchBarTimer is used to delay the search operation until the user has stopped typing for a short period
|
# The SearchBarTimer is used to delay the search operation until the user has stopped typing for a short period
|
||||||
# This prevents the ui from stuttering when the user types quickly as it dosnt need to update the ui for every keystroke
|
# This prevents the ui from stuttering when the user types quickly as it doesn't need to update the ui for every keystroke
|
||||||
|
|
||||||
$searchBarTimer = New-Object System.Windows.Threading.DispatcherTimer
|
$searchBarTimer = New-Object System.Windows.Threading.DispatcherTimer
|
||||||
$searchBarTimer.Interval = [TimeSpan]::FromMilliseconds(300)
|
$searchBarTimer.Interval = [TimeSpan]::FromMilliseconds(300)
|
||||||
|
|||||||
Reference in New Issue
Block a user