Compare commits

...

70 Commits

Author SHA1 Message Date
Jeffrey
0a8999f635 Ensure folders exist 2026-06-23 01:21:40 +02:00
Jeffrey
5bd8c9957b Add migration of old settings 2026-06-23 01:18:32 +02:00
Jeffrey
88b5f1b629 Store user data (backups, logs, settings) under LocalAppData, update start menu backup creation 2026-06-23 01:04:29 +02:00
Jeffrey
5ebc50d36a Guard against loading, saving & executing undefined features (#665) 2026-06-23 00:41:33 +02:00
Jeffrey
d1fe541b62 Refactor: Cleanup app removal, remove legacy app list generator and CustomAppsList file support (#662)
* remove support for uninstalling old sunset apps

* Add color legend on app removal screen

* Remove legacy app list generator and custom apps file support
Replaced by GUI config export/import, dynamic RemovalMethod, and
CLI app removal settings saved to LastUsedSettings.json.

* Verify app removal by checking actual installation state instead of trusting winget output
2026-06-22 22:13:01 +02:00
Jeffrey
71e3f2e44d Refactor: ExecuteChanges to InvokeChanges, clean up for readability (#641) 2026-06-22 21:43:53 +02:00
HetCreep
4891aa401a fix(app-removal): detect installed OneDrive in the "Only show installed" filter (#656) 2026-06-22 15:10:53 +02:00
HetCreep
a6d59c0dc1 fix(app-removal): detect WinGet uninstall failures by exit code, not English text (#658) 2026-06-22 14:53:45 +02:00
Jeffrey
ac54bde383 Replace FocusHelper C# compilation with WPF Activate() to fix temp DLL access-denied errors (#661) 2026-06-22 02:07:26 +02:00
HetCreep
dfe7810346 feat(registry): add GPO override warning and WhatIf dry-run previews (#611)
Co-authored-by: Jeffrey <9938813+Raphire@users.noreply.github.com>
2026-06-21 21:30:31 +02:00
HetCreep
82894176d9 fix(restore): correct sub-key path matching in backup allow-list validation (#645) 2026-06-21 20:37:29 +02:00
HetCreep
87b3035eda fix(threading): surface runspace errors instead of swallowing them in GUI mode (#655) 2026-06-21 19:08:21 +02:00
Jeffrey
a89b53504c Clean up styling to better match Windows fluent design guidelines (#638) 2026-06-21 18:47:52 +02:00
HetCreep
91a6266d50 fix(gui): treat dismissed unsafe-removal confirmation as decline (#651) 2026-06-21 18:42:47 +02:00
HetCreep
469751f8e8 fix(app-removal): don't treat AllUsers/CurrentUser as a username at startup (#647) 2026-06-21 18:39:10 +02:00
Jeffrey
908274a500 Fix store suggestions not getting disabled correctly for all users when running as other user (#642) 2026-06-21 01:56:28 +02:00
HetCreep
6e4a616f1c feat(telemetry): disable telemetry-related scheduled tasks under Microsoft\Windows (#615)
Co-authored-by: Jeffrey <9938813+Raphire@users.noreply.github.com>
2026-06-20 19:04:46 +02:00
Jeffrey
535b62db40 Fix: Respect Feature min/max version for comboboxes (#639) 2026-06-19 18:20:25 +02:00
Jeffrey
c039b04717 Fix Start Menu apps not being set correctly for all users when running script for other user (#637) 2026-06-18 23:02:25 +02:00
Jeffrey
a7a46bb5bf Clean up app removal target user descriptions 2026-06-16 23:43:07 +02:00
Jeffrey
a95b5adee8 Update import/export window descriptions 2026-06-16 19:47:48 +02:00
Jeffrey
2b97021341 Merge branch 'master' of https://github.com/Raphire/Win11Debloat 2026-06-14 22:06:22 +02:00
Jeffrey
1235306f80 Bump version 2026-06-14 22:06:16 +02:00
Jeffrey
1a69d19f30 Refactor Get-RegFileOperations.ps1 (#626)
Feels weird to have to do this, but I have refactored the functions in Get-RegFileOperations.ps1 to avoid false positives in Windows Security (Windows Defender) and Bitdefender.

Related issues: #621, #624
2026-06-14 22:05:19 +02:00
Jeffrey
5628f6e0b7 Add logging around winget app retrieval and increase timeout to 20s 2026-06-12 17:41:30 +02:00
Jeffrey
6f349b4992 Update bug_report template 2026-06-12 17:34:17 +02:00
Jeffrey
2193591448 Bump version 2026-06-11 22:16:45 +02:00
Jeffrey
e9269c5501 Fix lockscreen spotlight option being locked when start recommended section is disabled (#619) 2026-06-11 22:09:06 +02:00
Jeffrey
fdac0a6d14 Move trailing ellipsis out of config 2026-06-10 21:00:07 +02:00
Jeffrey
2aa9afaa2c Update CONTRIBUTING.md 2026-06-10 20:55:26 +02:00
Jeffrey
67c9cc6ba3 Bump version 2026-06-10 17:41:13 +02:00
Jeffrey
157d26bb22 Add option to show & undo applied tweaks + more (#599)
* Remove RemoveCommApps and RemoveW11Outlook presets. These are largely redundant. Use -RemoveApps parameter instead

* Add additional options to change the `All Apps` view in the start menu (Hide, Grid, Category, List)

* Add clean start menu backup validation to start menu restore function

* Resolve nested quoting bug in Run.bat when path has spaces, see #583

* Fix desync issue when toggling "Only Show Installed" checkbox too fast

* Fix: add missing keys in Sysprep/Undo regfiles for Disabling Recall and Windows Suggested content

* Fix 'Disable Animations' Sysprep settings not being set for new users

* Update README.md

* Update CONTRIBUTING.md
2026-06-10 17:40:31 +02:00
HetCreep
53ca51dffd fix(appx): expose swallowed exceptions during Appx Package uninstallation via Write-Verbose (#617)
Co-authored-by: Jeffrey <9938813+Raphire@users.noreply.github.com>
2026-06-10 16:43:37 +02:00
soccerzockt
db24865051 Add Support for "-user" Parameter running under SYSTEM (#609)
Co-authored-by: Jeffrey <9938813+Raphire@users.noreply.github.com>
2026-06-07 22:51:01 +02:00
Jeffrey
33b77f19a0 Add confirmation dialogs & warning for Windows Terminal Removal
Removal of this app can cause Win11Debloat to fail, if the script is launched via Windows Terminal
2026-06-01 22:53:28 +02:00
Jeffrey
37872b2030 Update CONTRIBUTING.md 2026-05-26 15:57:34 +02:00
Jeffrey
abfc5db2c3 Improve log output in Get.ps1 and clean up file exclusions 2026-05-25 14:35:39 +02:00
Jeffrey
1d828d6a78 Fix typo in Disable_Game_Bar_Integration Sysprep registry file 2026-05-24 14:53:12 +02:00
Jeffrey
4d9da4749b Merge branch 'master' of https://github.com/Raphire/Win11Debloat 2026-05-20 16:29:41 +02:00
Jeffrey
5cf9ac4082 Bump version 2026-05-20 16:29:33 +02:00
Jeffrey
924c192ca5 Add Registry write fall-back in case applying registry file fails (#592)
* Continue on registry failures and show details after execution

* Temporarily remove DisableSearchHighlights and DisableSearchHistory settings

* Remove widget-related registry changes as they're no longer required for disabling widgets

* Update tooltip for DisableTelemetry feature to clarify impact on Windows Insider updates
2026-05-20 16:29:06 +02:00
Jeffrey
2a5cb986c9 Merge branch 'master' of https://github.com/Raphire/Win11Debloat 2026-05-17 17:56:01 +02:00
Jeffrey
66982ada28 Limit backup restore files to json only 2026-05-17 17:55:59 +02:00
Ahmad Z. Shatnawi
489af33a8b Fix: Increase System Restore point creation timeout to 90 seconds (#586) 2026-05-17 17:50:36 +02:00
Jeffrey
51aa288dfd Bump version 2026-05-12 00:01:57 +02:00
Jeffrey
24a6f1bcf8 Fix capture and restore of signed dword/qword registry values
Co-authored-by: Copilot <copilot@github.com>
2026-05-11 19:14:08 +02:00
Jeffrey
8ac664e45f Add restart instructions to registry restore success message 2026-05-10 23:26:22 +02:00
Jeffrey
85aa67b5d2 Bump version 2026-05-10 22:27:07 +02:00
Jeffrey
c8b4563954 Fix registry backup validation for sysprep keys 2026-05-09 21:56:58 +02:00
Jeffrey
22f3144c0f Remove > from applytext 2026-05-08 21:26:51 +02:00
Jeffrey
2c360961e3 Add registry backup & restore (#566)
Starting from this commit, Win11Debloat will automatically create a registry backup every time the script is run. This registry backup can be used to revert any registry changes made by the script.
2026-05-08 21:19:52 +02:00
Jeffrey
11a324365d Improve user validation (#568) 2026-05-06 15:54:03 +02:00
Jeffrey
5daa922148 Make tweak columns responsive 2026-04-29 17:05:53 +02:00
Jeffrey
1826d6d8be Refactor app removal scope handling & styling 2026-04-27 15:37:09 +02:00
Jeffrey
c15309bcf6 Update feature labels to include default indicators 2026-04-27 15:30:09 +02:00
Raphire
c1dc8f7ce3 Bump version 2026-04-26 20:31:39 +02:00
Raphire
ebb3a293d4 Fix encoding of Enable_Windows_Suggestions.reg 2026-04-26 20:24:03 +02:00
Raphire
2a7fbf9a2d Update regfile encoding for consistency 2026-04-26 18:34:42 +02:00
Raphire
b52a332247 Fix user display in deployment category details for unspecified usernames 2026-04-26 14:15:26 +02:00
Jeffrey
92ac5b441e Add setting details in config import/export interface (#562) 2026-04-26 14:11:29 +02:00
Jeffrey
5f1d0fb604 Improve DisableWidgets feature by removing additional Widget related apps (#561) 2026-04-26 00:10:00 +02:00
Jeffrey
9ca87b129c Update HideOnedrive option to also work in Windows 11 (#559) 2026-04-25 18:46:36 +02:00
David
6db2c158bd Added prompt asking user to run as adminstrator (#556)
Co-authored-by: Raphire <9938813+Raphire@users.noreply.github.com>
2026-04-25 18:09:57 +02:00
Jeffrey
17654c3f7d Improve app & tweak selection UI (#558) 2026-04-25 00:40:29 +02:00
Jeffrey
dd492b523d Fix full-screen window snapping on secondary monitors (#557) 2026-04-24 21:18:46 +02:00
Raphire
797a232b17 Add Get-Dev.ps1 launch script for development 2026-04-19 20:16:30 +02:00
Raphire
9070be6d3f Update wording in run.bat 2026-04-19 19:54:45 +02:00
Raphire
b6e7fb1903 Update tooltip for BitLocker automatic device encryption feature to clarify behavior 2026-04-19 19:54:34 +02:00
Raphire
bb31e98df7 Remove 'Disable Fast Startup' from default settings 2026-04-19 19:54:14 +02:00
Raphire
ff98febb9a Manually add system32 to System PATH when it's missing #548 2026-04-17 20:09:47 +02:00
318 changed files with 10798 additions and 3843 deletions

View File

@@ -1,6 +1,7 @@
# How to Contribute? # How to Contribute?
We welcome contributions from the community. You can contribute to Win11Debloat by: We welcome contributions from the community. You can contribute to Win11Debloat by:
- Reporting issues and bugs [here](https://github.com/Raphire/Win11Debloat/issues/new?template=bug_report.yml) - Reporting issues and bugs [here](https://github.com/Raphire/Win11Debloat/issues/new?template=bug_report.yml)
- Submitting feature requests [here](https://github.com/Raphire/Win11Debloat/issues/new?template=feature_request.yml) - Submitting feature requests [here](https://github.com/Raphire/Win11Debloat/issues/new?template=feature_request.yml)
- Testing Win11Debloat - Testing Win11Debloat
@@ -15,6 +16,7 @@ You can help us test the latest changes and additions to the script. If you enco
> The prerelease version of Win11Debloat is meant for developers to test the script. Don't use this in production environments! > The prerelease version of Win11Debloat is meant for developers to test the script. Don't use this in production environments!
You can launch the prerelease version of Win11Debloat by running this command: You can launch the prerelease version of Win11Debloat by running this command:
```ps1 ```ps1
& ([scriptblock]::Create((irm "https://debloat.raphi.re/dev"))) & ([scriptblock]::Create((irm "https://debloat.raphi.re/dev")))
``` ```
@@ -28,12 +30,14 @@ You can launch the prerelease version of Win11Debloat by running this command:
1. **Fork the project** on GitHub by clicking the "Fork" button at the top right of the repository page. 1. **Fork the project** on GitHub by clicking the "Fork" button at the top right of the repository page.
2. **Clone the repository** to your local machine: 2. **Clone the repository** to your local machine:
```powershell ```powershell
git clone https://github.com/YOUR-USERNAME/Win11Debloat.git git clone https://github.com/YOUR-USERNAME/Win11Debloat.git
cd Win11Debloat cd Win11Debloat
``` ```
3. **Create a new branch** for your contribution: 3. **Create a new branch** for your contribution:
```powershell ```powershell
git checkout -b feature/your-feature-name git checkout -b feature/your-feature-name
``` ```
@@ -42,11 +46,14 @@ You can launch the prerelease version of Win11Debloat by running this command:
1. Open PowerShell as an administrator 1. Open PowerShell as an administrator
2. Enable script execution if necessary: 2. Enable script execution if necessary:
```powershell ```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force Set-ExecutionPolicy Unrestricted -Scope Process -Force
``` ```
3. Navigate to your Win11Debloat directory 3. Navigate to your Win11Debloat directory
4. Run the script: 4. Run the script:
```powershell ```powershell
.\Win11Debloat.ps1 .\Win11Debloat.ps1
``` ```
@@ -57,18 +64,31 @@ You can launch the prerelease version of Win11Debloat by running this command:
Understanding the project structure is essential for contributing effectively: Understanding the project structure is essential for contributing effectively:
``` ```text
Win11Debloat/ Win11Debloat/
├── Win11Debloat.ps1 # Main PowerShell script ├── Win11Debloat.ps1 # Main PowerShell script
├── Run.bat # Batch launcher for the quick launch method
├── Scripts/ # Additional PowerShell scripts and functions ├── Scripts/ # Additional PowerShell scripts and functions
── Get.ps1 # Script used for the quick launch method to automatically download and run Win11debloat ── Get.ps1 # Script used for the quick launch method to automatically download and run Win11debloat
│ ├── AppRemoval/ # App package removal logic
│ ├── CLI/ # Command-line interface helpers
│ ├── Features/ # Feature apply/undo logic (e.g. InvokeChanges.ps1, ReplaceStartMenu.ps1)
│ ├── FileIO/ # File input/output helpers
│ ├── GUI/ # GUI window definitions and logic
│ ├── Helpers/ # Shared helper functions
│ └── Threading/ # Threading utilities
├── Config/ ├── Config/
│ ├── Apps.json # List of supported apps for removal │ ├── Apps.json # List of supported apps for removal
│ ├── DefaultSettings.json # Default configuration preset │ ├── DefaultSettings.json # Default configuration preset
│ ├── Features.json # All features with metadata │ ├── Features.json # All features with metadata
│ └── LastUsedSettings.json # Last used configuration (generated during use) │ └── LastUsedSettings.json # Last used configuration (generated during use)
├── Regfiles/ # Registry files for each feature ├── Regfiles/ # Registry files for all features
└── Schemas/ # XAML Schemas for GUI elements │ ├── Undo/ # Registry files for reverting features
│ └── Sysprep/ # Registry files for Sysprep mode
├── Schemas/ # XAML Schemas for GUI elements
├── Assets/ # Static assets (icons, start menu templates)
├── Backups/ # Registry backups (generated during use)
└── Logs/ # Script logs (generated during use)
``` ```
### Best Practices ### Best Practices
@@ -98,20 +118,20 @@ Avoid these common mistakes when contributing:
1. **Forgetting Get.ps1**: When adding a new command-line parameter, contributors often remember to add it to `Win11Debloat.ps1` but forget to add the same parameter to `Scripts/Get.ps1`. Both files **must** have matching parameters. 1. **Forgetting Get.ps1**: When adding a new command-line parameter, contributors often remember to add it to `Win11Debloat.ps1` but forget to add the same parameter to `Scripts/Get.ps1`. Both files **must** have matching parameters.
2. **Missing Registry Files**: Always create an `Undo` registry file for reversibility, aswell as a `Sysprep` registry file for Sysprep mode. 2. **Missing Registry Files**: Always create an `Undo` registry file for reversibility, aswell as a `Sysprep` registry file for applying changes to other users and Sysprep mode.
3. **Incorrect Registry Hives for Sysprep**: Sysprep registry files apply changes to Windows' default user, registry keys in the `HKEY_CURRENT_USER` hive must use `hkey_users\default` instead. Ensure you update **all** registry keys in the file. 3. **Incorrect Registry Hives for Sysprep**: Sysprep registry files are meant to apply changes to a different user. Registry keys in the `HKEY_CURRENT_USER` hive must use `hkey_users\default` instead. Ensure you update **all** registry keys in the file.
4. **Wrong Registry File Location**: 4. **Wrong Registry File Location**:
- Main action files go in `Regfiles/` - Main action files go in `Regfiles/`
- Undo files go in `Regfiles/Undo/` - Undo files go in `Regfiles/Undo/`
- Sysprep files go in `Regfiles/Sysprep/` - Sysprep files go in `Regfiles/Sysprep/`
Placing files in the wrong directory will cause the script to fail when trying to apply or undo changes. Placing files in the wrong directory may cause the script to fail when trying to apply or undo changes.
6. **Not Testing Undo Functionality**: Always test that your undo registry file properly reverts all changes. A feature that can't be undone will frustrate users. 5. **Not Testing Undo Functionality**: Always test that your undo registry file properly reverts all changes.
7. **Not Testing User/Sysprep Functionality**: Always test that your feature works when applied to another user or to the Windows default user with Sysprep. Sysprep changes can be tested by creating new users after running the script. 6. **Not Testing User/Sysprep Functionality**: Always test that your feature works when applied to another user or to the Windows default user with Sysprep. Sysprep changes can be tested by creating new users after running the script.
7. **Missing Category**: Features without a `Category` field (set to `null`) won't appear in the GUI. This is intentional for command-line-only features, make sure this is what you want before submitting. 7. **Missing Category**: Features without a `Category` field (set to `null`) won't appear in the GUI. This is intentional for command-line-only features, make sure this is what you want before submitting.
@@ -127,11 +147,13 @@ Avoid these common mistakes when contributing:
To add a new app that can be removed via Win11Debloat: To add a new app that can be removed via Win11Debloat:
1. **Find the AppId**: To find the correct AppId for an app: 1. **Find the AppId**: To find the correct AppId for an app:
```powershell ```powershell
Get-AppxPackage | Select-Object Name, PackageFullName Get-AppxPackage | Select-Object Name, PackageFullName
``` ```
2. **Edit `Config/Apps.json`**: Add a new entry to the `"Apps"` array: 2. **Edit `Config/Apps.json`**: Add a new entry to the `"Apps"` array:
```json ```json
{ {
"FriendlyName": "Display Name", "FriendlyName": "Display Name",
@@ -142,9 +164,10 @@ To add a new app that can be removed via Win11Debloat:
``` ```
3. **Follow the Guidelines**: 3. **Follow the Guidelines**:
- Use clear, user-friendly names for `FriendlyName`
- Set `SelectedByDefault` to `true` only for apps that are largely considered bloatware, otherwise set to `false` - Use clear, user-friendly names for `FriendlyName`
- Provide a concise description explaining what the app does - Set `SelectedByDefault` to `true` only for apps that are largely considered bloatware, otherwise set to `false`
- Provide a concise description explaining what the app does
### Adding a New Feature ### Adding a New Feature
@@ -162,6 +185,7 @@ Create new registry files in the `Regfiles/` directory:
- **Sysprep file**: `Sysprep/Disable_YourFeature.reg` (for Sysprep mode) - **Sysprep file**: `Sysprep/Disable_YourFeature.reg` (for Sysprep mode)
Example registry file structure: Example registry file structure:
```reg ```reg
Windows Registry Editor Version 5.00 Windows Registry Editor Version 5.00
@@ -170,6 +194,7 @@ Windows Registry Editor Version 5.00
``` ```
A Sysprep registry file should apply the same changes as the normal action. Replace the hive of registry keys that start with `HKEY_CURRENT_USER` with `hkey_users\default`. For example: A Sysprep registry file should apply the same changes as the normal action. Replace the hive of registry keys that start with `HKEY_CURRENT_USER` with `hkey_users\default`. For example:
```reg ```reg
Windows Registry Editor Version 5.00 Windows Registry Editor Version 5.00
@@ -179,7 +204,7 @@ Windows Registry Editor Version 5.00
#### 1b. Implement the Feature Logic #### 1b. Implement the Feature Logic
If your feature requires more than just applying a registry file, add custom logic to the main script in the appropriate section. In most cases this will involve creating a new entry in the `ExecuteParameter` function for your new feature. If your feature requires more than just applying a registry file, add custom logic to the main script in the appropriate section. In most cases this will involve creating a new entry in the `Invoke-FeatureApply` function (in `Scripts/Features/InvokeChanges.ps1`) for your new feature. If your feature also requires custom undo logic (beyond a simple registry file import), add a corresponding entry to the `Invoke-FeatureUndo` function in the same file.
#### 2. Add Feature to Features.json #### 2. Add Feature to Features.json
@@ -192,35 +217,39 @@ Add your feature to the `"Features"` array in `Config/Features.json`:
"ToolTip": "Detailed explanation of what this feature does and its impact.", "ToolTip": "Detailed explanation of what this feature does and its impact.",
"Category": "Privacy & Suggested Content", "Category": "Privacy & Suggested Content",
"Priority": 1, "Priority": 1,
"Action": "Disable",
"RegistryKey": "Disable_YourFeature.reg", "RegistryKey": "Disable_YourFeature.reg",
"ApplyText": "Disabling your feature...", "ApplyText": "Disabling your feature",
"UndoAction": "Enable", "UndoLabel": "Short description for the undo",
"ApplyUndoText": "Enabling your feature",
"RegistryUndoKey": "Enable_YourFeature.reg", "RegistryUndoKey": "Enable_YourFeature.reg",
"RequiresReboot": false, "RequiresReboot": false,
"DisableWhenApplied": false,
"MinVersion": null, "MinVersion": null,
"MaxVersion": null "MaxVersion": null
} }
``` ```
**Field Descriptions**: **Field Descriptions**:
- `FeatureId`: Unique identifier (must match parameter name in Win11Debloat.ps1 and Get.ps1)
- `Label`: Short description shown in the UI, written in a way to fit with the Action or UndoAction prefixed - `FeatureId`: Unique identifier, this must match parameter name in the Win11Debloat.ps1 and Get.ps1 files.
- `ToolTip`: Detailed explanation of what the feature does, used for tooltips in the GUI - `Label`: Short description shown in the UI and wiki documentation.
- `ToolTip`: Detailed explanation of what the feature does, used for tooltips in the GUI.
- `Category`: One of the predefined categories (see Categories array in Features.json), features without a category won't be loaded into the GUI. - `Category`: One of the predefined categories (see Categories array in Features.json), features without a category won't be loaded into the GUI.
- `Priority`: Optional. The priority value (int) is used to sort features within a category. If this field is omitted the feature will be sorted based on the order in the Features.json file. - `Priority`: Optional. The priority value (int) is used to sort features within a category. If this field is omitted the feature will be sorted based on the order in the Features.json file.
- `Action`: Action word for the feature (e.g., "Disable", "Enable", "Hide", "Show") - `RegistryKey`: Filename of the registry file to apply (in Regfiles/ directory) or null if feature does not require registry changes.
- `RegistryKey`: Filename of the registry file to apply (in Regfiles/ directory) or null if feature does not require registry changes - `ApplyText`: Message shown when applying the feature.
- `ApplyText`: Message shown when applying the feature - `UndoLabel`: Short description for the undo shown in the UI.
- `UndoAction`: Action word for reverting (e.g., "Enable", "Show") - `ApplyUndoText`: Message shown when undoing the feature.
- `RegistryUndoKey`: Filename of the registry file to revert changes or null if feature does not require registry changes - `RegistryUndoKey`: Filename of the registry file to revert changes or null if feature does not require registry changes.
- `RequiresReboot`: Optional boolean. Set to `true` if the feature requires a system reboot to take effect - `RequiresReboot`: Optional boolean. Set to `true` if the feature requires a system reboot to take effect.
- `MinVersion`: Minimum Windows build version (e.g., "22000") or null - `DisableWhenApplied`: Optional boolean. Set to `true` if the feature has no supported undo method.
- `MaxVersion`: Maximum Windows version or null - `MinVersion`: Minimum Windows build version (e.g., "22000") or null.
- `MaxVersion`: Maximum Windows version or null.
#### 3. Add Command-Line Parameter #### 3. Add Command-Line Parameter
Add a corresponding parameter to both `Win11Debloat.ps1` AND `Scripts/Get.ps1`, the parameter name should match the FeatureId you have defined in `Features.json`. In most cases this will be a switch parameter, example: Add a corresponding parameter to both `Win11Debloat.ps1` AND `Scripts/Get.ps1`, the parameter name should match the FeatureId you have defined in `Features.json`. In most cases this will be a switch parameter, example:
```powershell ```powershell
[switch]$YourFeatureId, [switch]$YourFeatureId,
``` ```
@@ -233,12 +262,14 @@ Add a corresponding parameter to both `Win11Debloat.ps1` AND `Scripts/Get.ps1`,
The default preset (`Config/DefaultSettings.json`) defines which features are automatically applied when users run Win11Debloat in "Default Mode" or with the `-RunDefaults` parameter. This preset should include features that are widely considered to improve the Windows experience without breaking functionality. The default preset (`Config/DefaultSettings.json`) defines which features are automatically applied when users run Win11Debloat in "Default Mode" or with the `-RunDefaults` parameter. This preset should include features that are widely considered to improve the Windows experience without breaking functionality.
**When to add a feature to the default preset:** **When to add a feature to the default preset:**
- The feature removes obvious bloatware or distractions - The feature removes obvious bloatware or distractions
- The feature enhances privacy without breaking core functionality - The feature enhances privacy without breaking core functionality
- The feature is generally non-controversial and beneficial to most users - The feature is generally non-controversial and beneficial to most users
- The change can be easily reverted if needed - The change can be easily reverted if needed
**When NOT to add a feature to the default preset:** **When NOT to add a feature to the default preset:**
- The feature significantly changes core Windows behavior - The feature significantly changes core Windows behavior
- The feature might break applications or workflows for some users - The feature might break applications or workflows for some users
- The feature is highly opinionated or preference-based - The feature is highly opinionated or preference-based
@@ -254,10 +285,12 @@ To add your feature to the default preset, edit `Config/DefaultSettings.json` an
``` ```
**Field Descriptions**: **Field Descriptions**:
- `Name`: Must exactly match the `FeatureId` from Features.json - `Name`: Must exactly match the `FeatureId` from Features.json
- `Value`: Set to `true` to enable the feature in default mode - `Value`: Set to `true` to enable the feature in default mode
**Example:** **Example:**
```json ```json
{ {
"Version": "1.0", "Version": "1.0",
@@ -283,12 +316,13 @@ To add your feature to the default preset, edit `Config/DefaultSettings.json` an
To add a new category for organizing features: To add a new category for organizing features:
- Add a new category entry to the `"Categories"` array in `Config/Features.json`: - Add a new category entry to the `"Categories"` array in `Config/Features.json`:
```json
{ ```json
"Name": "Your Category Name", {
"Icon": "&#xE#### ;" "Name": "Your Category Name",
} "Icon": "&#xE#### ;"
``` }
```
> [!TIP] > [!TIP]
> Use [Segoe Fluent Icon Assets](https://learn.microsoft.com/en-us/windows/apps/design/iconography/segoe-fluent-icons-font) for icon codes. > Use [Segoe Fluent Icon Assets](https://learn.microsoft.com/en-us/windows/apps/design/iconography/segoe-fluent-icons-font) for icon codes.
@@ -320,17 +354,20 @@ UI Groups allow features to be grouped together in the GUI with a combobox (drop
## Submitting a Pull Request ## Submitting a Pull Request
1. **Commit your changes** with clear, descriptive commit messages: 1. **Commit your changes** with clear, descriptive commit messages:
```powershell ```powershell
git add . git add .
git commit -m "Add feature: Description of your changes" git commit -m "Add feature: Description of your changes"
``` ```
2. **Push to your fork**: 2. **Push to your fork**:
```powershell ```powershell
git push origin feature/your-feature-name git push origin feature/your-feature-name
``` ```
3. **Create a Pull Request** on GitHub: 3. **Create a Pull Request** on GitHub:
- Go to the original Win11Debloat repository - Go to the original Win11Debloat repository
- Click "New Pull Request" - Click "New Pull Request"
- Select your fork and branch - Select your fork and branch
@@ -342,6 +379,7 @@ UI Groups allow features to be grouped together in the GUI with a combobox (drop
# Questions? # Questions?
If you have questions about contributing, feel free to: If you have questions about contributing, feel free to:
- Open a [discussion](https://github.com/Raphire/Win11Debloat/discussions) - Open a [discussion](https://github.com/Raphire/Win11Debloat/discussions)
- Comment on an existing issue - Comment on an existing issue
- Ask in your pull request - Ask in your pull request

View File

@@ -1,6 +1,6 @@
name: "🐞 Bug report" name: "🐞 Bug report"
description: "Report an issue you encountered" description: "Report an issue you encountered"
labels: ["bug"] labels: ["bug", "unconfirmed"]
body: body:
- type: markdown - type: markdown

5
.gitignore vendored
View File

@@ -1,6 +1,3 @@
LastSettings
SavedSettings
LastUsedSettings.json LastUsedSettings.json
CustomAppsList
Logs/* Logs/*
Win11Debloat.log Backups/*

File diff suppressed because it is too large Load Diff

View File

@@ -61,10 +61,6 @@
"Name": "DisableDragTray", "Name": "DisableDragTray",
"Value": true "Value": true
}, },
{
"Name": "DisableFastStartup",
"Value": true
},
{ {
"Name": "Hide3dObjects", "Name": "Hide3dObjects",
"Value": true "Value": true

File diff suppressed because it is too large Load Diff

View File

@@ -4,9 +4,9 @@
[![Join the Discussion](https://img.shields.io/badge/Join-the%20Discussion-2D9F2D?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Raphire/Win11Debloat/discussions) [![Join the Discussion](https://img.shields.io/badge/Join-the%20Discussion-2D9F2D?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Raphire/Win11Debloat/discussions)
[![Static Badge](https://img.shields.io/badge/Documentation-_?style=for-the-badge&logo=bookstack&color=grey)](https://github.com/Raphire/Win11Debloat/wiki/) [![Static Badge](https://img.shields.io/badge/Documentation-_?style=for-the-badge&logo=bookstack&color=grey)](https://github.com/Raphire/Win11Debloat/wiki/)
Win11Debloat is a lightweight, easy to use PowerShell script that allows you to quickly declutter and customize your Windows experience. It can remove pre-installed bloatware apps, disable telemetry, remove intrusive interface elements and much more. No need to painstakingly go through all the settings yourself or remove apps one by one. Win11Debloat makes the process quick and easy! Win11Debloat is a lightweight, easy to use PowerShell script that allows you to quickly declutter and customize your Windows experience, no installation required! You can use it to remove pre-installed apps, disable telemetry, remove intrusive interface elements and much more. No need to painstakingly go through all the settings yourself or remove apps one by one. Win11Debloat makes the process quick and easy!
The script also includes many features that system administrators and power users will enjoy. Such as a powerful command-line interface, support for Windows Audit mode and the option to make changes to other Windows users. Please refer to our [wiki](https://github.com/Raphire/Win11Debloat/wiki/) for more details. The script also includes many features that system administrators and power users will enjoy. Such as a powerful command-line interface, support for Windows Audit mode and the ability to make changes to other Windows users. Please refer to our [wiki](https://github.com/Raphire/Win11Debloat/wiki/) for more details.
![Win11Debloat Menu](/Assets/Images/menu.png) ![Win11Debloat Menu](/Assets/Images/menu.png)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,7 @@
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Start]
"AllAppsViewMode"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoStartMenuMorePrograms"=-

View File

@@ -0,0 +1,7 @@
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Start]
"AllAppsViewMode"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoStartMenuMorePrograms"=-

View File

@@ -0,0 +1,7 @@
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Start]
"AllAppsViewMode"=dword:00000002
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoStartMenuMorePrograms"=-

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