Compare commits

..

11 Commits

Author SHA1 Message Date
Sean (ANGRYxScotsman)
a30664002b added doc link to settings menu (#4156) 2026-03-06 08:29:20 -06:00
Chris Titus
5e78391518 chore: Update generated dev docs (#4163) 2026-03-06 08:29:10 -06:00
Sean (ANGRYxScotsman)
2d2497408f Website updated to latest version (#4157)
* updated theme to latest version

* updated tabs to the new way

* added missing frontmatter to pages

* updated hugo version

* edited the file structure

* revert back to old way

* Update _index.md

* fix typo and made sure it was upto date

* updated docs

* clean up navbar

* Update en.yaml
2026-03-06 08:28:34 -06:00
Gabi
d2dbf03572 Update Invoke-WPFFixesWinget.ps1 (#4160) 2026-03-05 16:39:50 -06:00
Chris Titus
88c68fd411 update bug report 2026-03-04 15:50:00 -06:00
Chris Titus
e82aaf03f0 update bug report 2026-03-04 15:46:18 -06:00
Chris Titus
9a77fed09b minimize feature request template 2026-03-04 15:29:48 -06:00
Chris Titus
336ac6fb8f remove key flag from unattended (#4154) 2026-03-04 15:14:16 -06:00
Gabi
72ad35bbd8 Remove product key from autounattend.xml (#4152) 2026-03-04 12:26:53 -06:00
Chris Titus
df17ca4695 Fix offline mode (#4153)
* Fix usb error on drive with no existing partitions

* fix offline mode

* Add offline banner
2026-03-04 12:21:18 -06:00
Chris Titus
7f46e8d60d Fix usb error on drive with no existing partitions (#4151) 2026-03-04 11:44:10 -06:00
24 changed files with 171 additions and 171 deletions

View File

@@ -6,9 +6,6 @@ body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
# 🐞 **Issue Report**
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.
## ⚠️ **IMPORTANT** ## ⚠️ **IMPORTANT**
- 🛠️ **Supported environments only:** We only support Windows 11. - 🛠️ **Supported environments only:** We only support Windows 11.
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ). - 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
@@ -24,11 +21,16 @@ body:
validations: validations:
required: true required: true
- type: input - type: dropdown
id: affected_part id: affected_part
attributes: attributes:
label: 📜 What part of Winutil are you having issues with? label: What part of Winutil are you having issues with?
placeholder: "e.g., Tweaks, etc." options:
- Program Install Tab
- Tweaks Tab
- Config Tab
- Updates Tab
- Win11 Creator Tab
validations: validations:
required: true required: true
@@ -39,24 +41,8 @@ body:
validations: validations:
required: true required: true
- type: textarea
id: steps_to_reproduce
attributes:
label: 🔄 Steps to reproduce the issue.
placeholder: "e.g., Step 1: ..., Step 2: ..."
validations:
required: true
- type: textarea - type: textarea
id: error_output id: error_output
attributes: attributes:
label: ❌ Paste the full error output (if available). label: ❌ Paste the full error output (if available) or Screenshot.
placeholder: "Include any relevant logs or error messages." placeholder: "Include any relevant logs or error messages."
- type: textarea
id: additional_context
attributes:
label: 🖼️ Additional context.
placeholder: "Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
validations:
required: false

View File

@@ -13,45 +13,10 @@ body:
- 🛠️ **Supported environments only:** We only support Windows 11. - 🛠️ **Supported environments only:** We only support Windows 11.
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ). - 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type: checkboxes
attributes:
label: ⚙️ Issue Checklist
options:
- label: I have read the guidelines.
- label: I checked for duplicate issues.
- label: I searched for existing discussions.
- label: I checked for an existing pull request that addresses this request.
validations:
required: true
- type: textarea
id: problem_statement
attributes:
label: ❓ Is your feature request related to a problem?
placeholder: "Provide a clear and concise description of the issue you're facing. Example: 'I'm always frustrated when [...]'"
validations:
required: false
- type: textarea - type: textarea
id: proposed_solution id: proposed_solution
attributes: attributes:
label: 💡 Describe the solution you'd like label: 💡 Describe the solution you'd like
placeholder: "Provide a clear and concise description of what you want to happen." placeholder: "Provide a clear and concise description."
validations: validations:
required: true required: true
- type: textarea
id: alternatives
attributes:
label: 🔄 Describe alternatives you've considered
placeholder: "Provide details on any alternative solutions or features you've thought about."
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: 🖼️ Additional context
placeholder: "Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
validations:
required: false

View File

@@ -30,7 +30,7 @@ jobs:
if: github.repository == 'ChrisTitusTech/winutil' if: github.repository == 'ChrisTitusTech/winutil'
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
HUGO_VERSION: 0.147.7 HUGO_VERSION: 0.156.0
HUGO_ENVIRONMENT: production HUGO_ENVIRONMENT: production
TZ: America/Chicago TZ: America/Chicago
steps: steps:

View File

@@ -15,10 +15,10 @@ If you are seeing errors referencing TLS or security, you may be running an olde
``` ```
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex https://christitus.com/win | iex irm https://christitus.com/win | iex
``` ```
If it still isn't working and you live in India, it might be due to India blocking GitHub's content domain and preventing downloads. See more on [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms). If it still isn't working in your region, it may be due to temporary ISP or network filtering of GitHub content domains. This has been reported by some users in India in the past. See: [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms).
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers: If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers:
@@ -37,7 +37,7 @@ If it returns `ConstrainedLanguage`, you may need to switch to `FullLanguage` mo
### Script blocked by Execution Policy ### Script blocked by Execution Policy
1. Ensure you are running PowerShell as admin: Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. 1. Ensure you are running PowerShell as admin: Press `Windows key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script: 2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script:
``` ```
@@ -65,7 +65,7 @@ This could be for a number of reasons:
If that doesn't work, disable Hibernation: If that doesn't work, disable Hibernation:
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. then type: - Press `Windows key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11, then type:
```bat ```bat
powercfg /H off powercfg /H off
@@ -89,11 +89,11 @@ Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198)
### Windows 11: Quick Settings no longer works ### Windows 11: Quick Settings no longer works
Launch the Script and click _Enable Action Center_. Launch the script and click _Enable Action Center_.
### Explorer (file browser) no longer launches ### Explorer (file browser) no longer launches
- Press `Windows key`+`R` then type: - Press `Windows key`+`R`, then type:
```bat ```bat
control /name Microsoft.FolderOptions control /name Microsoft.FolderOptions
@@ -106,7 +106,7 @@ Launch the Script and click _Enable Action Center_.
If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community. If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community.
1. **Check Battery Health:** 1. **Check Battery Health:**
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. - Press `Windows key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Run the following command to generate a battery report: - Run the following command to generate a battery report:
```powershell ```powershell
powercfg /batteryreport /output "C:\battery_report.html" powercfg /batteryreport /output "C:\battery_report.html"
@@ -114,7 +114,7 @@ If you're using a laptop or tablet and find your battery drains too fast, please
- Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues. - Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues.
2. **Review Power Settings:** 2. **Review Power Settings:**
- Open the Settings app, and go to _System_ > _Power & sleep_. - Open Settings and go to _System_ > _Power & battery_ (Windows 11) or _System_ > _Power & sleep_ (Windows 10).
- Adjust power plan settings based on your preferences and usage patterns. - Adjust power plan settings based on your preferences and usage patterns.
- Click on _Additional power settings_ to access advanced power settings that may help. - Click on _Additional power settings_ to access advanced power settings that may help.
@@ -128,7 +128,7 @@ If you're using a laptop or tablet and find your battery drains too fast, please
- Ensure graphics, chipset, and other essential drivers are up to date. - Ensure graphics, chipset, and other essential drivers are up to date.
5. **Check for Windows Updates:** 5. **Check for Windows Updates:**
- Open the Settings app, and go to _Update & Security_ > _Windows Update_. - Open Settings and go to _Windows Update_ (Windows 11) or _Update & Security_ > _Windows Update_ (Windows 10).
- Check for and install any available updates for your operating system. - Check for and install any available updates for your operating system.
6. **Reduce Screen Brightness:** 6. **Reduce Screen Brightness:**
@@ -144,11 +144,11 @@ If you're using a laptop or tablet and find your battery drains too fast, please
- Review the list of apps and their power usage. Disable or uninstall any you don't need. - Review the list of apps and their power usage. Disable or uninstall any you don't need.
9. **Check Background Apps:** 9. **Check Background Apps:**
- Open the Settings app, and go to _Privacy_ > _Background apps_. - Review background app permissions in Settings (location varies by Windows version and app type).
- Disable or uninstall unnecessary apps running in the background. - Disable or uninstall unnecessary apps running in the background.
10. **Use `powercfg` for Analysis:** 10. **Use `powercfg` for Analysis:**
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. - Press `Windows key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Run the following command to analyze energy usage and generate a report: - Run the following command to analyze energy usage and generate a report:
```powershell ```powershell
powercfg /energy /output "C:\energy_report.html" powercfg /energy /output "C:\energy_report.html"
@@ -161,7 +161,7 @@ If you're using a laptop or tablet and find your battery drains too fast, please
- Look for events with the source _Power-Troubleshooter_ to identify power-related events. These may highlight battery, input power, and other issues. - Look for events with the source _Power-Troubleshooter_ to identify power-related events. These may highlight battery, input power, and other issues.
12. **Check Wake-up Sources:** 12. **Check Wake-up Sources:**
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. - Press `Windows key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Use the command `powercfg /requests` to identify processes preventing sleep. - Use the command `powercfg /requests` to identify processes preventing sleep.
- Use the command `powercfg /waketimers` to view active wake timers. - Use the command `powercfg /waketimers` to view active wake timers.
- Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals. - Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals.
@@ -172,7 +172,7 @@ If you're using a laptop or tablet and find your battery drains too fast, please
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources. - Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
14. **Disable Activity History:** 14. **Disable Activity History:**
- Open the Settings app, and go to _Privacy_ > _Activity history_. - Open Settings and go to _Privacy & security_ > _Activity history_ (Windows 11) or _Privacy_ > _Activity history_ (Windows 10).
- Turn off _Let Windows collect my activities from this PC_. - Turn off _Let Windows collect my activities from this PC_.
15. **Prevent Network Adapters From Waking PC:** 15. **Prevent Network Adapters From Waking PC:**

View File

@@ -17,7 +17,7 @@ function Invoke-WPFFixesWinget {
try { try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo" Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair" Write-Host "==> Starting Winget Repair"
Install-WinUtilWinget -Force Install-WinUtilWinget
} catch { } catch {
Write-Error "Failed to install winget: $_" Write-Error "Failed to install winget: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning" Set-WinUtilTaskbaritem -state "Error" -overlay "warning"

View File

@@ -31,7 +31,7 @@ Winutil is designed for:
New to Winutil? Start here: New to Winutil? Start here:
1. **[Getting Started Guide](getting-started/)** - Installation and first steps 1. **[Getting Started Guide](getting-started/)** - Installation and first steps
2. **[Application Store](application/)** - Learn to install software easily 2. **[Applications Guide](application/)** - Learn to install, upgrade, and uninstall software
3. **[Tweaks Guide](tweaks/)** - Optimize your system 3. **[Tweaks Guide](tweaks/)** - Optimize your system
4. **[Features & Fixes](features/)** - Troubleshoot common issues 4. **[Features & Fixes](features/)** - Troubleshoot common issues
5. **[Win11 Creator](win11Creator/)** - Build a custom debloated Windows 11 ISO 5. **[Win11 Creator](win11Creator/)** - Build a custom debloated Windows 11 ISO
@@ -42,7 +42,7 @@ New to Winutil? Start here:
Browse and install hundreds of popular applications with a single click. No more hunting for download links or dealing with installer bloat. Browse and install hundreds of popular applications with a single click. No more hunting for download links or dealing with installer bloat.
**[Read the Store Guide →](application/)** **[Read the Applications Guide →](application/)**
### ⚙️ System Tweaks ### ⚙️ System Tweaks
@@ -91,7 +91,7 @@ Build a custom Windows 11 ISO with bloatware removed, telemetry disabled, and ha
| I want to... | Go to... | | I want to... | Go to... |
|--------------|----------| |--------------|----------|
| Install Winutil for the first time | [Getting Started](getting-started/) | | Install Winutil for the first time | [Getting Started](getting-started/) |
| Install applications quickly | [Application Store](application/) | | Install, upgrade, or uninstall apps | [Applications Guide](application/) |
| Speed up my computer | [Tweaks Guide](tweaks/) | | Speed up my computer | [Tweaks Guide](tweaks/) |
| Fix Windows Update problems | [Features - Fixes](features/) | | Fix Windows Update problems | [Features - Fixes](features/) |
| Automate setup for multiple PCs | [Automation](automation/) | | Automate setup for multiple PCs | [Automation](automation/) |
@@ -151,7 +151,7 @@ Want to help improve Winutil?
This User Guide covers everything you need to know: This User Guide covers everything you need to know:
1. **[Getting Started](getting-started/)** - Installation, first run, basic usage 1. **[Getting Started](getting-started/)** - Installation, first run, basic usage
2. **[Application Store](application/)** - Installing software, using presets 2. **[Applications](application/)** - Installing, upgrading, and uninstalling software
3. **[Tweaks](tweaks/)** - System optimizations and customizations 3. **[Tweaks](tweaks/)** - System optimizations and customizations
4. **[Features & Fixes](features/)** - Troubleshooting tools and utilities 4. **[Features & Fixes](features/)** - Troubleshooting tools and utilities
5. **[Win11 Creator](win11Creator/)** - Build a custom debloated Windows 11 ISO 5. **[Win11 Creator](win11Creator/)** - Build a custom debloated Windows 11 ISO

View File

@@ -1,33 +1,33 @@
--- ---
title: Applications title: Applications
weight: 2 weight: 3
--- ---
{{< tabs items="Installation & Updates,Upgrade All,Uninstall,Get Installed,Clear Selection" defaultIndex="0" >}} {{< tabs >}}
{{< tab >}} {{< tab name="Installation & Updates" selected=true >}}
* Choose the programs you want to install or upgrade. * Choose the applications you want to install or upgrade.
* For programs not currently installed, this action will install them. * For programs not currently installed, this action will install them.
* For programs already installed, this action will update them to the latest version. * For programs already installed, this action will update them to the latest version.
* Click the `Install/Upgrade Selected` button to start the installation or upgrade process. * Click the `Install/Upgrade Selected` button to start the installation or upgrade process.
{{< /tab >}} {{< /tab >}}
{{< tab >}} {{< tab name="Upgrade All" >}}
* Simply press the `Upgrade All` button. * Simply press the `Upgrade All` button.
* This will upgrade all applicable programs that are installed without the need for individual selection. * This will upgrade all applicable programs that are installed without the need for individual selection.
{{< /tab >}} {{< /tab >}}
{{< tab >}} {{< tab name="Uninstall" >}}
* Select the programs you wish to uninstall. * Select the programs you wish to uninstall.
* Click the `Uninstall Selected` button to remove the selected programs. * Click the `Uninstall Selected` button to remove the selected programs.
{{< /tab >}} {{< /tab >}}
{{< tab >}} {{< tab name="Get Installed" >}}
* Click the `Show Installed Apps` button. * Click the `Show Installed Apps` button.
* This will scan for and select all installed programs in Winutil that WinGet supports. * This scans for and selects installed applications supported by WinGet.
{{< /tab >}} {{< /tab >}}
{{< tab >}} {{< tab name="Clear Selection" >}}
* Click the `Clear Selection` button. * Click the `Clear Selection` button.
* This will unselect all checked programs. * This will unselect all checked programs.
{{< /tab >}} {{< /tab >}}

View File

@@ -1,7 +1,13 @@
Automation option in winutil allows you to run winutil from a config file, ---
you can get your own config file inside winutil by clicking the gear icon on the top right and clicking export and saving it as a file title: Automation
weight: 7
---
you can automate winutil launch with this command The Automation option in Winutil allows you to run Winutil from an exported config file.
You can create your own config in the app by clicking the gear icon in the top-right corner, then choosing Export and saving the file.
You can automate Winutil launch with this command:
```powershell ```powershell
& ([ScriptBlock]::Create((irm "https://christitus.com/win"))) -Config C:\Path\To\Config -Run & ([ScriptBlock]::Create((irm "https://christitus.com/win"))) -Config "C:\Path\To\Config.json" -Run
``` ```

View File

@@ -1,12 +1,12 @@
--- ---
title: Features title: Features
weight: 4 weight: 5
--- ---
* Install the most used **Windows Features** by checking the checkbox and clicking "Install Features" to install them. Install common **Windows Features** by selecting the feature checkboxes and clicking **Install Features**.
* All .Net Frameworks (2, 3, 4) * All .NET Frameworks (2, 3, 4)
* HyperV Virtualization * Hyper-V Virtualization
* Legacy Media (WMP, DirectPlay) * Legacy Media (WMP, DirectPlay)
* NFS - Network File System * NFS - Network File System
* Enable Daily Registry Backup Task 12:30am * Enable Daily Registry Backup Task 12:30am
@@ -16,7 +16,7 @@ weight: 4
* Windows Sandbox * Windows Sandbox
### Fixes ### Fixes
* Quick fixes for your system if you are having issues. Quick fixes for common system problems.
* Set Up Autologin * Set Up Autologin
* Reset Windows Update * Reset Windows Update
@@ -28,6 +28,7 @@ weight: 4
### Legacy Windows Panels ### Legacy Windows Panels
Open old-school Windows panels directly from Winutil. Following Panels are available: Open old-school Windows panels directly from Winutil. Following Panels are available:
Open classic Windows panels directly from Winutil. Available panels include:
* Control Panel * Control Panel
* Network Connections * Network Connections
@@ -39,4 +40,4 @@ Open old-school Windows panels directly from Winutil. Following Panels are avail
### Remote Access ### Remote Access
Enables OpenSSH server on your windows machine. Enables an OpenSSH server on your Windows machine.

View File

@@ -1,6 +1,6 @@
--- ---
title: Getting Started title: Getting Started
weight: 1 weight: 2
--- ---
## Welcome to Winutil! ## Welcome to Winutil!
@@ -111,7 +111,7 @@ This allows you to undo changes if needed.
1. Navigate to the **Install** tab 1. Navigate to the **Install** tab
2. Browse categories or use the search bar 2. Browse categories or use the search bar
3. Check applications you want to install 3. Check applications you want to install
4. Click "Install Selected" at the bottom 4. Click "Install/Upgrade Selected" at the bottom
### 3. Apply Basic Tweaks ### 3. Apply Basic Tweaks
@@ -131,7 +131,7 @@ For a better Windows experience without risks:
1. Open **Install** tab 1. Open **Install** tab
2. Search for the application name 2. Search for the application name
3. Check the box next to it 3. Check the box next to it
4. Click "Install Selected" 4. Click "Install/Upgrade Selected"
**Multiple Applications**: **Multiple Applications**:
@@ -239,7 +239,7 @@ irm "https://christitus.com/win" | iex
### Download Blocked (India/Certain Regions) ### Download Blocked (India/Certain Regions)
If GitHub is blocked in your region: If downloads are blocked in your region:
1. Use a VPN service 1. Use a VPN service
2. Change DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8) 2. Change DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8)
@@ -258,7 +258,7 @@ If Winutil downloads but doesn't open:
Now that you're set up, explore these guides: Now that you're set up, explore these guides:
- [Application Installation Guide](../application/) - Learn about installing software - [Application Guide](../application/) - Learn about installing, upgrading, and uninstalling software
- [Tweaks Guide](../tweaks/) - Understand system optimizations - [Tweaks Guide](../tweaks/) - Understand system optimizations
- [FAQ](../../faq/) - Common questions and answers - [FAQ](../../faq/) - Common questions and answers
@@ -276,7 +276,8 @@ If you need assistance:
| Task | Location | Action | | Task | Location | Action |
| -------------------- | ----------- | ------------------------------------ | | -------------------- | ----------- | ------------------------------------ |
| Install Apps | Install Tab | Check boxes → Install Selected | | Install or upgrade apps | Install Tab | Check boxes → Install/Upgrade Selected |
| Uninstall apps | Install Tab | Check boxes → Uninstall Selected |
| Apply Tweaks | Tweaks Tab | Select tweaks → Run Tweaks | | Apply Tweaks | Tweaks Tab | Select tweaks → Run Tweaks |
| Undo Tweaks | Tweaks Tab | Select tweaks → Undo Selected Tweaks | | Undo Tweaks | Tweaks Tab | Select tweaks → Undo Selected Tweaks |
| Create Restore Point | Tweaks Tab | Essential Tweaks section | | Create Restore Point | Tweaks Tab | Essential Tweaks section |

View File

@@ -1,6 +1,6 @@
--- ---
title: Tweaks title: Tweaks
weight: 3 weight: 4
--- ---
{{< image src="images/Tweaks-Tab" alt="Image of Tweaks Tab" >}} {{< image src="images/Tweaks-Tab" alt="Image of Tweaks Tab" >}}
@@ -21,10 +21,10 @@ Essential Tweaks are modifications and optimizations that are generally safe for
### Advanced Tweaks (CAUTION) ### Advanced Tweaks (CAUTION)
Advanced Tweaks are intended for experienced users who have a solid understanding of their system and the potential implications of making deep-level changes. These tweaks involve more significant alterations to the operating system and can provide substantial customization. However, they also carry a higher risk of causing system instability or unintended side effects if not implemented correctly. Users who choose to apply Advanced Tweaks should proceed with caution, ensuring they have adequate knowledge and backups in place to recover if something goes wrong. These tweaks are not recommended for novice users or those unfamiliar with the inner workings of their operating system. Advanced Tweaks are intended for experienced users who have a solid understanding of their system and the potential implications of making deep-level changes. These tweaks involve more significant alterations to the operating system and can provide substantial customization. However, they also carry a higher risk of causing system instability or unintended side effects if not implemented correctly. Users who choose to apply Advanced Tweaks should proceed with caution, ensuring they have adequate knowledge and backups in place to recover if something goes wrong. These tweaks are not recommended for novice users or those unfamiliar with the inner workings of their operating system.
### O&O Shutup ### O&O ShutUp10++
[O&O ShutUp10++](https://www.oo-software.com/en/shutup10) can be launched from Winutil with only one button click. It is a free privacy tool for Windows that lets users easily manage their privacy settings. It disables telemetry, controls updates, and manages app permissions to enhance security and privacy. The tool offers recommended settings for optimal privacy with just a few clicks. [O&O ShutUp10++](https://www.oo-software.com/en/shutup10) can be launched from Winutil with one click. It is a free privacy tool for Windows that helps users manage telemetry, update behavior, and app permission settings.
{{< youtube id=3HvNr8eMcv0 loading=lazy >}} {{< youtube id=3HvNr8eMcv0 loading=lazy >}}
@@ -46,11 +46,11 @@ The utility provides a convenient DNS selection feature, allowing users to choos
### Customize Preferences ### Customize Preferences
The Customize Preferences section allows users to personalize their Windows experience by toggling various visual and functional features. These preferences are designed to enhance usability and tailor the system to the users specific needs and preferences. The Customize Preferences section allows users to personalize their Windows experience by toggling visual and functional settings.
### Performance Plans ### Performance Plans
The Performance Plans section allows users to manage the Ultimate Performance Profile on their system. This feature is designed to optimize the system for maximum performance. The Performance Plans section allows users to manage the Ultimate Performance Profile for maximum performance.
#### Add and activate the Ultimate Performance Profile: #### Add and activate the Ultimate Performance Profile:
* Enables and activates the Ultimate Performance Profile to enhance system performance by minimizing latency and increasing efficiency. * Enables and activates the Ultimate Performance Profile to enhance system performance by minimizing latency and increasing efficiency.

View File

@@ -1,3 +1,8 @@
---
title: Updates
weight: 6
---
The utility provides three distinct settings for managing Windows updates: Default (Out of Box) Settings, Security (Recommended) Settings, and Disable ALL Updates (NOT RECOMMENDED!). Each setting offers a different approach to handling updates, catering to various user needs and preferences. The utility provides three distinct settings for managing Windows updates: Default (Out of Box) Settings, Security (Recommended) Settings, and Disable ALL Updates (NOT RECOMMENDED!). Each setting offers a different approach to handling updates, catering to various user needs and preferences.
### Default (Out of Box) Settings ### Default (Out of Box) Settings

View File

@@ -1,6 +1,6 @@
--- ---
title: Win 11 Creator title: Win 11 Creator
weight: 5 weight: 8
--- ---
## Using Winutil's Win11 Creator ## Using Winutil's Win11 Creator
@@ -40,7 +40,7 @@ Click **Run Windows ISO Modification and Creator** to start the customization pr
- **Delete OneDrive setup** from the image - **Delete OneDrive setup** from the image
**System Customization:** **System Customization:**
- **Bypass hardware checks** — removes TPM, Secure Boot, CPU, and RAM requirement enforcement so the ISO installs on unsupported hardware - **Bypass hardware checks** — removes TPM, Secure Boot, CPU, RAM, and storage requirement enforcement so the ISO installs on unsupported hardware
- **Enable local account setup** — injects an `autounattend.xml` that skips the Microsoft account screen during OOBE - **Enable local account setup** — injects an `autounattend.xml` that skips the Microsoft account screen during OOBE
- **Disable BitLocker and device encryption** — removes startup overhead - **Disable BitLocker and device encryption** — removes startup overhead
- **Disable Chat icon** — removes chat taskbar button - **Disable Chat icon** — removes chat taskbar button
@@ -69,9 +69,9 @@ A live log shows progress as each step completes. This stage takes **1030 min
Once modification is complete, choose how to save your image: Once modification is complete, choose how to save your image:
{{< tabs items="Save as ISO,Write to USB" defaultIndex="0" >}} {{< tabs >}}
{{< tab >}} {{< tab name="Save as ISO" selected=true >}}
1. Click **Save as an ISO File**. 1. Click **Save as an ISO File**.
2. Choose a save location (defaults to your Desktop as `Win11_Modified_yyyyMMdd.iso`). 2. Choose a save location (defaults to your Desktop as `Win11_Modified_yyyyMMdd.iso`).
3. Winutil builds a dual BIOS/UEFI bootable ISO using `oscdimg.exe`. 3. Winutil builds a dual BIOS/UEFI bootable ISO using `oscdimg.exe`.
@@ -82,7 +82,7 @@ Once modification is complete, choose how to save your image:
**Typical output size:** 2.53.5 GB (down from 56 GB original) **Typical output size:** 2.53.5 GB (down from 56 GB original)
{{< /tab >}} {{< /tab >}}
{{< tab >}} {{< tab name="Write to USB" >}}
1. Click **Write Directly to a USB Drive**. 1. Click **Write Directly to a USB Drive**.
2. Select your USB drive from the dropdown (click **Refresh** if it doesn't appear). 2. Select your USB drive from the dropdown (click **Refresh** if it doesn't appear).
3. Click **Erase & Write to USB** and confirm the warning — **all data on the drive will be permanently erased**. 3. Click **Erase & Write to USB** and confirm the warning — **all data on the drive will be permanently erased**.
@@ -161,7 +161,7 @@ A list of the best free and open source tools for downloading, creating and flas
--- ---
> [!TIP] > [!TIP]
> Already have a Windows 11 ISO? Skip the third-party tools and use Winutil's built-in **[Win11 Creator](#using-winutilss-win11-creator)** at the top of this page. > Already have a Windows 11 ISO? Skip the third-party tools and use Winutil's built-in **[Win11 Creator](#using-winutils-win11-creator)** at the top of this page.
> [!NOTE] > [!NOTE]
> Always download Windows ISOs from official Microsoft sources or trusted tools like Rufus/UUP Dump to avoid tampered images. > Always download Windows ISOs from official Microsoft sources or trusted tools like Rufus/UUP Dump to avoid tampered images.

View File

@@ -1,5 +1,5 @@
module github.com/ChrisTitusTech/WinUtil module github.com/ChrisTitusTech/WinUtil
go 1.23.3 go 1.26
require github.com/imfing/hextra v0.11.1 // indirect require github.com/imfing/hextra v0.12.0 // indirect

View File

@@ -2,3 +2,5 @@ github.com/imfing/hextra v0.9.7 h1:Zg5n24us36Bn/S/5mEUPkRW6uwE6vHHEqWSgN0bPXaM=
github.com/imfing/hextra v0.9.7/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= github.com/imfing/hextra v0.9.7/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=
github.com/imfing/hextra v0.11.1 h1:8pTc4ReYbzGTHAnyiebmlT3ijFfIXiGu1r7tM/UGjFI= github.com/imfing/hextra v0.11.1 h1:8pTc4ReYbzGTHAnyiebmlT3ijFfIXiGu1r7tM/UGjFI=
github.com/imfing/hextra v0.11.1/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI= github.com/imfing/hextra v0.11.1/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=
github.com/imfing/hextra v0.12.0 h1:f6y35hW/WDJEcx9S0dOmbICOBxYE0PmP6IJFsTUgVyY=
github.com/imfing/hextra v0.12.0/go.mod h1:YAv8XRNSmcqjieFwI7fVQK1AoY2Do+45DO9HGqxSGu4=

View File

@@ -12,29 +12,48 @@ canonifyURLs = true
path = "github.com/imfing/hextra" path = "github.com/imfing/hextra"
[[menu.main]] [[menu.main]]
name = "Developer Documentation" identifier = "userguide"
pageRef = "/dev" name = "User Guides"
pageRef = "/userguide"
weight = 1 weight = 1
[[menu.main]] [[menu.main]]
name = "User Guides" identifier = "documentation"
pageRef = "/userguide" name = "Developer Documentation"
weight = 2 weight = 2
[[menu.main]] [[menu.main]]
identifier = "contribution-guides"
name = "Contribution Guides" name = "Contribution Guides"
pageRef = "CONTRIBUTING.md" pageRef = "CONTRIBUTING.md"
weight = 1
parent = "documentation"
[[menu.main]]
identifier = "developer-documentation"
name = "Developer Docs"
pageRef = "/dev"
weight = 2
parent = "documentation"
[[menu.main]]
identifier = "help"
name = "Help"
weight = 3 weight = 3
[[menu.main]] [[menu.main]]
identifier = "faq"
name = "FAQ" name = "FAQ"
pageRef = "faq.md" pageRef = "faq.md"
weight = 4 weight = 1
parent = "help"
[[menu.main]] [[menu.main]]
identifier = "known-issues"
name = "Known Issues" name = "Known Issues"
pageRef = "KnownIssues.md" pageRef = "KnownIssues.md"
weight = 4 weight = 2
parent = "help"
[[menu.main]] [[menu.main]]
name = "Store" name = "Store"

View File

@@ -1,5 +1,4 @@
copyright: "&copy; <script>document.write(new Date().getFullYear())</script>&nbsp;<a href='https://christitus.com'>Chris Titus Tech</a>. All rights reserved." copyright: "&copy; <script>document.write(new Date().getFullYear())</script>&nbsp;<a href='https://christitus.com'>Chris Titus Tech</a>. All rights reserved."
backToTop: "Scroll to top" backToTop: "Scroll to top"
changeLanguage: "Change language" changeLanguage: "Change language"
changeTheme: "Change theme" changeTheme: "Change theme"

View File

@@ -103,13 +103,24 @@ function Invoke-WinUtilISOWriteUSB {
try { try {
SetProgress "Formatting USB drive..." 10 SetProgress "Formatting USB drive..." 10
# Phase 1: Clean disk via diskpart # Phase 1: Clean disk via diskpart (retry once if the drive is not yet ready)
$dpFile1 = Join-Path $env:TEMP "winutil_diskpart_$(Get-Random).txt" $dpFile1 = Join-Path $env:TEMP "winutil_diskpart_$(Get-Random).txt"
"select disk $diskNum`nclean`nexit" | Set-Content -Path $dpFile1 -Encoding ASCII "select disk $diskNum`nclean`nexit" | Set-Content -Path $dpFile1 -Encoding ASCII
Log "Running diskpart clean on Disk $diskNum..." Log "Running diskpart clean on Disk $diskNum..."
diskpart /s $dpFile1 2>&1 | Where-Object { $_ -match '\S' } | ForEach-Object { Log " diskpart: $_" } $dpCleanOut = diskpart /s $dpFile1 2>&1
$dpCleanOut | Where-Object { $_ -match '\S' } | ForEach-Object { Log " diskpart: $_" }
Remove-Item $dpFile1 -Force -ErrorAction SilentlyContinue Remove-Item $dpFile1 -Force -ErrorAction SilentlyContinue
if (($dpCleanOut -join ' ') -match 'device is not ready') {
Log "Disk $diskNum was not ready; waiting 5 seconds and retrying clean..."
Start-Sleep -Seconds 5
Update-Disk -Number $diskNum -ErrorAction SilentlyContinue
$dpFile1b = Join-Path $env:TEMP "winutil_diskpart_$(Get-Random).txt"
"select disk $diskNum`nclean`nexit" | Set-Content -Path $dpFile1b -Encoding ASCII
diskpart /s $dpFile1b 2>&1 | Where-Object { $_ -match '\S' } | ForEach-Object { Log " diskpart: $_" }
Remove-Item $dpFile1b -Force -ErrorAction SilentlyContinue
}
# Phase 2: Initialize as GPT # Phase 2: Initialize as GPT
Start-Sleep -Seconds 2 Start-Sleep -Seconds 2
Update-Disk -Number $diskNum -ErrorAction SilentlyContinue Update-Disk -Number $diskNum -ErrorAction SilentlyContinue
@@ -122,7 +133,8 @@ function Invoke-WinUtilISOWriteUSB {
Log "Disk $diskNum converted to GPT (was $($diskObj.PartitionStyle))." Log "Disk $diskNum converted to GPT (was $($diskObj.PartitionStyle))."
} }
# Phase 3: Create FAT32 partition via diskpart # Phase 3: Create FAT32 partition via diskpart, then format with Format-Volume
# (diskpart's 'format' command can fail with "no volume selected" on fresh/never-formatted drives)
$volLabel = "W11-" + (Get-Date).ToString('yyMMdd') $volLabel = "W11-" + (Get-Date).ToString('yyMMdd')
$dpFile2 = Join-Path $env:TEMP "winutil_diskpart2_$(Get-Random).txt" $dpFile2 = Join-Path $env:TEMP "winutil_diskpart2_$(Get-Random).txt"
$maxFat32PartitionMB = 32768 $maxFat32PartitionMB = 32768
@@ -136,29 +148,38 @@ function Invoke-WinUtilISOWriteUSB {
@( @(
"select disk $diskNum" "select disk $diskNum"
$createPartitionCommand $createPartitionCommand
"select partition 1"
"format quick fs=fat32 label=`"$volLabel`""
"exit" "exit"
) | Set-Content -Path $dpFile2 -Encoding ASCII ) | Set-Content -Path $dpFile2 -Encoding ASCII
Log "Creating partitions on Disk $diskNum..." Log "Creating partitions on Disk $diskNum..."
diskpart /s $dpFile2 2>&1 | Where-Object { $_ -match '\S' } | ForEach-Object { Log " diskpart: $_" } diskpart /s $dpFile2 2>&1 | Where-Object { $_ -match '\S' } | ForEach-Object { Log " diskpart: $_" }
Remove-Item $dpFile2 -Force -ErrorAction SilentlyContinue Remove-Item $dpFile2 -Force -ErrorAction SilentlyContinue
SetProgress "Assigning drive letters..." 30 SetProgress "Formatting USB partition..." 25
Start-Sleep -Seconds 3 Start-Sleep -Seconds 3
Update-Disk -Number $diskNum -ErrorAction SilentlyContinue Update-Disk -Number $diskNum -ErrorAction SilentlyContinue
$partitions = Get-Partition -DiskNumber $diskNum -ErrorAction Stop $partitions = Get-Partition -DiskNumber $diskNum -ErrorAction Stop
Log "Partitions on Disk $diskNum after format: $($partitions.Count)" Log "Partitions on Disk $diskNum after creation: $($partitions.Count)"
foreach ($p in $partitions) { foreach ($p in $partitions) {
Log " Partition $($p.PartitionNumber) Type=$($p.Type) Letter=$($p.DriveLetter) Size=$([math]::Round($p.Size/1MB))MB" Log " Partition $($p.PartitionNumber) Type=$($p.Type) Letter=$($p.DriveLetter) Size=$([math]::Round($p.Size/1MB))MB"
} }
$winpePart = $partitions | Where-Object { $_.Type -eq "Basic" } | Select-Object -Last 1 $winpePart = $partitions | Where-Object { $_.Type -eq "Basic" } | Select-Object -Last 1
if (-not $winpePart) { if (-not $winpePart) {
throw "Could not find the WINPE (Basic) partition on Disk $diskNum after format." throw "Could not find the Basic partition on Disk $diskNum after creation."
} }
# Format using Format-Volume (reliable on fresh drives; diskpart format fails
# with 'no volume selected' when the partition has never been formatted before)
Log "Formatting Partition $($winpePart.PartitionNumber) as FAT32 (label: $volLabel)..."
Get-Partition -DiskNumber $diskNum -PartitionNumber $winpePart.PartitionNumber |
Format-Volume -FileSystem FAT32 -NewFileSystemLabel $volLabel -Force -Confirm:$false | Out-Null
Log "Partition $($winpePart.PartitionNumber) formatted as FAT32."
SetProgress "Assigning drive letters..." 30
Start-Sleep -Seconds 2
Update-Disk -Number $diskNum -ErrorAction SilentlyContinue
try { Remove-PartitionAccessPath -DiskNumber $diskNum -PartitionNumber $winpePart.PartitionNumber -AccessPath "$($winpePart.DriveLetter):" -ErrorAction SilentlyContinue } catch {} try { Remove-PartitionAccessPath -DiskNumber $diskNum -PartitionNumber $winpePart.PartitionNumber -AccessPath "$($winpePart.DriveLetter):" -ErrorAction SilentlyContinue } catch {}
$usbLetter = Get-FreeDriveLetter $usbLetter = Get-FreeDriveLetter
if (-not $usbLetter) { throw "No free drive letters (D-Z) available to assign to the USB data partition." } if (-not $usbLetter) { throw "No free drive letters (D-Z) available to assign to the USB data partition." }
@@ -167,6 +188,12 @@ function Invoke-WinUtilISOWriteUSB {
Start-Sleep -Seconds 2 Start-Sleep -Seconds 2
$usbDrive = "${usbLetter}:" $usbDrive = "${usbLetter}:"
$retries = 0
while (-not (Test-Path $usbDrive) -and $retries -lt 6) {
$retries++
Log "Waiting for $usbDrive to become accessible (attempt $retries/6)..."
Start-Sleep -Seconds 2
}
if (-not (Test-Path $usbDrive)) { throw "Drive $usbDrive is not accessible after letter assignment." } if (-not (Test-Path $usbDrive)) { throw "Drive $usbDrive is not accessible after letter assignment." }
Log "USB data partition: $usbDrive" Log "USB data partition: $usbDrive"

View File

@@ -1,26 +0,0 @@
function Test-WinUtilInternetConnection {
<#
.SYNOPSIS
Tests if the computer has internet connectivity
.OUTPUTS
Boolean - True if connected, False if offline
#>
try {
# Test multiple reliable endpoints
$testSites = @(
"8.8.8.8", # Google DNS
"1.1.1.1", # Cloudflare DNS
"208.67.222.222" # OpenDNS
)
foreach ($site in $testSites) {
if (Test-Connection -ComputerName $site -Count 1 -Quiet -ErrorAction SilentlyContinue) {
return $true
}
}
return $false
}
catch {
return $false
}
}

View File

@@ -11,7 +11,7 @@ function Invoke-WPFFixesWinget {
try { try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo" Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair" Write-Host "==> Starting Winget Repair"
Install-WinUtilWinget -Force Install-WinUtilWinget
} catch { } catch {
Write-Error "Failed to install winget: $_" Write-Error "Failed to install winget: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning" Set-WinUtilTaskbaritem -state "Error" -overlay "warning"

View File

@@ -15,12 +15,14 @@ $maxthreads = [int]$env:NUMBER_OF_PROCESSORS
$hashVars = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'sync',$sync,$Null $hashVars = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'sync',$sync,$Null
$debugVar = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'DebugPreference',$DebugPreference,$Null $debugVar = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'DebugPreference',$DebugPreference,$Null
$uiVar = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'PARAM_NOUI',$PARAM_NOUI,$Null $uiVar = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'PARAM_NOUI',$PARAM_NOUI,$Null
$offlineVar = New-object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'PARAM_OFFLINE',$PARAM_OFFLINE,$Null
$InitialSessionState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault() $InitialSessionState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault()
# Add the variable to the session state # Add the variable to the session state
$InitialSessionState.Variables.Add($hashVars) $InitialSessionState.Variables.Add($hashVars)
$InitialSessionState.Variables.Add($debugVar) $InitialSessionState.Variables.Add($debugVar)
$InitialSessionState.Variables.Add($uiVar) $InitialSessionState.Variables.Add($uiVar)
$InitialSessionState.Variables.Add($offlineVar)
# Get every private function and add them to the session state # Get every private function and add them to the session state
$functions = Get-ChildItem function:\ | Where-Object { $_.Name -imatch 'winutil|WPF' } $functions = Get-ChildItem function:\ | Where-Object { $_.Name -imatch 'winutil|WPF' }
@@ -350,11 +352,10 @@ $sync["Form"].Add_ContentRendered({
Write-Debug "Unable to retrieve information about the primary monitor." Write-Debug "Unable to retrieve information about the primary monitor."
} }
# Check internet connectivity and disable install tab if offline if ($PARAM_OFFLINE) {
#$isOnline = Test-WinUtilInternetConnection # Show offline banner
$isOnline = $true # Temporarily force online mode until we can resolve false negatives $sync.WPFOfflineBanner.Visibility = [System.Windows.Visibility]::Visible
if (-not $isOnline) {
# Disable the install tab # Disable the install tab
$sync.WPFTab1BT.IsEnabled = $false $sync.WPFTab1BT.IsEnabled = $false
$sync.WPFTab1BT.Opacity = 0.5 $sync.WPFTab1BT.Opacity = 0.5
@@ -486,7 +487,7 @@ $sync["AboutMenuItem"].Add_Click({
Invoke-WPFPopup -Action "Hide" -Popups @("Settings") Invoke-WPFPopup -Action "Hide" -Popups @("Settings")
$authorInfo = @" $authorInfo = @"
Author : <a href="https://github.com/ChrisTitusTech">@christitustech</a> Author : <a href="https://github.com/ChrisTitusTech">@ChrisTitusTech</a>
UI : <a href="https://github.com/MyDrift-user">@MyDrift-user</a>, <a href="https://github.com/Marterich">@Marterich</a> UI : <a href="https://github.com/MyDrift-user">@MyDrift-user</a>, <a href="https://github.com/Marterich">@Marterich</a>
Runspace : <a href="https://github.com/DeveloperDurp">@DeveloperDurp</a>, <a href="https://github.com/Marterich">@Marterich</a> Runspace : <a href="https://github.com/DeveloperDurp">@DeveloperDurp</a>, <a href="https://github.com/Marterich">@Marterich</a>
GitHub : <a href="https://github.com/ChrisTitusTech/winutil">ChrisTitusTech/winutil</a> GitHub : <a href="https://github.com/ChrisTitusTech/winutil">ChrisTitusTech/winutil</a>
@@ -494,6 +495,11 @@ Version : <a href="https://github.com/ChrisTitusTech/winutil/releases/tag/$($sy
"@ "@
Show-CustomDialog -Title "About" -Message $authorInfo Show-CustomDialog -Title "About" -Message $authorInfo
}) })
$sync["DocumentationMenuItem"].Add_Click({
Write-Debug "Documentation clicked"
Invoke-WPFPopup -Action "Hide" -Popups @("Settings")
Start-Process "https://winutil.christitus.com/"
})
$sync["SponsorMenuItem"].Add_Click({ $sync["SponsorMenuItem"].Add_Click({
Write-Debug "Sponsors clicked" Write-Debug "Sponsors clicked"
Invoke-WPFPopup -Action "Hide" -Popups @("Settings") Invoke-WPFPopup -Action "Hide" -Popups @("Settings")

View File

@@ -9,7 +9,8 @@
param ( param (
[string]$Config, [string]$Config,
[switch]$Run, [switch]$Run,
[switch]$Noui [switch]$Noui,
[switch]$Offline
) )
if ($Config) { if ($Config) {
@@ -27,6 +28,11 @@ if ($Noui) {
$PARAM_NOUI = $true $PARAM_NOUI = $true
} }
$PARAM_OFFLINE = $false
if ($Offline) {
$PARAM_OFFLINE = $true
}
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch." Write-Output "Winutil needs to be run as Administrator. Attempting to relaunch."

View File

@@ -5,10 +5,6 @@
<settings pass="windowsPE"> <settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<UserData> <UserData>
<ProductKey>
<Key>00000-00000-00000-00000-00000</Key>
<WillShowUI>Never</WillShowUI>
</ProductKey>
<AcceptEula>true</AcceptEula> <AcceptEula>true</AcceptEula>
</UserData> </UserData>
<UseConfigurationSet>false</UseConfigurationSet> <UseConfigurationSet>false</UseConfigurationSet>

View File

@@ -943,13 +943,19 @@
</Window.Resources> </Window.Resources>
<Grid Background="{DynamicResource MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch"> <Grid Background="{DynamicResource MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid Grid.Row="0" Background="{DynamicResource MainBackgroundColor}"> <!-- Offline banner -->
<Border Name="WPFOfflineBanner" Grid.Row="0" Background="#8B0000" Visibility="Collapsed" Padding="6,4">
<TextBlock Text="&#x26A0; Offline Mode - No Internet Connection" Foreground="White" FontWeight="Bold"
HorizontalAlignment="Center" FontSize="13" Background="Transparent"/>
</Border>
<Grid Grid.Row="1" Background="{DynamicResource MainBackgroundColor}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/> <!-- Navigation buttons --> <ColumnDefinition Width="Auto"/> <!-- Navigation buttons -->
<ColumnDefinition Width="*"/> <!-- Search bar and buttons --> <ColumnDefinition Width="*"/> <!-- Search bar and buttons -->
@@ -1174,6 +1180,7 @@
</MenuItem> </MenuItem>
<Separator/> <Separator/>
<MenuItem FontSize="{DynamicResource ButtonFontSize}" Header="About" Name="AboutMenuItem" Foreground="{DynamicResource MainForegroundColor}"/> <MenuItem FontSize="{DynamicResource ButtonFontSize}" Header="About" Name="AboutMenuItem" Foreground="{DynamicResource MainForegroundColor}"/>
<MenuItem FontSize="{DynamicResource ButtonFontSize}" Header="Documentation" Name="DocumentationMenuItem" Foreground="{DynamicResource MainForegroundColor}"/>
<MenuItem FontSize="{DynamicResource ButtonFontSize}" Header="Sponsors" Name="SponsorMenuItem" Foreground="{DynamicResource MainForegroundColor}"/> <MenuItem FontSize="{DynamicResource ButtonFontSize}" Header="Sponsors" Name="SponsorMenuItem" Foreground="{DynamicResource MainForegroundColor}"/>
</StackPanel> </StackPanel>
</Border> </Border>
@@ -1192,7 +1199,7 @@
</Grid> </Grid>
</Grid> </Grid>
<TabControl Name="WPFTabNav" Background="Transparent" Width="Auto" Height="Auto" BorderBrush="Transparent" BorderThickness="0" Grid.Row="1" Grid.Column="0" Padding="-1"> <TabControl Name="WPFTabNav" Background="Transparent" Width="Auto" Height="Auto" BorderBrush="Transparent" BorderThickness="0" Grid.Row="2" Grid.Column="0" Padding="-1">
<TabItem Header="Install" Visibility="Collapsed" Name="WPFTab1"> <TabItem Header="Install" Visibility="Collapsed" Name="WPFTab1">
<Grid Background="Transparent" > <Grid Background="Transparent" >