Compare commits

...
25 Commits
Author SHA1 Message Date
Sean (ANGRYxScotsman)andGitHub 1458327638 Containerize docs site tooling for security and update documentation (#4942)
* Containerize the docs site's npm tooling

Run Astro/Starlight dev, build, and preview commands through Docker
(docs/Dockerfile, docker-compose.yml, service winutil-astro) instead
of bare npm on the host, and document the required commands and
rationale in docs/README.md.

* Document Docker-only npm policy for agents

Add a Dependency Installs, Builds, And Dev Servers section to
AGENTS.md requiring docs/ tooling to run through Docker rather than
directly on the host, point SPEC.md's Docs Site section at the new
Dockerfile/docker-compose.yml, and renumber the remaining AGENTS.md
sections to stay sequential.

* Harden docs Docker dev environment

Tightened docs-container safety and clarified contributor workflow. The docs Docker image now switches to the non-root `node` user after setting ownership, and compose now binds Astro to `127.0.0.1` instead of all interfaces. Updated AGENTS and docs README instructions to explain the security boundary of the bind mount and to require rebuilding plus `docker compose down -v` after dependency changes so `node_modules` is reseeded correctly.

* Clarify docs secret handling in AGENTS

Updates AGENTS.md to tighten docs security guidance: secrets must not be stored anywhere under `docs/`, because `docs/.dockerignore` only affects image build context and does not protect files from the Docker Compose bind mount used for docs dev/build commands.

* Fix preview command to expose port in Docker

The previous preview command didn't expose the port outside the container. Adding --service-ports and binding to 0.0.0.0 makes the preview server accessible from the host.
2026-08-09 20:11:35 -05:00
Kai Davids SchellandGitHub ea7fcf9d2b Per anthropic docs include agents.md with a direct import rather than instruction (#4958) 2026-08-09 20:06:01 -05:00
0aa4ab3a40 Adding Mullvad to DNS (#4927)
* Update dns.json

* Fix Mullvad DNS review issues

* Add Mullvad secondary resolvers

* Register DoH before changing adapter DNS

* Report DNS failures to tweak workflow

* Handle non-terminating DNS assignment failures

* Preserve DNS fallback and document Mullvad options

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-08-09 19:43:19 -05:00
makhlwfandGitHub afc3e1eec2 Fix screen reader button accessibility and category navigation (#4944)
* Fix UI automation peer wrapping and category focusability

* Add accessibility name to SettingsButton

* Avoid nesting ScrollViewer in generated panels with outer viewers

Inspect targetGrid and its parent hierarchy in Invoke-WPFUIElements to avoid adding an inner ScrollViewer when an outer ScrollViewer already exists.
2026-08-09 18:02:53 -05:00
Chris TitusandGitHub 53fc260cc0 Fix WinOneShot ComboItems compatibility (#4957)
* Fix WinOneShot ComboItems compatibility

* Align ComboItems validation with renderer
2026-08-09 16:47:45 -05:00
OmarandGitHub bc607b6c91 Make MPO tweak a three-state control (#4897)
* refactor: make MPO tweak a three-state control

* docs: explain MPO tweak states

* docs: address code review comments

* refactor: make Multiplane Overlay config-driven
2026-08-09 14:02:42 -05:00
7f18b4fd60 Add Roblox entry to applications.json (#4931)
Added The Game Roblox to the Application list.

Co-authored-by: FallenGME <125669256+FallenGME@users.noreply.github.com>
2026-08-09 13:19:23 -05:00
MyDriftandGitHub 32ab9f0ab0 Turn the Install category filters into toggle chips (#4926)
* Turn the Install category filters into toggle chips

- Replace the filter buttons with toggles that show which ones are active
- Add ctrl click to select more than one category
- Keep the search box and the category filter independent of each other
- Expand matching categories while a filter is active

* Fix the filter interactions the category chips missed

- Pass the selected categories to the lazy rendering batches, the old call
  used a parameter that no longer exists and threw while typing
- Keep the category filter when switching tabs, the chips stayed checked
  while the filter itself was dropped
- Put a category back to collapsed once the filter that expanded it is gone

* Document the Install category filters

- Add a guide section for the chips, ctrl click and clearing the filter
- Note that search and the category chips apply together

* Correct the category filter guide wording

- Clearing by clicking the chip only applies when it is the only one selected
- Only categories with matches expand, and only auto expanded ones re-collapse
2026-08-09 13:13:21 -05:00
AshvinandGitHub 9fdadd1c8f Point OpenSSH key setup at the file sshd actually reads (#4936)
* Point OpenSSH key setup at the file sshd actually reads

The Remote Access feature created %USERPROFILE%\.ssh\authorized_keys and
told the user to put their public keys there. sshd does not read that
file for a member of the administrators group; the "Match Group
administrators" block in sshd_config sends those logons to
C:\ProgramData\ssh\administrators_authorized_keys instead. WinUtil always
relaunches itself elevated, so the account it was setting up is always an
administrator, and key auth for it never worked.

The function tried to work around that by commenting the block out, but
those regexes anchor on $, and .NET puts $ before the \n of a CRLF pair.
The sshd_config Windows ships is CRLF throughout, so the replace was a
silent no-op on a stock install. On an sshd_config with LF endings it did
apply, and that is worse than not working: sshd gives an administrator
logon a full token with no UAC prompt, which is why Windows keeps those
keys in ProgramData behind an ACL that requires elevation to write.
Moving the lookup into the profile lets anything running as the user at
medium integrity append a key and get an elevated shell unprompted.

Use administrators_authorized_keys and give it the ACL sshd requires
(inheritance off, Administrators and SYSTEM only, by SID so localized
installs work). Where the sshd_config edit did land, undo it and copy any
keys out of the profile file first so key auth is not cut off mid-session.
Keys are only copied when the block needs restoring, so a default config
never grants access sshd was not already granting.

Also stop creating the profile .ssh directory: under elevation it was the
elevating administrator's profile, not necessarily the caller's.

* Document where to put SSH keys for the OpenSSH server feature
2026-08-09 13:08:33 -05:00
Phuc ToandGitHub 6de45a38b9 Fix UI helper errors during headless -Preset and -Config runs (#4941)
* Make UI helpers no-op when no window exists

The -Preset and -Config paths run Invoke-WinUtilAutoRun before the XAML
form is created and before PresentationCore is loaded, so every call into
Invoke-WPFUIThread failed with InvokeMethodOnNull and every call into
Set-WinUtilTweaksProgressIndicator failed to resolve [Windows.Visibility].
The errors were non-terminating, so tweaks still applied, but each run
filled the log with noise.

Loading presentationframework earlier does not help: Visibility lives in
PresentationCore, which only loads once a WPF object is instantiated, and
the XAML-named progress controls do not exist in these paths either.
Guarding the two helpers covers Invoke-WPFtweaksbutton, Invoke-WPFundoall
and Invoke-WPFFeatureInstall, which the existing per-call-site $hasUI
convention never reached.

* Suppress stray console output from automation runs

Invoke-WPFRunspace returns an IAsyncResult that no caller uses, and
Set-WinUtilRegistry was the only New-PSDrive call site that did not
suppress its output. A GUI click handler discards both, but the -Preset
and -Config paths call the workflows directly, so an async handle dump
and a PSDrive table landed in the user's log.

The handle itself is kept because pester/runspace.Tests.ps1 asserts that
Invoke-WPFRunspace returns a single IAsyncResult, so the suppression goes
at the four call sites reachable from Invoke-WinUtilAutoRun.

* Add project learning for window-free UI helpers
2026-08-09 13:06:17 -05:00
Vinicius Costa AmorimandGitHub 8860caf357 fix: apply imported config selections to lazily-built tabs (#4938)
Tabs other than Install build their checkboxes lazily on first visit.
Import populates $sync.selected* and calls Reset-WPFCheckBoxes, but
that only touches checkboxes that already exist in $sync, so any tab
not yet visited gets its controls built later with default (unchecked)
state and never reflects the import. Re-apply Reset-WPFCheckBoxes right
after a tab's controls are built so it picks up existing selections.
2026-08-09 12:59:13 -05:00
8fb078da4c Add foobar2000 back into applications.json (#4932)
* Add foobar2000 back

* Add Fast Node Manager entry to applications.json

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-08-09 12:57:25 -05:00
Vinicius Costa AmorimandGitHub 95e3a54405 feat: add mpv to Multimedia Tools app list (#4940)
mpv has no official Windows installer; winget id shinchiro.mpv is the
de facto standard Windows build. Choco mpv/mpv.install are flagged
"Possibly broken" upstream, so winget is the sole install source.
2026-08-09 12:53:11 -05:00
Sean (ANGRYxScotsman)andGitHub c817d3329a Enhance SEO and social metadata for documentation homepage (#4923)
* Add SEO metadata to docs home

Add a robots.txt sitemap directive and JSON-LD SoftwareApplication metadata to the docs homepage to improve search engine discovery and rich results.

* Add social preview metadata

Add Open Graph and Twitter image metadata for the docs site and include a new shared social preview image. Also set the homepage title metadata to match the documentation branding.
2026-08-09 12:48:15 -05:00
OmarandGitHub 19f938e876 feat: restore useful development applications (#4930) 2026-08-09 12:45:53 -05:00
Vyas DevgnaandGitHub d64bb18717 docs: correct Win11 Creator behavior after the ISO workflow refactor (#4920)
* docs: correct Win11 Creator behavior after the ISO workflow refactor

The creator stopped stripping unused editions, loading offline registry
hives, and running component store cleanup in #4862. It now copies the
ISO contents and applies the selected edition through sources\ei.cfg and
autounattend.xml, leaving install.wim alone unless drivers are injected.

Update the guide and the architecture reference to match, and note that
the output ISO is close to the size of the source.

* docs: align disk space, driver injection, and stuck-run guidance

The disk space block still carried the pre-refactor 10-15 GB workspace,
2.5-3.5 GB output, and ~25 GB total, which contradicted the copy-based
numbers in the data flow. Restate them against the source ISO size.

Driver injection never touches boot.wim. It adds every exported driver
to the selected install.wim index and stages only the storage packages
in $WinpeDriver$ for WinPE, so correct both the guide and the reference.

The stuck-run troubleshooting entry pointed at a WIM dismount that only
happens when driver injection is enabled.

* docs: narrow this PR back to the edition and output size claims

The earlier commits rewrote the surrounding Win11 Creator sections,
which went well beyond what #4918 was about and presented the rest of
the section as reviewed when it had not been.

Restore the untouched text and keep only the claims that promised a
size reduction or edition removal: the strip-editions and component
store bullets, the two data flow lines, and the modified ISO size.
2026-08-09 12:45:14 -05:00
Chris Titus 5ad168e0c4 Create winoneshot-compat.Tests.ps1 2026-08-09 12:27:07 -05:00
MyDriftGitHubClaude Opus 5coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
8d3adb599f Replace the FOSS dot with a corner badge on app entries (#4924)
* Replace FOSS dot with a corner badge on app entries

- Add New-WinUtilFossBadge, the open source keyhole on a green backdrop
- Mark FOSS apps with a corner triangle instead of a dot after the name
- Give the FOSS legend a circle badge and move it below the buttons
- Sort Note entries last, they shared a rank with checkboxes before

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Update functions/private/Initialize-InstallAppEntry.ps1

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-08-06 12:51:58 -05:00
OmarandGitHub f7c072341d Fix USB creation when install.wim is read-only (#4910)
* fix: allow USB WIM splitting

* test: guard USB WIM splitting fix
2026-08-04 16:01:12 -05:00
FallenGMEandGitHub 32cc623959 Teamspeak6 Added (#4915)
TS 6 is obv. better than TS3
2026-08-04 16:00:19 -05:00
Sean (ANGRYxScotsman)andGitHub b096aaa5e5 Centralize agent instructions in SPEC (#4912)
* Centralize agent instructions in SPEC

Move the full coding-agent contract and repository guidance from `AGENTS.md` into `SPEC.md`, and reduce `AGENTS.md` to a simple pointer to the canonical instructions. Add lightweight `CLAUDE.md`, `GEMINI.md`, and `.github/copilot-instructions.md` files so different assistants consistently bootstrap through the same repo-specific guidance.

* Clarify auto-generated docs path scope in SPEC

Narrowed rule #3 to specify exact auto-generated subdirectories (tweaks/ and features/) rather than the entire code-reference/ directory, and clarified that other hand-written pages (e.g. architecture.mdx) may be edited directly.

* Remove archived docs from gitignore

Drop the old `docs-old` Hugo ignore rules from `.gitignore`, reflecting that the archived docs build artifacts no longer need special handling there.

* Add local env files to docs .gitignore

Add .env.local and .env.*.local patterns to prevent local environment files from being committed.

* Clarify test and git hygiene guidance

Update `SPEC.md` to run Pester in CI mode and tighten repository hygiene instructions around ignored files. The git guidance now points contributors to the actual `.gitignore` files and clarifies that `docs/public/` contains tracked static assets rather than generated output.

* Split agent workflow from project spec

Move repository working instructions into `AGENTS.md` and refocus `SPEC.md` on the stable WinUtil project contract. This separates agent-specific guidance from architecture, build, runtime, docs, testing, and release details so both documents have clearer ownership.

* docs: clarify Pester, ScriptAnalyzer, and source-of-truth rules

Expand AGENTS.md with context on why -SkipPublisherCheck is needed for Pester installation, why winutil.ps1 should be deleted before running ScriptAnalyzer, and clarify that the source-of-truth rule applies only to compiled-script behavior — repository metadata files are edited directly.

* Clarify Pester install command and -SkipPublisherCheck reason

Expands the explanation for why -SkipPublisherCheck is needed (catalog-signed vs Authenticode-signed), clarifies it does not skip download integrity, and adds -Repository PSGallery to pin the trusted source explicitly.
2026-08-04 15:29:49 -05:00
Chris TitusandGitHub a0142ace72 chore: Update generated dev docs and JSON links (#4909) 2026-08-03 19:12:47 -05:00
OmarandGitHub 97f2ad6e98 Fix windev prerelease version during elevation (#4908)
* Fix prerelease elevation cleanup

* Support restricted PowerShell in windev

* Use current PowerShell engine in windev
2026-08-03 19:10:49 -05:00
OmarandGitHub 97e0711034 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.
2026-08-03 19:07:56 -05:00
OmarandGitHub b832da622f Restore native window animations and custom caption hit testing (#4888)
* feat: restore native window animations

* fix: disable native caption button hit testing

* test: remove fake window state assertions
2026-08-03 18:54:06 -05:00
165 changed files with 2631 additions and 503 deletions
+3
View File
@@ -0,0 +1,3 @@
# Copilot Instructions
Read `AGENTS.md` in the repository root for operating instructions before doing anything else.
-5
View File
@@ -13,8 +13,3 @@ desktop.ini
.vscode/
.idea/
# hugo files (archived docs)
docs-old/public/
docs-old/.hugo_build.lock
docs-old/resources/
+47 -59
View File
@@ -4,35 +4,22 @@ Drop-in operating instructions for coding agents. Read this file before every ta
**Working code only. Finish the job. Plausibility is not correctness.**
This repository follows the AGENTS.md convention: these instructions are for Codex, Claude Code, Cursor, Windsurf, Copilot, Aider, Devin, Amp, and other coding agents that read `AGENTS.md`.
`SPEC.md` in the repository root is the project contract — read it for what WinUtil is and how it's architected. This file covers how to work on it.
## 0. Non-Negotiables
These rules override everything else in this file when in conflict:
1. **Do not edit `winutil.ps1` directly.** It is generated build output. Change source files and compile.
1. **Do not edit `winutil.ps1` directly.** It is generated build output (see SPEC.md's Build Model). Change source files and compile.
2. **Do not commit `winutil.ps1`.** It is ignored locally and generated by GitHub Actions for releases.
3. **Never fabricate.** Do not invent file paths, function names, command output, test results, commit hashes, or API behavior. Read the file or run the command.
4. **Disagree when the premise is wrong.** Say what is wrong before acting on it.
5. **Stop when genuinely ambiguous.** If two interpretations would produce materially different diffs, ask before editing.
6. **Touch only what the task requires.** No drive-by refactors, formatting sweeps, or unrelated cleanup.
7. **Verify before saying done.** A plausible-looking diff is not proof.
3. **Never touch `docs/src/content/docs/code-reference/tweaks/` or `docs/src/content/docs/code-reference/features/`.** Both are auto-generated (see SPEC.md's Docs Site). Edit the source JSON (`config/tweaks.json`, `config/feature.json`) or the relevant PowerShell function file instead. Other hand-written pages under `code-reference/` (e.g. `architecture.mdx`) are not touched by the generator and may be edited directly.
4. **Never fabricate.** Do not invent file paths, function names, command output, test results, commit hashes, or API behavior. Read the file or run the command.
5. **Disagree when the premise is wrong.** Say what is wrong before acting on it.
6. **Stop when genuinely ambiguous.** If two interpretations would produce materially different diffs, ask before editing.
7. **Touch only what the task requires.** No drive-by refactors, formatting sweeps, or unrelated cleanup.
8. **Verify before saying done.** A plausible-looking diff is not proof.
## 1. Project Context
WinUtil is a Windows PowerShell utility with a WPF interface. The repository is maintained as modular source, but the distributed artifact is one compiled PowerShell script.
### Stack
- Language: Windows PowerShell / PowerShell.
- UI: WPF via `xaml/inputXML.xaml`.
- Configuration: JSON files under `config/`.
- Tests: Pester tests under `pester/`.
- Lint: PowerShell Script Analyzer with settings in `lint/PSScriptAnalyser.ps1`.
- Docs: Hugo site under `docs/`.
- Release artifact: generated root `winutil.ps1`.
### Key Commands
## 1. Key Commands
- Compile:
```powershell
@@ -42,48 +29,47 @@ WinUtil is a Windows PowerShell utility with a WPF interface. The repository is
```powershell
.\Compile.ps1 -Run
```
- Install the supported Pester version (one-time). `-SkipPublisherCheck` is required because Windows ships an inbox Pester 3.4.0 that is catalog-signed, and PowerShell Gallery's Pester 5.8.0 is Authenticode-signed — `Install-Module` refuses the upgrade without it. This does not skip download integrity (still HTTPS + NuGet package hash verification); `-Repository PSGallery` pins the trusted source explicitly rather than relying on whatever repositories happen to be registered:
```powershell
Install-Module -Name Pester -RequiredVersion 5.8.0 -Repository PSGallery -Scope CurrentUser -Force -SkipPublisherCheck
```
- Run tests:
```powershell
Import-Module Pester -RequiredVersion 5.8.0 -Force
Invoke-Pester -Path 'pester/*.Tests.ps1' -Output Detailed
Invoke-Pester -Path 'pester/*.Tests.ps1' -Output Detailed -CI
```
- Run Script Analyzer with project settings when available:
- Run Script Analyzer with project settings when available. If a locally compiled `winutil.ps1` exists, delete it first — `lint/PSScriptAnalyser.ps1` only excludes rules, not files, so `-Recurse` would also lint the generated script and produce noise against line numbers that don't map to any source file:
```powershell
Invoke-ScriptAnalyzer -Path . -Settings .\lint\PSScriptAnalyser.ps1 -Recurse
```
- Docs site dev server (run from `docs/`; see Section 2 for why this goes through Docker):
```powershell
docker compose up winutil-astro
```
- Docs site production build (run from `docs/`):
```powershell
docker compose run --rm winutil-astro npm run build
```
Prefer the narrowest useful verification while iterating. Use the full relevant check before finishing.
## 2. Source Of Truth
## 2. Dependency Installs, Builds, And Dev Servers
Make durable changes only in files consumed by `Compile.ps1` or in documentation/test files:
Given the current wave of npm/pnpm/yarn supply-chain worms (malicious postinstall/preinstall scripts, credential-stealing packages): **never run npm/pnpm/yarn/npx directly on the host, full stop.** The docs site (`docs/`) is the only npm-based project in this repo; always run its tooling inside Docker via `docs/Dockerfile` and `docs/docker-compose.yml` (service `winutil-astro`).
- `scripts/start.ps1` for startup/bootstrap code.
- `functions/public/*.ps1` for UI-facing and user-facing workflows.
- `functions/private/*.ps1` for internal helpers.
- `config/*.json` for applications, tweaks, features, DNS, presets, navigation, themes, and related declarative data.
- `xaml/inputXML.xaml` for the WPF UI layout.
- `tools/autounattend.xml` for the embedded unattended Windows setup template.
- `scripts/main.ps1` for the final entrypoint and GUI initialization logic appended during compile.
- `pester/*.Tests.ps1` for automated checks.
- `docs/` for Hugo documentation.
- Never run `npm install`, `npm run <script>`, `npx <pkg>`, `pnpm`, or `yarn` directly on the host shell in `docs/`. Use `docker compose run --rm winutil-astro <command>` / `docker compose up winutil-astro` instead (see Section 1 for the exact commands).
- If a task needs a new docs dependency, add it to `docs/package.json` yourself, then rebuild the image and drop the `node_modules` volume so it repopulates from the new image (run from `docs/`): `docker compose build winutil-astro`, then `docker compose down -v`. Docker only seeds a named volume from the image the first time it's created, so a plain rebuild silently leaves the old `node_modules` in place. Don't install packages on the host, even temporarily, "just to check something."
- If Docker isn't available on the host, propose the install command for the current OS and wait for confirmation before running it — don't fall back to running npm on the host instead. If the daemon just isn't running (Docker is installed but not started), tell the user rather than trying to start it yourself.
- Treat any `postinstall`/`preinstall` lifecycle script in a new dependency as worth flagging to the user before installing — summarize what it does.
- Don't put real secrets anywhere under `docs/`. `docs/.dockerignore` only trims what `docker build` copies into the image — it does not affect the `docker compose` bind mount, which exposes the entire `docs/` directory (including any `.env` file) inside the container for every dev/build/preview command (see the next bullet). There is no "keep it out unless mounted" middle ground here.
- The container mounts `docs/` as a volume, so file edits on the host are reflected inside the container immediately — no rebuild needed for normal code changes, only when `docs/package.json`/`docs/package-lock.json` change (see the rebuild-and-drop-volume steps above).
- This Docker requirement is specific to `docs/`. The rest of the repo is PowerShell (`Compile.ps1`, Pester, Script Analyzer) and runs directly on the host per Section 1.
If behavior changes require the compiled script to change, update these source files and run `.\Compile.ps1` only to verify generation.
## 3. Source Of Truth
## 3. Build Model
For changes that affect the compiled WinUtil script, make them only in the source files described in SPEC.md's Repository Layout — never in `winutil.ps1` itself. If behavior changes require the compiled script to change, update the source files and run `.\Compile.ps1` only to verify generation.
`Compile.ps1` combines the repository sources into `winutil.ps1` in this order:
1. Read `scripts/start.ps1` and replace `#{replaceme}` with the current `yy.MM.dd` build date.
2. Append every file under `functions/` recursively.
3. Convert each `config/*.json` file into embedded `$sync.configs` objects.
4. Special-case `config/applications.json` so keys receive the `WPFInstall` prefix in compiled config.
5. Embed `xaml/inputXML.xaml` into `$inputXML`.
6. Embed `tools/autounattend.xml` into `$WinUtilAutounattendXml`.
7. Append `scripts/main.ps1`.
8. Write the result to root `winutil.ps1`.
Because the final script is concatenated, do not rely on runtime module imports or source-relative dot-sourcing unless the compiled script will also contain the required code/data.
This scoping applies to compiled-script behavior only. Repository metadata — `AGENTS.md`, `SPEC.md`, `CLAUDE.md`/`GEMINI.md`/`.github/copilot-instructions.md`, `.github/workflows/`, and the root `.gitignore` — is edited directly when a task requires it, per the other sections of this file.
## 4. Before Editing
@@ -97,11 +83,10 @@ Because the final script is concatenated, do not rely on runtime module imports
- Prefer the minimum code that solves the stated problem.
- Keep PowerShell functions in one function file when practical, with the file name matching the primary function name.
- Use approved PowerShell verb-noun names and follow the existing `WPF` / `WinUtil` naming conventions.
- Keep UI event handler names aligned with XAML element names. A button named `WPFExampleButton` is typically handled by `Invoke-WPFExampleButton`.
- Use `$sync` for shared state and UI references, consistent with the existing runspace model.
- Use approved PowerShell verb-noun names and follow the existing `WPF` / `WinUtil` naming conventions; keep UI event handler names aligned with XAML element names per SPEC.md's UI And Event Contract.
- Use `$sync` for shared state and UI references, consistent with SPEC.md's Runtime Model.
- Update WPF controls through the UI dispatcher when running work in a background runspace.
- Keep config-driven features in JSON when they fit the existing schema instead of hard-coding lists in PowerShell.
- Keep config-driven features in JSON when they fit the existing schema instead of hard-coding lists in PowerShell; follow SPEC.md's Configuration Contract for required fields and key-renaming rules.
- Preserve undo/original-state data for tweaks so users can reverse changes.
- Do not add abstractions, configurability, hooks, or "future extensibility" unless the task needs them now.
- Clean up orphans created by your own changes, such as unused variables or functions made obsolete by the edit.
@@ -109,7 +94,7 @@ Because the final script is concatenated, do not rely on runtime module imports
## 6. Runtime And Safety Rules
- WinUtil performs system-level Windows changes. Treat registry, services, AppX removal, package manager, Windows Update, ISO, and unattended setup changes as high-risk.
- WinUtil performs system-level Windows changes; treat registry, services, AppX removal, package manager, Windows Update, ISO, and unattended setup changes as high-risk (see SPEC.md's Safety Requirements).
- Prefer existing helper functions for WinGet, Chocolatey, registry, services, progress, and UI updates.
- Keep tweaks reversible where the schema supports it by including original values or original states.
- Never modify a user's original ISO in-place; follow existing copy/mount/export patterns.
@@ -136,24 +121,26 @@ Define success in terms that can be checked, then check it.
- Read command output. Do not report tests as passing unless they actually passed.
- If verification fails, fix the cause rather than weakening the test.
If a check cannot be run, say exactly why and what residual risk remains.
If a check cannot be run, say exactly why and what residual risk remains. See SPEC.md's Testing And CI for what GitHub Actions runs on every push.
## 9. Generated Files And Git Hygiene
- Treat local `winutil.ps1` changes as disposable compile output.
- Never stage or commit `winutil.ps1`, `docs/public/`, `docs/resources/`, `binary/`, editor folders, or other ignored build artifacts.
- Never stage or commit `winutil.ps1`, `binary/`, or anything else ignored by the root `.gitignore` or `docs/.gitignore` — read those files rather than assuming. `docs/public/` is tracked source for static assets, not generated output.
- Do not remove `.gitignore` rules that keep generated artifacts out of Git.
- Before finishing, check `git status --short` and separate your changes from pre-existing user changes.
- Do not revert user changes unless explicitly asked.
- Commit messages, when requested, should be descriptive: short subject under 72 characters, body explaining why when needed.
- When committing, split changes into small, logical commits rather than one large commit, so each commit's diff is reviewable as a single group of related changes.
## 10. Documentation Expectations
- Update `docs/content/` when user-facing behavior changes.
- Update developer docs when architecture, build flow, config schema, or contribution workflow changes.
- Update `docs/src/content/docs/guides/` when user-facing behavior changes.
- Update `docs/src/content/docs/code-reference/architecture.mdx` and other hand-written developer docs when architecture, build flow, config schema, or contribution workflow changes — but never hand-edit the auto-generated `code-reference/tweaks/` or `code-reference/features/` subfolders (see Non-Negotiables).
- Keep sidebar entries in `docs/astro.config.mjs` in sync with page slugs (see SPEC.md's Docs Site).
- Keep README changes brief and high-level.
- Put detailed user and developer documentation under `docs/`.
- Keep `SPEC.md` aligned with build/runtime contract changes.
- Keep SPEC.md aligned with project/architecture changes, and this file aligned with process changes.
## 11. Communication Style
@@ -187,6 +174,7 @@ When the user corrects an agent approach, add or tighten one concrete rule here
- Import Pester 5.8.0 before running tests so `Invoke-Pester -Output Detailed -CI` does not resolve to Windows' inbox Pester 3.4.0.
- Keep package install/uninstall process launches simple unless explicitly requested; do not add a separate stdout/stderr process logging helper for winget or Chocolatey.
- When the active log file is owned by `Start-Transcript`, do not call `Add-Content` against that file; write to host output so the transcript captures the line in the same log file without recording a terminating-error diagnostic.
- Keep UI helpers such as `Invoke-WPFUIThread` and `Set-WinUtilTweaksProgressIndicator` safe to call without a window; the `-Preset` and `-Config` paths run the workflows before the form is created and before PresentationCore is loaded.
- Log install/uninstall package names and package-manager IDs before queuing background runspace work; do not rely on runspace host output for the package identity.
- For Win11 Creator, start each new ISO modification in a fresh `WinUtil_Win11ISO_*` temp directory; existing-work detection is only for resuming/exporting already modified media.
- For Win11 Creator driver injection, keep offline WIM servicing to one mount, one `/Add-Driver`, and one commit; do not export editions or run unrelated WIM cleanup, and reject damaged metadata before ISO export.
+2
View File
@@ -0,0 +1,2 @@
# CLAUDE.md
@AGENTS.md
+3
View File
@@ -0,0 +1,3 @@
# GEMINI.md
Read `AGENTS.md` in the repository root for operating instructions before doing anything else.
+65 -58
View File
@@ -1,10 +1,37 @@
# SPEC.md
## Project Contract
Project contract for WinUtil — what the project is, how it's built, and how it runs. Written for anyone, human or AI, who needs to understand the project itself.
WinUtil is a Windows PowerShell utility with a WPF interface. The repository is maintained as modular source files, but the released artifact is a single generated `winutil.ps1` script.
`AGENTS.md` in the repository root points here for these facts, and separately covers how an agent should behave while working in this repo. This file does not change based on who's reading it.
The compiled `winutil.ps1` is not source code for editing or review. It is generated by `Compile.ps1` and produced during release automation. All durable changes must be made to the source files that feed the compiler.
## Project Context
WinUtil is a Windows PowerShell utility with a WPF interface. The repository is maintained as modular source, but the distributed artifact is one compiled PowerShell script.
### Stack
- Language: Windows PowerShell / PowerShell.
- UI: WPF via `xaml/inputXML.xaml`.
- Configuration: JSON files under `config/`.
- Tests: Pester tests under `pester/`.
- Lint: PowerShell Script Analyzer with settings in `lint/PSScriptAnalyser.ps1`.
- Docs: Astro + Starlight site under `docs/`, built independently of `Compile.ps1` (its own `package.json`/`node_modules`).
- Release artifact: generated root `winutil.ps1`.
### Repository Layout
- `Compile.ps1`: build script that creates `winutil.ps1`.
- `scripts/start.ps1`: startup/bootstrap segment used at the beginning of the compiled script.
- `scripts/main.ps1`: main entrypoint appended at the end of the compiled script.
- `functions/public/`: public/UI-facing PowerShell functions.
- `functions/private/`: internal helper PowerShell functions.
- `config/`: JSON configuration consumed at compile time and embedded into `$sync.configs`.
- `xaml/inputXML.xaml`: WPF UI markup embedded into the compiled script.
- `tools/autounattend.xml`: unattended setup XML embedded for Windows ISO workflows.
- `pester/`: Pester tests for config and function checks.
- `lint/PSScriptAnalyser.ps1`: PowerShell Script Analyzer settings.
- `docs/`: Astro + Starlight documentation site, with its own `package.json` and build independent of `Compile.ps1`.
- `winutil.ps1`: ignored generated build artifact.
## Goals
@@ -21,85 +48,65 @@ The compiled `winutil.ps1` is not source code for editing or review. It is gener
- The GUI is not a separate packaged desktop application in this repository's normal release path.
- Generated files should not be reviewed as source changes.
## Repository Layout
## Build Model
- `Compile.ps1`: build script that creates `winutil.ps1`.
- `scripts/start.ps1`: startup/bootstrap segment used at the beginning of the compiled script.
- `scripts/main.ps1`: main entrypoint appended at the end of the compiled script.
- `functions/public/`: public/UI-facing PowerShell functions.
- `functions/private/`: internal helper PowerShell functions.
- `config/`: JSON configuration consumed at compile time and embedded into `$sync.configs`.
- `xaml/inputXML.xaml`: WPF UI markup embedded into the compiled script.
- `tools/autounattend.xml`: unattended setup XML embedded for Windows ISO workflows.
- `pester/`: Pester tests for config and function checks.
- `lint/PSScriptAnalyser.ps1`: PowerShell Script Analyzer settings.
- `docs/`: Hugo documentation site.
- `winutil.ps1`: ignored generated build artifact.
`Compile.ps1` combines the repository sources into `winutil.ps1` in this order:
## Compile Specification
1. Read `scripts/start.ps1` and replace `#{replaceme}` with the current `yy.MM.dd` build date.
2. Append every file under `functions/` recursively.
3. Convert each `config/*.json` file into embedded `$sync.configs` objects.
4. Special-case `config/applications.json` so keys receive the `WPFInstall` prefix in compiled config.
5. Embed `xaml/inputXML.xaml` into `$inputXML`.
6. Embed `tools/autounattend.xml` into `$WinUtilAutounattendXml`.
7. Append `scripts/main.ps1`.
8. Write the result to root `winutil.ps1`.
`Compile.ps1` must produce a standalone root `winutil.ps1` by combining all required project files.
The compile flow is:
1. Initialize shared state with `$sync = [Hashtable]::Synchronized(@{})` and `$sync.configs = @{}`.
2. Read `scripts/start.ps1`.
3. Replace `#{replaceme}` in startup code with the current `yy.MM.dd` build date.
4. Append raw content from all files under `functions/` recursively.
5. For every file in `config/`, parse JSON and embed it into `$sync.configs.<basename>`.
6. Special-case `config/applications.json` so application keys are emitted with the `WPFInstall` prefix.
7. Embed `xaml/inputXML.xaml` as `$inputXML`.
8. Embed `tools/autounattend.xml` as `$WinUtilAutounattendXml`.
9. Append `scripts/main.ps1`.
10. Write the combined script to `winutil.ps1`.
11. If `-Run` is supplied, execute the generated script.
The generated script must have everything it needs from repository sources embedded or appended by this process.
Because the final script is concatenated, code cannot rely on runtime module imports or source-relative dot-sourcing unless the compiled script will also contain the required code/data.
## Runtime Model
- WinUtil runs in PowerShell on Windows and uses WPF for the UI.
- Shared mutable state is stored in `$sync`, including configs, UI element references, runspace state, selections, and progress.
- Long-running operations should use runspaces or existing async patterns so the UI remains responsive.
- UI updates from background work must be dispatched back to the WPF UI thread.
- Declarative features such as apps, tweaks, presets, DNS providers, and navigation should stay in `config/*.json` unless code is required.
- Long-running operations use runspaces or existing async patterns so the UI remains responsive.
- UI updates from background work are dispatched back to the WPF UI thread.
- Declarative features such as apps, tweaks, presets, DNS providers, and navigation stay in `config/*.json` unless code is required.
## UI And Event Contract
- UI layout lives in `xaml/inputXML.xaml`.
- Named WPF controls are discovered and stored in `$sync`.
- Button/action wiring follows existing naming conventions, where an element named like `WPFThingButton` maps to a function named like `Invoke-WPFThingButton`.
- When adding controls, ensure the XAML name, config key, and PowerShell function names line up with the existing event system.
- Button/action wiring follows a naming convention: an element named like `WPFThingButton` maps to a function named like `Invoke-WPFThingButton`.
## Configuration Contract
Config files must remain valid JSON and compile cleanly through `ConvertFrom-Json`.
`config/applications.json` defines installable applications. Each application entry should include the fields expected by tests and UI code, such as package manager IDs, category, display content, description, and link.
`config/tweaks.json` defines Windows tweaks. Registry and service changes should include original values or original states when applicable so undo workflows can restore user systems.
Preset and navigation files should reference valid config keys. Avoid renaming config keys unless all presets, UI references, docs, and code paths are updated together.
- Config files must remain valid JSON and compile cleanly through `ConvertFrom-Json`.
- `config/applications.json` defines installable applications; each entry includes the fields expected by tests and UI code, such as package manager IDs, category, display content, description, and link.
- `config/tweaks.json` defines Windows tweaks; registry and service changes include original values or original states when applicable so undo workflows can restore user systems.
- Preset and navigation files reference valid config keys. Renaming a config key requires updating all presets, UI references, docs, and code paths together.
## Safety Requirements
- Registry, service, package manager, Windows Update, AppX removal, and ISO operations can affect the host system. Changes must be explicit, reversible where practical, and consistent with existing logging and confirmation patterns.
- Tweak changes should include undo metadata when the schema supports it.
- Package installation should prefer existing WinGet and Chocolatey helper functions.
- ISO workflows must not modify the user's original ISO file; they should work on copied/mounted content following existing patterns.
- Registry, service, package manager, Windows Update, AppX removal, and ISO operations affect the host system and are treated as high-risk.
- Tweak changes include undo metadata when the schema supports it, so changes stay reversible.
- ISO workflows never modify the user's original ISO file; they work on copied/mounted content.
## Docs Site (Astro)
- `docs/` is an Astro + Starlight site, independent of `Compile.ps1`'s build (its own `package.json`/`node_modules`, deployed via the `docs.yaml` GitHub Actions workflow to GitHub Pages).
- Pages live under `docs/src/content/docs/` (`.mdx`), organized into `guides/`, `code-reference/`, plus top-level pages like `faq.mdx`, `knownissues.mdx`, `contributing.mdx`, `index.mdx`.
- `docs/src/content/docs/code-reference/tweaks/` and `.../features/` are auto-generated by `tools/devdocs-generator.ps1` from `config/tweaks.json`/`config/feature.json` and the relevant PowerShell function files. Other pages under `code-reference/` (e.g. `architecture.mdx`) are hand-written and untouched by the generator.
- Sidebar entries in `docs/astro.config.mjs` must match actual page slugs under `docs/src/content/docs/`.
- `docs/public/` is tracked source for static assets (favicons, etc.), not generated output. Generated/ignored paths are listed in `docs/.gitignore` (`dist/`, `.astro/`, `node_modules/`, local env files).
- `docs/Dockerfile` and `docs/docker-compose.yml` (service `winutil-astro`) containerize the site's npm tooling; see AGENTS.md's Dependency Installs, Builds, And Dev Servers for why and how agents must use them instead of running npm on the host.
## Testing And CI
Expected validation for source changes:
- `.\Compile.ps1` verifies the compiler can generate `winutil.ps1`.
- `.\Compile.ps1 -Run` compiles and launches the generated utility for manual GUI verification.
- `Install-Module -Name Pester -RequiredVersion 5.8.0 -Scope CurrentUser -Force -SkipPublisherCheck` installs the supported Pester version.
- `Import-Module Pester -RequiredVersion 5.8.0 -Force; Invoke-Pester -Path 'pester/*.Tests.ps1' -Output Detailed -CI` runs the Pester suite.
- GitHub Actions also runs a compile check and PowerShell Script Analyzer with `lint/PSScriptAnalyser.ps1`.
The generated `winutil.ps1` may appear locally after compile. It remains ignored build output and must not be committed.
- Pester 5.8.0 runs the suite under `pester/*.Tests.ps1`. GitHub Actions (`unittests.yaml`) installs Pester 5.8.0 fresh and runs with `-CI`, which produces `testResults.xml` and exits non-zero on failure.
- GitHub Actions also runs PowerShell Script Analyzer with `lint/PSScriptAnalyser.ps1` on every push.
- The generated `winutil.ps1` may appear locally after compile. It remains ignored build output (see root `.gitignore`) and must not be committed.
## Release Artifact
GitHub Actions is responsible for producing the release `winutil.ps1` from repository sources. A release should be considered valid only if the generated script came from the compile process, not from direct manual edits to `winutil.ps1`.
GitHub Actions is responsible for producing the release `winutil.ps1` from repository sources. A release is considered valid only if the generated script came from the compile process, not from direct manual edits to `winutil.ps1`.
+212 -6
View File
@@ -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.",
@@ -125,6 +125,15 @@
"winget": "Brave.Brave",
"foss": true
},
"bruno": {
"category": "Development",
"choco": "bruno",
"content": "Bruno",
"description": "Bruno is a local-first API client that stores collections as plain text files for version control and collaboration.",
"link": "https://www.usebruno.com/",
"winget": "Bruno.Bruno",
"foss": true
},
"bulkcrapuninstaller": {
"category": "Utilities",
"choco": "bulk-crap-uninstaller",
@@ -323,6 +332,15 @@
"winget": "SpikeHD.Dorion",
"foss": true
},
"dockerdesktop": {
"category": "Development",
"choco": "docker-desktop",
"content": "Docker Desktop",
"description": "Docker Desktop provides a local environment for building, running, and testing containerized applications on Windows.",
"link": "https://www.docker.com/products/docker-desktop/",
"winget": "Docker.DockerDesktop",
"foss": false
},
"dotnet6": {
"category": "Microsoft Tools",
"choco": "dotnet-6.0-runtime",
@@ -458,6 +476,33 @@
"winget": "flux.flux",
"foss": false
},
"foobar": {
"category": "Multimedia Tools",
"choco": "foobar2000",
"content": "foobar2000 (Music Player)",
"description": "foobar2000 is a highly customizable and extensible music player for Windows, known for its modular design and advanced features.",
"link": "https://www.foobar2000.org/",
"winget": "PeterPawlowski.foobar2000",
"foss": false
},
"fnm": {
"category": "Development",
"choco": "fnm",
"content": "Fast Node Manager",
"description": "Fast Node Manager (fnm) is a fast, cross-platform tool for installing and switching between Node.js versions.",
"link": "https://github.com/Schniz/fnm",
"winget": "Schniz.fnm",
"foss": true
},
"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",
@@ -485,6 +530,24 @@
"winget": "Git.Git",
"foss": true
},
"gitextensions": {
"category": "Development",
"choco": "gitextensions",
"content": "Git Extensions",
"description": "Git Extensions is a graphical Git client for Windows with repository, history, and commit management tools.",
"link": "https://gitextensions.github.io/",
"winget": "GitExtensionsTeam.GitExtensions",
"foss": true
},
"githubcli": {
"category": "Development",
"choco": "gh",
"content": "GitHub CLI",
"description": "GitHub CLI brings pull requests, issues, releases, and other GitHub workflows to the terminal.",
"link": "https://cli.github.com/",
"winget": "GitHub.cli",
"foss": true
},
"githubdesktop": {
"category": "Development",
"choco": "git;github-desktop",
@@ -701,6 +764,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 +810,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.",
@@ -773,6 +845,14 @@
"winget": "mpc-qt.mpc-qt",
"foss": true
},
"mpv": {
"category": "Multimedia Tools",
"content": "mpv",
"description": "mpv is a free, open source, and cross-platform media player supporting a wide variety of media formats, codecs, and subtitle types.",
"link": "https://mpv.io/",
"winget": "shinchiro.mpv",
"foss": true
},
"matrix": {
"category": "Communications",
"choco": "element-desktop",
@@ -882,9 +962,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 +1060,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 +1068,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 +1087,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 +1176,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",
@@ -1123,6 +1248,15 @@
"winget": "JanDeDobbeleer.OhMyPosh",
"foss": true
},
"postman": {
"category": "Development",
"choco": "postman",
"content": "Postman",
"description": "Postman is an API platform and desktop client for designing, testing, documenting, and collaborating on APIs.",
"link": "https://www.postman.com/downloads/",
"winget": "Postman.Postman",
"foss": false
},
"powershell": {
"category": "Microsoft Tools",
"choco": "powershell-core",
@@ -1339,6 +1473,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",
@@ -1366,6 +1509,15 @@
"winget": "StartIsBack.StartAllBack",
"foss": false
},
"starship": {
"category": "Development",
"choco": "starship",
"content": "Starship (Shell Prompt)",
"description": "Starship is a fast, customizable, cross-platform prompt for PowerShell and other shells.",
"link": "https://starship.rs/",
"winget": "Starship.Starship",
"foss": true
},
"steam": {
"category": "Games",
"choco": "steam-client",
@@ -1375,6 +1527,15 @@
"winget": "Valve.Steam",
"foss": false
},
"roblox": {
"category": "Games",
"choco": "na",
"content": "Roblox",
"description": "Roblox is a platform and game creation system that allows users to create and play games developed by the community.",
"link": "https://www.roblox.com/",
"winget": "Roblox.Roblox",
"foss": false
},
"sublimetext": {
"category": "Development",
"choco": "sublimetext4",
@@ -1384,6 +1545,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",
@@ -1429,6 +1599,15 @@
"winget": "TeamSpeakSystems.TeamSpeakClient",
"foss": false
},
"teamspeak6": {
"category": "Communications",
"choco": "na",
"content": "TeamSpeak 6",
"description": "TEAMSPEAK. YOUR TEAM. YOUR RULES. Use crystal clear sound to communicate with your teammates cross-platform with military-grade security, lag-free performance & unparalleled reliability and uptime.",
"link": "https://www.teamspeak.com/",
"winget": "TeamSpeakSystems.TeamSpeakClient.Beta.6",
"foss": false
},
"telegram": {
"category": "Communications",
"choco": "telegram",
@@ -1528,6 +1707,15 @@
"winget": "Unity.UnityHub",
"foss": false
},
"vagrant": {
"category": "Development",
"choco": "vagrant",
"content": "Vagrant",
"description": "Vagrant builds and manages reproducible virtual machine development environments from declarative configuration.",
"link": "https://developer.hashicorp.com/vagrant",
"winget": "Hashicorp.Vagrant",
"foss": false
},
"everything": {
"category": "Utilities",
"choco": "everything",
@@ -1726,6 +1914,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 +2004,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",
+54
View File
@@ -54,5 +54,59 @@
"Primary6": "2a10:50c0::bad1:ff",
"Secondary6": "2a10:50c0::bad2:ff",
"DohTemplate": "https://family.adguard-dns.com/dns-query"
},
"Mullvad":{
"Primary": "194.242.2.2",
"Secondary": "194.242.2.3",
"Primary6": "2a07:e340::2",
"Secondary6": "2a07:e340::3",
"DohOnly": true,
"DohTemplate": "https://dns.mullvad.net/dns-query",
"SecondaryDohTemplate": "https://adblock.dns.mullvad.net/dns-query"
},
"Mullvad_Ads_Trackers":{
"Primary": "194.242.2.3",
"Secondary": "194.242.2.2",
"Primary6": "2a07:e340::3",
"Secondary6": "2a07:e340::2",
"DohOnly": true,
"DohTemplate": "https://adblock.dns.mullvad.net/dns-query",
"SecondaryDohTemplate": "https://dns.mullvad.net/dns-query"
},
"Mullvad_Ads_Trackers_Malware":{
"Primary": "194.242.2.4",
"Secondary": "194.242.2.3",
"Primary6": "2a07:e340::4",
"Secondary6": "2a07:e340::3",
"DohOnly": true,
"DohTemplate": "https://base.dns.mullvad.net/dns-query",
"SecondaryDohTemplate": "https://adblock.dns.mullvad.net/dns-query"
},
"Mullvad_Ads_Trackers_Malware_Social":{
"Primary": "194.242.2.5",
"Secondary": "194.242.2.4",
"Primary6": "2a07:e340::5",
"Secondary6": "2a07:e340::4",
"DohOnly": true,
"DohTemplate": "https://extended.dns.mullvad.net/dns-query",
"SecondaryDohTemplate": "https://base.dns.mullvad.net/dns-query"
},
"Mullvad_Ads_Trackers_Malware_Adult_Gambling":{
"Primary": "194.242.2.6",
"Secondary": "194.242.2.5",
"Primary6": "2a07:e340::6",
"Secondary6": "2a07:e340::5",
"DohOnly": true,
"DohTemplate": "https://family.dns.mullvad.net/dns-query",
"SecondaryDohTemplate": "https://extended.dns.mullvad.net/dns-query"
},
"Mullvad_Ads_Trackers_Malware_Adult_Gambling_Social":{
"Primary": "194.242.2.9",
"Secondary": "194.242.2.6",
"Primary6": "2a07:e340::9",
"Secondary6": "2a07:e340::6",
"DohOnly": true,
"DohTemplate": "https://all.dns.mullvad.net/dns-query",
"SecondaryDohTemplate": "https://family.dns.mullvad.net/dns-query"
}
}
+22 -10
View File
@@ -1459,28 +1459,40 @@
],
"link": "https://winutil.christitus.com/code-reference/tweaks/customize-preferences/scrollbars"
},
"WPFToggleMultiplaneOverlay": {
"WPFMultiplaneOverlay": {
"Content": "Multiplane Overlay",
"Description": "Multiplane Overlay compose multiple image layers, which can sometimes cause issues with graphics cards.",
"Description": "Multiplane Overlay composes multiple image layers, which can sometimes cause issues with graphics cards. Changes to this preference are applied immediately.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
"Type": "Combobox",
"ComboItems": "Enabled|Disabled (Compatibility)|Fully Disabled",
"ComboDescriptions": {
"Enabled": "Uses Windows' default overlay behavior.",
"Disabled (Compatibility)": "Disables MPO using OverlayTestMode=5, the less aggressive compatibility method.",
"Fully Disabled": "Disables MPO using OverlayTestMode=5 and DisableOverlays=1, the more aggressive method."
},
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\Dwm",
"Name": "OverlayTestMode",
"Value": "0",
"Type": "DWord",
"OriginalValue": "5",
"DefaultState": "true"
"DefaultValue": "0",
"Values": {
"Enabled": "<RemoveEntry>",
"Disabled (Compatibility)": "5",
"Fully Disabled": "5"
}
},
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\GraphicsDrivers",
"Name": "DisableOverlays",
"Value": "0",
"Type": "DWord",
"OriginalValue": "1",
"DefaultState": "true"
"DefaultValue": "0",
"Values": {
"Enabled": "<RemoveEntry>",
"Disabled (Compatibility)": "<RemoveEntry>",
"Fully Disabled": "1"
}
}
],
"link": "https://winutil.christitus.com/code-reference/tweaks/customize-preferences/multiplaneoverlay"
@@ -1852,7 +1864,7 @@
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Type": "Combobox",
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult",
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult Mullvad Mullvad_Ads_Trackers Mullvad_Ads_Trackers_Malware Mullvad_Ads_Trackers_Malware_Social Mullvad_Ads_Trackers_Malware_Adult_Gambling Mullvad_Ads_Trackers_Malware_Adult_Gambling_Social",
"link": "https://winutil.christitus.com/code-reference/tweaks/z--advanced-tweaks---caution/changedns"
},
"WPFAddUltPerf": {
+7
View File
@@ -0,0 +1,7 @@
node_modules
.astro
dist
.git
.env
.env.*
*.log
+2
View File
@@ -16,6 +16,8 @@ pnpm-debug.log*
# environment variables
.env
.env.production
.env.local
.env.*.local
# macOS-specific files
.DS_Store
+16
View File
@@ -0,0 +1,16 @@
FROM node:22-bookworm-slim
RUN corepack enable
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN chown -R node:node /app
USER node
EXPOSE 4321
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
+29 -17
View File
@@ -1,26 +1,24 @@
# Starlight Starter Kit: Basics
# WinUtil Docs
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
```
npm create astro@latest -- --template starlight
```
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
Documentation site for [WinUtil](https://github.com/ChrisTitusTech/winutil), built with [Astro](https://astro.build) and [Starlight](https://starlight.astro.build). Served at [winutil.christitus.com](https://winutil.christitus.com/).
## 🚀 Project Structure
Inside of your Astro + Starlight project, you'll see the following folders and files:
```
.
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ ├── content/
│ │ └── docs/
│ ├── styles/
│ └── content.config.ts
├── astro.config.mjs
├── docker-compose.yml
├── Dockerfile
├── package.json
└── tsconfig.json
```
@@ -33,17 +31,31 @@ Static assets, like favicons, can be placed in the `public/` directory.
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
All commands run in a Docker container — there's no need to install Node or npm dependencies on your host. This is deliberate, not just convenience: npm/pnpm/yarn have seen a steady stream of supply-chain attacks (malicious `postinstall`/`preinstall` scripts, credential-stealing packages), so `npm install` and friends never run directly on a contributor's machine here. Note the container still has read-write access to this `docs/` directory (it's bind-mounted for live reload), so this only contains a compromised package to the project folder plus the container itself — it doesn't reach the rest of your host (SSH keys, other repos, cloud credentials elsewhere on disk). Don't keep real secrets in `docs/` as a result.
[Docker](https://www.docker.com/) (with Compose) is required — install Docker Desktop (or Docker Engine + the `docker compose` plugin on Linux) and make sure the daemon is running before using any of the commands below.
All commands are run from the `docs/` directory, from a terminal:
| Command | Action |
| :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI |
| :------------------------------------------------ | :----------------------------------------------- |
| `docker compose build` | Builds the dev image (needed after Dockerfile or dependency changes) |
| `docker compose up winutil-astro` | Starts local dev server at `localhost:4321` |
| `docker compose run --rm winutil-astro npm run build` | Build the production site to `./dist/` |
| `docker compose run --rm --service-ports winutil-astro npm run preview -- --host 0.0.0.0` | Preview the build locally, before deploying |
| `docker compose run --rm winutil-astro npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
| `docker compose down` | Stop and remove the dev container |
Source files are bind-mounted into the container, so edits on the host are picked up immediately by the dev server — no rebuild needed for normal content or code changes. After changing `package.json`, `package-lock.json`, or the `Dockerfile`, rebuild the image *and* drop the `node_modules` volume, since Docker only seeds a named volume from the image the first time it's created — a plain rebuild leaves the old `node_modules` in place:
```sh
docker compose build
docker compose down -v
docker compose up winutil-astro
```
The first `docker compose up` (or any command before an image exists) builds the image and runs `npm install` from scratch, which can take a few minutes. Subsequent runs reuse the cached image and start almost immediately.
## 👀 Want to learn more?
Check out [Starlights docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
Check out [Starlight's docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
+6
View File
@@ -15,6 +15,12 @@ export default defineConfig({
replacesTitle: true,
},
favicon: '/favicon.svg',
head: [
{ tag: 'meta', attrs: { property: 'og:image', content: 'https://winutil.christitus.com/social-preview.png' } },
{ tag: 'meta', attrs: { property: 'og:image:width', content: '1200' } },
{ tag: 'meta', attrs: { property: 'og:image:height', content: '630' } },
{ tag: 'meta', attrs: { name: 'twitter:image', content: 'https://winutil.christitus.com/social-preview.png' } },
],
social: [
{ icon: 'github', label: 'GitHub', href: 'https://github.com/ChrisTitusTech/winutil' },
{ icon: 'discord', label: 'Discord', href: 'https://discord.gg/RUbZUZyByQ' },
+16
View File
@@ -0,0 +1,16 @@
services:
winutil-astro:
build: .
ports:
- "127.0.0.1:4321:4321"
volumes:
- .:/app
- astro_node_modules:/app/node_modules
tmpfs:
- /app/.astro
environment:
- CHOKIDAR_USEPOLLING=true
- ASTRO_TELEMETRY_DISABLED=1
volumes:
astro_node_modules:
+4
View File
@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://winutil.christitus.com/sitemap-index.xml
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

@@ -149,8 +149,6 @@ The **Win11 Creator** is a specialized subsystem within Winutil that creates cus
- Applies offline registry tweaks (hardware bypass, privacy, telemetry, OOBE)
- Deletes telemetry scheduled task definitions
- Pre-stages setup scripts from autounattend.xml
- Removes unused Windows editions
- Cleans component store via DISM
### Win11 Creator Data Flow
@@ -181,16 +179,14 @@ Invoke-WinUtilISOModify (runs in background runspace)
│ ├─ Delete telemetry scheduled task files
│ ├─ Pre-stage setup scripts from autounattend.xml to C:\Windows\Setup\Scripts\
│ └─ Unload registry hives
├─ DISM /Cleanup-Image /StartComponentCleanup /ResetBase (saves 300-800 MB)
├─ Dismount and save the modified install.wim (~10+ minutes, slowest step)
├─ Export selected edition only (removes all other editions, saves 1-2 GB each)
├─ Dismount source ISO
└─ Report completion, enable export options
Invoke-WinUtilISOExport (user chooses output)
├─ Option 1: Save as ISO
│ ├─ Build bootable ISO via oscdimg.exe (BIOS/UEFI dual-boot)
│ └─ Output: Win11_Modified_[date].iso (2.5-3.5 GB)
│ └─ Output: Win11_Modified_[date].iso (close to the source ISO size)
└─ Option 2: Write to USB
├─ Format USB as GPT
@@ -272,7 +268,7 @@ The `Invoke-WinUtilISOScript` function applies **50+ offline registry tweaks**:
- **Temporary working directory**: ~10-15 GB
- **Original ISO**: 4-6 GB
- **Modified ISO**: 2.5-3.5 GB
- **Modified ISO**: close to the source ISO size
- **Total needed**: ~25 GB for safe operation
## Data Flow
@@ -389,6 +385,8 @@ Update UI
- `Description`: What it does
- `category`: Essential/Advanced/Customize
- `registry`: Registry changes to make
- `registry[].Values`: Per-state values for a registry-backed combobox
- `registry[].DefaultValue`: Effective value when the registry entry is absent
- `service`: Services to change
- `OriginalValue/State`: For undo functionality
@@ -1,10 +1,11 @@
---
title: "Legacy F8 Boot Recovery - Disable"
description: "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Legacy F8 Boot Recovery - Enable"
description: "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Registry Backup (Daily Task 12:30am) - Enable"
description: "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Windows Sandbox - Enable"
description: "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: ".NET Framework (Versions 2, 3, 4) - Enable"
description: ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Hyper-V - Enable"
description: "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Legacy Media Components (WMP, DirectPlay) - Enable"
description: "Enables legacy programs from previous versions of Windows."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Network File System (NFS) - Enable"
description: "Network File System (NFS) is a mechanism for storing files on a network."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Windows Subsystem for Linux (WSL) - Enable"
description: "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting."
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "AutoLogon - Run"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFPanelAutologin.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFPanelAutologin.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFPanelAutologin.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFPanelAutologin.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFPanelAutologin.ps1"
@@ -1,10 +1,11 @@
---
title: "System Corruption Scan - Run"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFSystemRepair.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFSystemRepair.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFSystemRepair.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFSystemRepair.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFSystemRepair.ps1"
@@ -1,10 +1,11 @@
---
title: "NTP Server - Enable"
description: "Replaces the default Windows NTP server (time.windows.com) with pool.ntp.org for improved time synchronization accuracy and reliability."
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFFixesNTPPool.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesNTPPool.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFFixesNTPPool.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesNTPPool.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFFixesNTPPool.ps1"
@@ -1,10 +1,11 @@
---
title: "Network - Reset"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFFixesNetwork.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesNetwork.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFFixesNetwork.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesNetwork.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFFixesNetwork.ps1"
@@ -1,10 +1,11 @@
---
title: "Windows Update - Reset"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFFixesUpdate.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesUpdate.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFFixesUpdate.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesUpdate.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFFixesUpdate.ps1"
@@ -1,10 +1,11 @@
---
title: "WinGet - Reinstall"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFFixesWinget.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesWinget.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFFixesWinget.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFFixesWinget.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFFixesWinget.ps1"
@@ -1,10 +1,11 @@
---
title: "Computer Management"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Control Panel"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Windows Defender Firewall"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Mouse Properties"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Network Connections"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Power Panel"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Printer Panel"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Programs and Features"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Region"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Windows Restore"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Security and Maintenance"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Sound Settings"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "System Properties"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "Time and Date"
description: ""
editUrl: false
---
:::note
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/feature.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/feature.json). Do not edit this page directly.
:::
```json title="config/feature.json"
@@ -1,10 +1,11 @@
---
title: "CTT PowerShell Profile - Install"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/private/Invoke-WinUtilInstallPSProfile.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/private/Invoke-WinUtilInstallPSProfile.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/private/Invoke-WinUtilInstallPSProfile.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/private/Invoke-WinUtilInstallPSProfile.ps1). Do not edit this page directly.
:::
```powershell title="functions/private/Invoke-WinUtilInstallPSProfile.ps1"
@@ -1,10 +1,11 @@
---
title: "CTT PowerShell Profile - Remove"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/private/Invoke-WinUtilUninstallPSProfile.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/private/Invoke-WinUtilUninstallPSProfile.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/private/Invoke-WinUtilUninstallPSProfile.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/private/Invoke-WinUtilUninstallPSProfile.ps1). Do not edit this page directly.
:::
```powershell title="functions/private/Invoke-WinUtilUninstallPSProfile.ps1"
@@ -1,10 +1,11 @@
---
title: "OpenSSH Server - Enable"
description: ""
editUrl: false
---
:::note
This page is generated from [`functions/public/Invoke-WPFSSHServer.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFSSHServer.ps1). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`functions/public/Invoke-WPFSSHServer.ps1`](https://github.com/ChrisTitusTech/winutil/blob/main/functions/public/Invoke-WPFSSHServer.ps1). Do not edit this page directly.
:::
```powershell title="functions/public/Invoke-WPFSSHServer.ps1"
@@ -1,10 +1,11 @@
---
title: "System Tray Battery Percentage"
description: "Shows numeric battery percentage next to the battery icon in the system tray."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Start Menu Bing Search"
description: "Toggles Bing web search results in Windows Search."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Dark Theme for Windows"
description: "Dark Mode for the system and applications."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "BSoD Verbose Mode"
description: "Gives more information when you blue screen."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Lock Screen - Disable"
description: "Skips the lock screen entirely and goes directly to the sign-in screen on boot and wake."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Game Mode"
description: "Toggles Windows prioritizes gaming performance by allocating system resources to games."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "File Explorer Hidden Files"
description: "Reveals hidden files in Explorer."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Settings Home Page"
description: "Toggles the Home Page in the Windows Settings app."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Logon Screen Acrylic Blur"
description: "Toggles the acrylic blur effect on login screen background."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Enable Long Paths"
description: "Toggles support for file paths longer than 260 characters in Explorer."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Mouse Acceleration"
description: "Makes it so Cursor movement is affected by the speed of your physical mouse movements."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Multiplane Overlay"
description: "Multiplane Overlay compose multiple image layers, which can sometimes cause issues with graphics cards."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Microsoft Outlook New Version"
description: "This will ensures the classic Outlook application is used."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Num Lock on Startup"
description: "Toggle the Num Lock key state when your computer starts."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "S3 Sleep"
description: "Toggles between Modern Standby and S3 Sleep, which cuts off power to the CPU while continuing to refresh the memory."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Scrollbars Always Visible"
description: "If enabled, scrollbars will always be visible. If disabled, Windows will automatically hide scrollbars when not in use."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -21,8 +22,7 @@ This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitus
"Value": "0",
"Type": "DWord",
"OriginalValue": "1",
"DefaultState": "false",
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/scrollbars"
"DefaultState": "false"
}
],
}
@@ -1,10 +1,11 @@
---
title: "File Explorer File Extensions"
description: "Shows .file extensions in Explorer (.exe, .png, etc.)"
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "S0 Sleep Network Connectivity"
description: "Toggles network connectivity during S0 Sleep which is low power idle in modern laptops."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Start Menu Recommendations"
description: "Toggles the recommendations section in the Start Menu. WARNING: This will also disable Windows Spotlight on your Lock Screen as a side effect."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Sticky Keys"
description: "Toggles the Sticky Keys, which activate when clicking shift rapidly."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Taskbar Task View Icon"
description: "Toggles the Task View Button in the Taskbar."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Taskbar Centered Icons"
description: "Toggles the Taskbar alignment either to the left or center."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Taskbar Search Icon"
description: "Toggles the Search Button on the Taskbar."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Logon Verbose Mode"
description: "Show detailed messages during startup/shutdown."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Window Snapping"
description: "Toggles the window snapping feature when dragging windows."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Activity History - Disable"
description: "Erases recent docs, clipboard, and run history."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "ConsumerFeatures - Disable"
description: "Stops promoted app installs and reduces app suggestions from Microsoft Store content."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Temporary Files - Remove"
description: "Erases TEMP Folders."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Delivery Optimization - Disable"
description: "Stops Windows from using your bandwidth to upload updates to other PCs on the internet or local network."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "BitLocker - Disable"
description: "Disables BitLocker."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "File Explorer Automatic Folder Discovery - Disable"
description: "Windows Explorer automatically tries to guess the type of the folder based on its contents, slowing down the browsing experience. WARNING! Will disable File Explorer grouping."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Microsoft Store Recommended Search Results - Disable"
description: "Will not display recommended Microsoft Store apps when searching for apps in the Start menu."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Disk Cleanup - Run"
description: "Runs Disk Cleanup on Drive C: and removes old Windows Updates."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "End Task With Right Click - Enable"
description: "Enables option to end task when right clicking a program in the taskbar."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Hibernation - Disable"
description: "Hibernation is really meant for laptops as it saves what's in memory before turning the PC off. It really should never be used."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Location Tracking - Disable"
description: "Disables Location Tracking."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Prevent Device Companion Apps"
description: "Prevents additional software from being installed when plugging in devices (e.g. Ads when plugging in a monitor). Poses potential security risk."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Restore Point - Create"
description: "Creates a restore point at runtime in case a revert is needed from WinUtil modifications."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Start Menu Previous Layout - Enable"
description: "Bring back the old Start Menu layout from before the gradual rollout of the new one in 25H2. On newer versions of Windows !!THIS TWEAK WILL NOT WORK!!"
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Services - Set to Manual"
description: "Sets some services to Manual startup and adjusts the SvcHostSplitThresholdInKB registry value to better match system memory, which can significantly reduce the number of svchost.exe processes."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Telemetry - Disable"
description: "Disables Microsoft Telemetry."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Windows Platform Binary Table (WPBT) - Disable"
description: "If enabled, WPBT allows your computer vendor to execute programs at boot time, such as anti-theft software, software drivers, as well as force install software without user consent. Poses potential security risk."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Widgets - Remove"
description: "Removes the annoying widgets in the bottom left of the Taskbar."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Adobe URL Block List - Enable"
description: "Reduces user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. Credit: Ruddernation-Designs"
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Brave Browser - Debloat"
description: "Disables various annoyances like Brave Rewards, Leo AI, Crypto Wallet and VPN."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Background Apps - Disable"
description: "Disables all Microsoft Store apps from running in the background, which has to be done individually since Windows 11."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "Fullscreen Optimizations - Disable"
description: "Disables FSO in all applications. NOTE: This will disable Color Management in Exclusive Fullscreen."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "IPv6 - Disable"
description: "Disables IPv6."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "System Tray Notifications & Calendar - Disable"
description: "Disables all Notifications INCLUDING Calendar."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"
@@ -1,10 +1,11 @@
---
title: "RDP Unsigned File Warnings - Disable"
description: "Disables warnings shown when launching unsigned RDP files introduced with the latest Windows 10 and 11 updates."
editUrl: false
---
:::note
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Edit the source file and regenerate the docs rather than editing this file directly.
This page is generated from [`config/tweaks.json`](https://github.com/ChrisTitusTech/winutil/blob/main/config/tweaks.json). Do not edit this page directly.
:::
```json title="config/tweaks.json"

Some files were not shown because too many files have changed in this diff Show More