From c553fbdba5a24269f8d88d6bb512c27cfedc1da5 Mon Sep 17 00:00:00 2001 From: EzekialSA Date: Sun, 17 May 2026 23:22:39 +0800 Subject: [PATCH] Add configuration files for system settings and browser preferences - Create registry.csv to define various Windows registry settings for privacy, telemetry, and UI preferences. - Add betterfoxoverrides.js for Firefox to restore login manager, address and credit card manager, and customize new tab page settings. - Introduce smoothfox.js for Firefox to enable smooth scrolling and adjust mouse wheel settings. - Establish registry.yaml to organize and document registry paths and values for system, appearance, search, privacy, and application settings. --- 2_ConfigUpdate.ps1 | 99 +++-- registry.csv => Archive/registry.csv | 0 Firefox/betterfoxoverrides.js | 61 +++ Firefox/smoothfox.js | 4 + Firefox/user.js | 300 -------------- registry.yaml | 595 +++++++++++++++++++++++++++ 6 files changed, 727 insertions(+), 332 deletions(-) rename registry.csv => Archive/registry.csv (100%) create mode 100644 Firefox/betterfoxoverrides.js create mode 100644 Firefox/smoothfox.js delete mode 100644 Firefox/user.js create mode 100644 registry.yaml diff --git a/2_ConfigUpdate.ps1 b/2_ConfigUpdate.ps1 index c65e313..c9982b6 100644 --- a/2_ConfigUpdate.ps1 +++ b/2_ConfigUpdate.ps1 @@ -70,22 +70,34 @@ if (-not ($systemPathReference -split ";" | Where-Object { $_ -eq $forgeScriptsP # Define the base Firefox profiles directory $profilesDir = "$env:APPDATA\Mozilla\Firefox\Profiles" -# Define the source user.js file -$sourceFile = "$scriptDir\Firefox\user.js" # Use absolute path based on script location +# Download latest Betterfox user.js and append overrides +Write-Host "Downloading latest Betterfox user.js..." +$betterfoxUrl = "https://raw.githubusercontent.com/yokoffing/Betterfox/main/user.js" +$betterfoxContent = (Invoke-WebRequest -Uri $betterfoxUrl -UseBasicParsing).Content -# Check if the source file exists -if (-not (Test-Path -Path $sourceFile)) { - Write-Error "Source user.js file not found at $sourceFile" - exit +# Read local override files +$overridesFile = "$scriptDir\Firefox\betterfoxoverrides.js" +$smoothfoxFile = "$scriptDir\Firefox\smoothfox.js" +$overridesContent = Get-Content -Path $overridesFile -Raw +$smoothfoxContent = Get-Content -Path $smoothfoxFile -Raw + +# Insert overrides at the marked sections in Betterfox +$personalMarker = "// Enter your personal overrides below this line:" +$scrollingMarker = "// Enter your scrolling overrides below this line:" + +if ($betterfoxContent -match [regex]::Escape($personalMarker)) { + $betterfoxContent = $betterfoxContent -replace [regex]::Escape($personalMarker), "$personalMarker`n$overridesContent" +} +if ($betterfoxContent -match [regex]::Escape($scrollingMarker)) { + $betterfoxContent = $betterfoxContent -replace [regex]::Escape($scrollingMarker), "$scrollingMarker`n$smoothfoxContent" } -# Loop through all subdirectories in the profiles folder +# Deploy to all Firefox profiles Get-ChildItem -Path $profilesDir -Directory | ForEach-Object { $profilePath = $_.FullName $destinationFile = Join-Path -Path $profilePath -ChildPath "user.js" - # Copy the user.js file to the profile directory - Copy-Item -Path $sourceFile -Destination $destinationFile -Force + Set-Content -Path $destinationFile -Value $betterfoxContent -Force Write-Host "user.js has been placed in: $profilePath" } @@ -93,27 +105,25 @@ Write-Host "Operation completed for all Firefox profiles." -# Path to the CSV file -$csvFilePath = "$scriptDir\registry.csv" -$entries = Import-Csv -Path $csvFilePath +# Path to the YAML registry file +$yamlFilePath = "$scriptDir\registry.yaml" +$yamlContent = Get-Content -Path $yamlFilePath -Raw -foreach ($entry in $entries) { - # Trim fields to remove extra spaces - $registryPath = $entry.registryPath.Trim() - $propertyName = $entry.propertyName.Trim() - $propertyType = $entry.propertyType.Trim() - $propertyValue = $entry.propertyValue.Trim() +# Install powershell-yaml if not already available +if (-not (Get-Module -ListAvailable -Name powershell-yaml)) { + Write-Host "Installing powershell-yaml module..." + Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force | Out-Null + Install-Module -Name powershell-yaml -Force -Scope CurrentUser +} +Import-Module powershell-yaml - # Validate required fields - if (-not $registryPath -or -not $propertyName -or -not $propertyType -or -not $propertyValue) { - Write-Warning "Skipping row with incomplete data: $($entry | Out-String)" - continue - } +$blocks = ConvertFrom-Yaml $yamlContent - # Print debug info - #Write-Host "Processing: Path=$registryPath Name=$propertyName Type=$propertyType Value=$propertyValue" +foreach ($block in $blocks) { + $registryPath = $block.path + $defaultType = $block.type # May be null if values use long form - # Check if registry path exists, create if necessary + # Ensure the registry path exists if (-not (Test-Path $registryPath)) { try { New-Item -Path $registryPath -Force | Out-Null @@ -124,12 +134,37 @@ foreach ($entry in $entries) { } } - # Set the registry property - try { - Set-ItemProperty -Path $registryPath -Name $propertyName -Type $propertyType -Value $propertyValue - # Write-Host "Successfully set $propertyName in $registryPath to $propertyValue." - } catch { - Write-Warning "Failed to set $propertyName in $registryPath. $_" + foreach ($item in $block.values) { + if ($block.values -is [System.Collections.IList]) { + # Long form: list of {name, type, value} + $propName = $item.name + $propType = $item.type + $propValue = $item.value + } else { + # Short form: dictionary - foreach over a dict gives KeyValuePair + break + } + + try { + Set-ItemProperty -Path $registryPath -Name $propName -Type $propType -Value $propValue + } catch { + Write-Warning "Failed to set $propName in $registryPath. $_" + } + } + + # Handle short form: values is a dictionary/hashtable + if ($block.values -isnot [System.Collections.IList]) { + foreach ($key in $block.values.Keys) { + $propName = $key + $propType = $defaultType + $propValue = $block.values[$key] + + try { + Set-ItemProperty -Path $registryPath -Name $propName -Type $propType -Value $propValue + } catch { + Write-Warning "Failed to set $propName in $registryPath. $_" + } + } } } diff --git a/registry.csv b/Archive/registry.csv similarity index 100% rename from registry.csv rename to Archive/registry.csv diff --git a/Firefox/betterfoxoverrides.js b/Firefox/betterfoxoverrides.js new file mode 100644 index 0000000..2ed2df3 --- /dev/null +++ b/Firefox/betterfoxoverrides.js @@ -0,0 +1,61 @@ +user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5); +user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100); +user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false); + +// PREF: restore login manager +user_pref("signon.rememberSignons", true); + +// PREF: pop-up to save logins for a new site +user_pref("signon.formlessCapture.enabled", true); + +// PREF: restore address and credit card manager +user_pref("extensions.formautofill.addresses.enabled", true); +user_pref("extensions.formautofill.creditCards.enabled", true); + +// PREF: restore Top Sites on New Tab page +user_pref("browser.newtabpage.activity-stream.feeds.topsites", true); + +// PREF: remove default Top Sites (Facebook, Twitter, etc.) +// This does not block you from adding your own. +user_pref("browser.newtabpage.activity-stream.default.sites", ""); + +// PREF: remove sponsored content on New Tab page +user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); // Sponsored shortcuts +user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); // Recommended by Pocket +user_pref("browser.newtabpage.activity-stream.showSponsored", false); // Sponsored Stories + +// PREF: enable container tabs +user_pref("privacy.userContext.enabled", true); + +// PREF: enable GPU-accelerated Canvas2D [WINDOWS] +user_pref("gfx.canvas.accelerated", true); + +// PREF: restore search engine suggestions +user_pref("browser.search.suggest.enabled", true); + +// PREF: Allow uBlock Origin in private browsing +user_pref("extensions.webextensions.privateBrowsing.enabled.uBlock0@raymondhill.net", true); + +// PREF: Set search engine placeholders (cosmetic) +user_pref("browser.urlbar.placeholderName", "DuckDuckGo"); +user_pref("browser.urlbar.placeholderName.private", "DuckDuckGo"); + +// PREF: Fake flag but attempting anyways to set default browser +user_pref("browser.search.defaultenginename", "DuckDuckGo"); +user_pref("browser.policies.runOncePerModification.setDefaultSearchEngine", "DuckDuckGo"); +user_pref("browser.urlbar.placeholderName", "DuckDuckGo"); +user_pref("browser.urlbar.placeholderName.private", "DuckDuckGo"); +user_pref("browser.preferences.moreFromMozilla", false); + +// Disable search suggestions in private browsing +user_pref("browser.search.suggest.enabled.private", false); + +// Use separate search engine for private browsing +user_pref("browser.search.separatePrivateDefault", true); +user_pref("browser.search.separatePrivateDefault.ui.enabled", true); + +// PREF: smart tab groups +user_pref("browser.tabs.groups.smart.enabled", false); + +// PREF: restore link previews +user_pref("browser.ml.linkPreview.enabled", true); \ No newline at end of file diff --git a/Firefox/smoothfox.js b/Firefox/smoothfox.js new file mode 100644 index 0000000..98c2957 --- /dev/null +++ b/Firefox/smoothfox.js @@ -0,0 +1,4 @@ +user_pref("apz.overscroll.enabled", true); // DEFAULT NON-LINUX +user_pref("general.smoothScroll", true); // DEFAULT +user_pref("general.smoothScroll.msdPhysics.enabled", true); +user_pref("mousewheel.default.delta_multiplier_y", 300); // 250-400; adjust this number to your liking \ No newline at end of file diff --git a/Firefox/user.js b/Firefox/user.js deleted file mode 100644 index f6e8805..0000000 --- a/Firefox/user.js +++ /dev/null @@ -1,300 +0,0 @@ -// -/* You may copy+paste this file and use it as it is. - * - * If you make changes to your about:config while the program is running, the - * changes will be overwritten by the user.js when the application restarts. - * - * To make lasting changes to preferences, you will have to edit the user.js. - */ - -/**************************************************************************** - * Betterfox * - * "Ad meliora" * - * version: 142 * - * url: https://github.com/yokoffing/Betterfox * -****************************************************************************/ - -/**************************************************************************** - * SECTION: FASTFOX * -****************************************************************************/ -/** GENERAL ***/ -user_pref("content.notify.interval", 100000); - -/** GFX ***/ -user_pref("gfx.canvas.accelerated.cache-size", 512); -user_pref("gfx.content.skia-font-cache-size", 20); - -/** DISK CACHE ***/ -user_pref("browser.cache.disk.enable", false); - -/** MEMORY CACHE ***/ -user_pref("browser.sessionhistory.max_total_viewers", 4); - -/** MEDIA CACHE ***/ -user_pref("media.memory_cache_max_size", 65536); -user_pref("media.cache_readahead_limit", 7200); -user_pref("media.cache_resume_threshold", 3600); - -/** IMAGE CACHE ***/ -user_pref("image.mem.decode_bytes_at_a_time", 32768); - -/** NETWORK ***/ -user_pref("network.http.max-connections", 1800); -user_pref("network.http.max-persistent-connections-per-server", 10); -user_pref("network.http.max-urgent-start-excessive-connections-per-host", 5); -user_pref("network.http.pacing.requests.enabled", false); -user_pref("network.dnsCacheExpiration", 3600); -user_pref("network.ssl_tokens_cache_capacity", 10240); - -/** SPECULATIVE LOADING ***/ -user_pref("network.http.speculative-parallel-limit", 0); -user_pref("network.dns.disablePrefetch", true); -user_pref("network.dns.disablePrefetchFromHTTPS", true); -user_pref("browser.urlbar.speculativeConnect.enabled", false); -user_pref("browser.places.speculativeConnect.enabled", false); -user_pref("network.prefetch-next", false); -user_pref("network.predictor.enabled", false); - -/** EXPERIMENTAL ***/ -user_pref("layout.css.grid-template-masonry-value.enabled", true); - -/**************************************************************************** - * SECTION: SECUREFOX * -****************************************************************************/ -/** TRACKING PROTECTION ***/ -user_pref("browser.contentblocking.category", "strict"); -user_pref("privacy.trackingprotection.allow_list.baseline.enabled", true); -user_pref("privacy.trackingprotection.allow_list.convenience.enabled", true); -user_pref("browser.download.start_downloads_in_tmp_dir", true); -user_pref("browser.helperApps.deleteTempFileOnExit", true); -user_pref("browser.uitour.enabled", false); -user_pref("privacy.globalprivacycontrol.enabled", true); - -/** OCSP & CERTS / HPKP ***/ -user_pref("security.OCSP.enabled", 0); -user_pref("security.pki.crlite_mode", 2); -user_pref("security.csp.reporting.enabled", false); - -/** SSL / TLS ***/ -user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true); -user_pref("browser.xul.error_pages.expert_bad_cert", true); -user_pref("security.tls.enable_0rtt_data", false); - -/** DISK AVOIDANCE ***/ -user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); -user_pref("browser.sessionstore.interval", 60000); - -/** SHUTDOWN & SANITIZING ***/ -user_pref("browser.privatebrowsing.resetPBM.enabled", true); -user_pref("privacy.history.custom", true); - -/** SEARCH / URL BAR ***/ -user_pref("browser.urlbar.trimHttps", true); -user_pref("browser.urlbar.untrimOnUserInteraction.featureGate", true); -user_pref("browser.search.separatePrivateDefault.ui.enabled", true); -user_pref("browser.search.suggest.enabled", false); -user_pref("browser.urlbar.quicksuggest.enabled", false); -user_pref("browser.urlbar.groupLabels.enabled", false); -user_pref("browser.formfill.enable", false); -user_pref("network.IDN_show_punycode", true); - -/** PASSWORDS ***/ -user_pref("signon.formlessCapture.enabled", false); -user_pref("signon.privateBrowsingCapture.enabled", false); -user_pref("network.auth.subresource-http-auth-allow", 1); -user_pref("editor.truncate_user_pastes", false); - -/** MIXED CONTENT + CROSS-SITE ***/ -user_pref("security.mixed_content.block_display_content", true); -user_pref("pdfjs.enableScripting", false); - -/** EXTENSIONS ***/ -user_pref("extensions.enabledScopes", 5); - -/** HEADERS / REFERERS ***/ -user_pref("network.http.referer.XOriginTrimmingPolicy", 2); - -/** CONTAINERS ***/ -user_pref("privacy.userContext.ui.enabled", true); - -/** SAFE BROWSING ***/ -user_pref("browser.safebrowsing.downloads.remote.enabled", false); - -/** MOZILLA ***/ -user_pref("permissions.default.desktop-notification", 2); -user_pref("permissions.default.geo", 2); -user_pref("geo.provider.network.url", "https://beacondb.net/v1/geolocate"); -user_pref("browser.search.update", false); -user_pref("permissions.manager.defaultsUrl", ""); -user_pref("extensions.getAddons.cache.enabled", false); - -/** TELEMETRY ***/ -user_pref("datareporting.policy.dataSubmissionEnabled", false); -user_pref("datareporting.healthreport.uploadEnabled", false); -user_pref("toolkit.telemetry.unified", false); -user_pref("toolkit.telemetry.enabled", false); -user_pref("toolkit.telemetry.server", "data:,"); -user_pref("toolkit.telemetry.archive.enabled", false); -user_pref("toolkit.telemetry.newProfilePing.enabled", false); -user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); -user_pref("toolkit.telemetry.updatePing.enabled", false); -user_pref("toolkit.telemetry.bhrPing.enabled", false); -user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); -user_pref("toolkit.telemetry.coverage.opt-out", true); -user_pref("toolkit.coverage.opt-out", true); -user_pref("toolkit.coverage.endpoint.base", ""); -user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); -user_pref("browser.newtabpage.activity-stream.telemetry", false); -user_pref("datareporting.usage.uploadEnabled", false); - -/** EXPERIMENTS ***/ -user_pref("app.shield.optoutstudies.enabled", false); -user_pref("app.normandy.enabled", false); -user_pref("app.normandy.api_url", ""); - -/** CRASH REPORTS ***/ -user_pref("breakpad.reportURL", ""); -user_pref("browser.tabs.crashReporting.sendReport", false); - -/**************************************************************************** - * SECTION: PESKYFOX * -****************************************************************************/ -/** MOZILLA UI ***/ -user_pref("browser.privatebrowsing.vpnpromourl", ""); -user_pref("extensions.getAddons.showPane", false); -user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); -user_pref("browser.discovery.enabled", false); -user_pref("browser.shell.checkDefaultBrowser", false); -user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); -user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); -user_pref("browser.preferences.moreFromMozilla", false); -user_pref("browser.aboutConfig.showWarning", false); -user_pref("browser.aboutwelcome.enabled", false); -user_pref("browser.profiles.enabled", true); - -/** THEME ADJUSTMENTS ***/ -user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); -user_pref("browser.compactmode.show", true); -user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS - -/** AI ***/ -user_pref("browser.ml.enable", false); -user_pref("browser.ml.chat.enabled", false); - -/** FULLSCREEN NOTICE ***/ -user_pref("full-screen-api.transition-duration.enter", "0 0"); -user_pref("full-screen-api.transition-duration.leave", "0 0"); -user_pref("full-screen-api.warning.timeout", 0); - -/** URL BAR ***/ -user_pref("browser.urlbar.trending.featureGate", false); - -/** NEW TAB PAGE ***/ -user_pref("browser.newtabpage.activity-stream.default.sites", ""); -user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); -user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); -user_pref("browser.newtabpage.activity-stream.showSponsored", false); -user_pref("browser.newtabpage.activity-stream.showSponsoredCheckboxes", false); - -/** POCKET ***/ -user_pref("extensions.pocket.enabled", false); - -/** DOWNLOADS ***/ -user_pref("browser.download.manager.addToRecentDocs", false); - -/** PDF ***/ -user_pref("browser.download.open_pdf_attachments_inline", true); - -/** TAB BEHAVIOR ***/ -user_pref("browser.bookmarks.openInTabClosesMenu", false); -user_pref("browser.menu.showViewImageInfo", true); -user_pref("findbar.highlightAll", true); -user_pref("layout.word_select.eat_space_to_next_word", false); - -/**************************************************************************** - * START: MY OVERRIDES * -****************************************************************************/ -// visit https://github.com/yokoffing/Betterfox/wiki/Common-Overrides -// visit https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening -// Enter your personal overrides below this line: -// PREF: improve font rendering by using DirectWrite everywhere like Chrome [WINDOWS] -user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5); -user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100); -user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false); - -// PREF: restore login manager -user_pref("signon.rememberSignons", true); - -// PREF: pop-up to save logins for a new site -user_pref("signon.formlessCapture.enabled", true); - -// PREF: restore address and credit card manager -user_pref("extensions.formautofill.addresses.enabled", true); -user_pref("extensions.formautofill.creditCards.enabled", true); - -// PREF: restore Top Sites on New Tab page -user_pref("browser.newtabpage.activity-stream.feeds.topsites", true); - -// PREF: remove default Top Sites (Facebook, Twitter, etc.) -// This does not block you from adding your own. -user_pref("browser.newtabpage.activity-stream.default.sites", ""); - -// PREF: remove sponsored content on New Tab page -user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false); // Sponsored shortcuts -user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); // Recommended by Pocket -user_pref("browser.newtabpage.activity-stream.showSponsored", false); // Sponsored Stories - -// PREF: enable container tabs -user_pref("privacy.userContext.enabled", true); - -// PREF: enable GPU-accelerated Canvas2D [WINDOWS] -user_pref("gfx.canvas.accelerated", true); - -// PREF: restore search engine suggestions -user_pref("browser.search.suggest.enabled", true); - -// PREF: Allow uBlock Origin in private browsing -user_pref("extensions.webextensions.privateBrowsing.enabled.uBlock0@raymondhill.net", true); - -// PREF: Set search engine placeholders (cosmetic) -user_pref("browser.urlbar.placeholderName", "DuckDuckGo"); -user_pref("browser.urlbar.placeholderName.private", "DuckDuckGo"); - -// PREF: Fake flag but attempting anyways to set default browser -user_pref("browser.search.defaultenginename", "DuckDuckGo"); -user_pref("browser.policies.runOncePerModification.setDefaultSearchEngine", "DuckDuckGo"); -user_pref("browser.urlbar.placeholderName", "DuckDuckGo"); -user_pref("browser.urlbar.placeholderName.private", "DuckDuckGo"); -user_pref("browser.preferences.moreFromMozilla", false); - -// Disable search suggestions in private browsing -user_pref("browser.search.suggest.enabled.private", false); - -// Use separate search engine for private browsing -user_pref("browser.search.separatePrivateDefault", true); -user_pref("browser.search.separatePrivateDefault.ui.enabled", true); - -// PREF: smart tab groups -user_pref("browser.tabs.groups.smart.enabled", false); - -// PREF: restore link previews -user_pref("browser.ml.linkPreview.enabled", true); - - -/**************************************************************************** - * SECTION: SMOOTHFOX * -****************************************************************************/ -// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js -// Enter your scrolling overrides below this line: - -/**************************************************************************************** - * OPTION: SMOOTH SCROLLING * -****************************************************************************************/ -// recommended for 90hz+ displays -user_pref("apz.overscroll.enabled", true); // DEFAULT NON-LINUX -user_pref("general.smoothScroll", true); // DEFAULT -user_pref("general.smoothScroll.msdPhysics.enabled", true); -user_pref("mousewheel.default.delta_multiplier_y", 300); // 250-400; adjust this number to your liking -/**************************************************************************** - * END: BETTERFOX * -****************************************************************************/ diff --git a/registry.yaml b/registry.yaml new file mode 100644 index 0000000..048211c --- /dev/null +++ b/registry.yaml @@ -0,0 +1,595 @@ +# ============================================ +# Explorer & File Manager +# ============================================ + +- path: "HKCU:\\Control Panel\\Keyboard" + type: DWord + values: + PrintScreenKeyForSnippingEnabled: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer" + type: DWord + values: + ShowCloudFilesInQuickAccess: 0 + ShowFrequent: 0 + ShowRecent: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced" + type: DWord + values: + LaunchTo: 1 # Open to This PC + HideFileExt: 0 # Show file extensions + Hidden: 1 # Show hidden files + TaskbarAl: 0 # Align taskbar left + Start_AccountNotifications: 0 + ShowCopilotButton: 0 + Start_TrackProgs: 0 # Disable app launch tracking + Start_IrisRecommendations: 0 + ShowSyncProviderNotifications: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AutoComplete" + values: + - name: Append Completion + type: String + value: "no" + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer" + type: DWord + values: + HideSCAMeetNow: 1 + NoInstrumentation: 1 # Disable tracking of user activity + NoThumbnailCache: 1 + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer" + type: DWord + values: + HideSCAMeetNow: 1 + NoInstrumentation: 1 + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer" + type: DWord + values: + DisableSearchBoxSuggestions: 1 + HidePeopleBar: 1 + HideRecentlyAddedApps: 1 + DisableThumbsDBOnNetworkFolders: 1 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer" + type: DWord + values: + HidePeopleBar: 1 + DisableThumbsDBOnNetworkFolders: 1 + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\People" + type: DWord + values: + PeopleBand: 0 + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows" + type: DWord + values: + DisableThumbsDBOnNetworkFolders: 1 + +# ============================================ +# Appearance & Wallpaper +# ============================================ + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize" + type: DWord + values: + AppsUseLightTheme: 0 # Dark mode + SystemUsesLightTheme: 0 # Dark mode + EnableTransparency: 1 + +- path: "HKCU:\\Control Panel\\Desktop" + values: + - name: WallpaperStyle + type: String + value: "10" # Fill + - name: TileWallpaper + type: String + value: "0" + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\PersonalizationCSP" + values: + - name: LockScreenImagePath + type: String + value: "C:\\Windows\\Web\\Wallpaper\\Custom\\Lockscreen.png" + - name: LockScreenImageStatus + type: DWord + value: 1 + +# ============================================ +# Search & Cortana +# ============================================ + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Search" + type: DWord + values: + SearchboxTaskbarMode: 0 # Hide search box + BingSearchEnabled: 0 + CortanaEnabled: 0 + CortanaConsent: 0 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Windows Search" + type: DWord + values: + AllowCloudSearch: 0 + AllowCortana: 0 + AllowCortanaAboveLock: 0 + CortanaConsent: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SearchSettings" + type: DWord + values: + IsDynamicSearchBoxEnabled: 0 # Disable Search Highlights + +# ============================================ +# Taskbar & News +# ============================================ + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Dsh" + type: DWord + values: + AllowNewsAndInterests: 0 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Windows Feeds" + type: DWord + values: + EnableFeeds: 0 + +# ============================================ +# Privacy & Telemetry +# ============================================ + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AdvertisingInfo" + type: DWord + values: + Enabled: 0 # Disable advertising ID + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Privacy" + type: DWord + values: + TailoredExperiencesWithDiagnosticDataEnabled: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Speech_OneCore\\Settings\\OnlineSpeechPrivacy" + type: DWord + values: + HasAccepted: 0 # Disable online speech recognition + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Input\\TIPC" + type: DWord + values: + Enabled: 0 # Disable inking & typing data collection + +- path: "HKCU:\\SOFTWARE\\Microsoft\\InputPersonalization" + type: DWord + values: + RestrictImplicitInkCollection: 1 + RestrictImplicitTextCollection: 1 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\InputPersonalization\\TrainedDataStore" + type: DWord + values: + HarvestContacts: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Personalization\\Settings" + type: DWord + values: + AcceptedPrivacyPolicy: 0 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection" + type: DWord + values: + AllowTelemetry: 0 + MaxTelemetryAllowed: 0 + DoNotShowFeedbackNotifications: 1 + AllowDeviceNameInTelemetry: 0 + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\DataCollection" + type: DWord + values: + AllowTelemetry: 0 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\AppCompat" + type: DWord + values: + AITEnable: 0 # Disable Application Impact Telemetry + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\EdgeUI" + type: DWord + values: + DisableMFUTracking: 1 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\HandwritingErrorReports" + type: DWord + values: + PreventHandwritingErrorReports: 1 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\InputPersonalization" + type: DWord + values: + RestrictImplicitInkCollection: 1 + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\TextInput" + type: DWord + values: + AllowLinguisticDataCollection: 0 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System" + type: DWord + values: + PublishUserActivities: 0 # Disable Activity History + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Siuf\\Rules" + type: DWord + values: + NumberOfSIUFInPeriod: 0 # Set feedback frequency to never + +- path: "HKLM:\\SOFTWARE\\Microsoft\\PCHealth\\ErrorReporting" + type: DWord + values: + DoReport: 0 + ShowUI: 0 + +- path: "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\PCHealth\\ErrorReporting" + type: DWord + values: + DoReport: 0 + ShowUI: 0 + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl\\StorageTelemetry" + type: DWord + values: + DeviceDumpEnabled: 0 + +# ============================================ +# Windows Suggestions & Content Delivery +# ============================================ + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent" + type: DWord + values: + DisableWindowsConsumerFeatures: 1 + DisableConsumerAccountStateContent: 1 # Hide M365 Copilot ads in Settings + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent" + type: DWord + values: + DisableSpotlightCollectionOnDesktop: 1 # Disable Windows Spotlight for desktop + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager" + type: DWord + values: + SilentInstalledAppsEnabled: 0 # Disable auto-install of suggested apps + OemPreInstalledAppsEnabled: 0 + PreInstalledAppsEnabled: 0 + SystemPaneSuggestionsEnabled: 0 + SoftLandingEnabled: 0 + SubscribedContent-310093Enabled: 0 # Windows welcome experience after updates + SubscribedContent-338387Enabled: 0 # Lock screen tips & tricks + SubscribedContent-338388Enabled: 0 # Occasional suggestions in Start + SubscribedContent-338389Enabled: 0 # Tips, tricks & suggestions as you use Windows + SubscribedContent-338393Enabled: 0 # Suggested content in Settings + SubscribedContent-353694Enabled: 0 + SubscribedContent-353696Enabled: 0 + SubscribedContent-353698Enabled: 0 + RotatingLockScreenOverlayEnabled: 0 # Lock screen fun facts overlay + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SystemSettings\\AccountNotifications" + type: DWord + values: + EnableAccountNotifications: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Notifications\\Settings\\Windows.SystemToast.Suggested" + type: DWord + values: + Enabled: 0 # Disable "Suggested" app notifications + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Notifications\\Settings\\Windows.SystemToast.BackupReminder" + type: DWord + values: + Enabled: 0 # Disable Windows Backup reminders + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Mobility" + type: DWord + values: + OptedIn: 0 # Disable Phone Link suggestions + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement" + type: DWord + values: + ScoobeSystemSettingEnabled: 0 # Disable "finish setting up" nag + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CurrentVersion\\AccountNotifications" + type: DWord + values: + DisableAccountNotifications: 1 + +# ============================================ +# AI & Copilot +# ============================================ + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot" + type: DWord + values: + TurnOffWindowsCopilot: 1 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot" + type: DWord + values: + TurnOffWindowsCopilot: 1 + +- path: "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsAI" + type: DWord + values: + DisableAIDataAnalysis: 1 + DisableClickToDo: 1 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsAI" + type: DWord + values: + DisableAIDataAnalysis: 1 + AllowRecallEnablement: 0 + TurnOffSavingSnapshots: 1 + DisableClickToDo: 1 + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\WSAIFabricSvc" + type: DWord + values: + Start: 3 # Manual startup (prevent AI service auto-start) + +# ============================================ +# Edge Browser Policies +# ============================================ + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge" + type: DWord + values: + PersonalizationReportingEnabled: 0 + DiagnosticData: 0 + NewTabPageContentEnabled: 0 # Disable MSN news feed + NewTabPageHideDefaultTopSites: 1 + EdgeShoppingAssistantEnabled: 0 + TabServicesEnabled: 0 + AlternateErrorPagesEnabled: 0 + UserFeedbackAllowed: 0 + ShowRecommendationsEnabled: 0 + WalletDonationEnabled: 0 + HideFirstRunExperience: 0 + DefaultBrowserSettingEnabled: 0 # Don't prompt to be default + DefaultBrowserSettingsCampaignEnabled: 0 + SpotlightExperiencesAndRecommendationsEnabled: 0 + ShowAcrobatSubscriptionButton: 0 + +# ============================================ +# Brave Browser Policies +# ============================================ + +- path: "HKLM:\\Software\\Policies\\BraveSoftware\\Brave" + type: DWord + values: + BraveVPNDisabled: 1 + BraveWalletDisabled: 1 + BraveTalkDisabled: 1 + BraveNewsDisabled: 1 + DefaultBrowserSettingEnabled: 0 # Don't prompt to be default + +# ============================================ +# Firefox +# ============================================ + +- path: "HKCU:\\SOFTWARE\\Policies\\Mozilla\\Firefox\\SearchEngines" + values: + - name: Default + type: String + value: "DuckDuckGo" + +# ============================================ +# NVIDIA Telemetry +# ============================================ + +- path: "HKLM:\\SOFTWARE\\NVIDIA Corporation\\NvControlPanel2\\Client" + type: DWord + values: + OptInOrOutPreference: 0 + +- path: "HKLM:\\SOFTWARE\\NVIDIA Corporation\\Global\\FTS" + type: DWord + values: + EnableRID44231: 0 + EnableRID64640: 0 + EnableRID66610: 0 + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\NvTelemetryContainer" + type: DWord + values: + Start: 4 # Disabled + +# ============================================ +# SmartScreen +# ============================================ + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer" + values: + - name: SmartScreenEnabled + type: String + value: "Off" + +- path: "HKCU:\\SOFTWARE\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Storage\\microsoft.microsoftedge_8wekyb3d8bbwe\\MicrosoftEdge\\PhishingFilter" + type: DWord + values: + EnabledV9: 0 + +# ============================================ +# Location Services +# ============================================ + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\lfsvc\\Service\\Configuration" + type: DWord + values: + Status: 0 + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location" + values: + - name: Value + type: String + value: "Deny" + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location" + values: + - name: Value + type: String + value: "Deny" + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location\\NonPackaged" + values: + - name: Value + type: String + value: "Deny" + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location\\Microsoft.WindowsCamera_8wekyb3d8bbwe" + values: + - name: Value + type: String + value: "Deny" + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CPSS\\Store\\UserLocationOverridePrivacySetting" + type: DWord + values: + Value: 0 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location\\Microsoft.BingWeather_8wekyb3d8bbwe" + values: + - name: Value + type: String + value: "Deny" + +# ============================================ +# Remote Desktop +# ============================================ + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server" + type: DWord + values: + fDenyTSConnections: 0 # Enable RDP + fSingleSessionPerUser: 0 # Allow multiple sessions + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\TermService" + type: DWord + values: + Start: 2 # Automatic + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\RDPWD" + type: DWord + values: + Start: 2 + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\RDP-Tcp" + type: DWord + values: + Start: 2 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows NT\\Terminal Services" + type: DWord + values: + fDenyTSConnections: 0 + +# ============================================ +# MPC-HC Media Player +# ============================================ + +- path: "HKCU:\\SOFTWARE\\MPC-HC\\MPC-HC\\Settings" + type: DWord + values: + KeepHistory: 0 + RememberFilePos: 0 + RememberPosForAudioFiles: 0 + AfterPlayback: 0 + RememberWindowPos: 1 + RememberWindowSize: 1 + LoopFolderOnPlayNextFile: 0 + LockNoPause: 0 + PreventDisplaySleep: 1 + ShufflePlaylistItems: 0 + RememberPlaylistItems: 0 + HidePlaylistFullScreen: 0 + Loop: 1 + UpdaterAutoCheck: 0 + UpdaterDelay: 0 + +# ============================================ +# Accessibility +# ============================================ + +- path: "HKCU:\\Control Panel\\Accessibility\\StickyKeys" + values: + - name: Flags + type: String + value: "506" # Disable sticky keys shortcut + +- path: "HKCU:\\Control Panel\\Accessibility\\Keyboard Response" + values: + - name: Flags + type: String + value: "122" # Disable filter keys shortcut + +# ============================================ +# Security & Network +# ============================================ + +- path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" + type: DWord + values: + ConsentPromptBehaviorAdmin: 0 # Disable UAC prompt + NoConnectedUser: 1 # Disable Microsoft account sign-in requirement + +- path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters" + type: DWord + values: + TcpWindowSize: 16711680 + GlobalMaxTcpWindowSize: 16711680 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Attachments" + values: + - name: SaveZoneInformation + type: DWord + value: 1 + - name: LowRiskFileTypes + type: String + value: ".zip;.rar;.7z" + +# Trusted zones (intranet) +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\192.168.100.5" + type: DWord + values: + "*": 1 + +- path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\callisto.andrewspolytechnic.com" + type: DWord + values: + "*": 1 + +# ============================================ +# ShareX +# ============================================ + +- path: "HKLM:\\SOFTWARE\\ShareX" + type: DWord + values: + DisableUpdateCheck: 1 + DisableUpload: 1 + +# ============================================ +# Misc Applications +# ============================================ + +- path: "HKCU:\\SOFTWARE\\ACD Systems\\LUXEA Pro\\080\\LClient" + type: DWord + values: + cod: 1 + +- path: "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Assistance\\Client\\1.0" + type: DWord + values: + NoActiveHelp: 1