├── STORY.md ├── README.md ├── MakeWindows10GreatAgain.reg ├── ooshutup10.cfg ├── MakeWindows10GreatAgain.ps1 └── terminal_settings.json /STORY.md: -------------------------------------------------------------------------------- 1 | # Backstory 2 | 3 | The year is 2016 and peak Microsoft Windows has been reached. Despite the numerous security enhancements and newly added features in Windows 10, the prevalence of ads and annoyances plaguing the operating system renders it borderline unusable and breeds suspicion and hostility from users (or from me at least). 4 | 5 | Real talk though, this shit is getting out of control. Even [Ars Technica agrees with me](https://arstechnica.com/information-technology/2017/03/microsoft-put-gross-ads-in-windows-explorer-and-i-dont-have-the-energy-to-be-angry/) and honestly that's all the validation I need. Not to worry though, at least now you can boot straight into a Bash shell now and forget Windows exists until you want to play Rocket League. 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Make Windows 10 Great Again 2 | Tweaks to make Windows 10 less annoying and more usable. 3 | 4 | Here's what this script does: 5 | 6 | 1. Disables Cortana 7 | 2. Disables Notification Center 8 | 3. Disables automatic reboots after Windows Updates have been installed 9 | 4. Disables Microsoft.com accounts from Windows Login 10 | 5. Shows file extensions for known file types 11 | 6. Sets Explorer to open to "This PC" 12 | 7. Shows hidden files (not including OS files) 13 | 8. Uninstalls OneDrive 14 | 9. Shows "This PC" icon on Desktop 15 | 10. Enables developer mode (required for Linux Subsystem) 16 | 11. Installs the Linux Subsystem 17 | 12. Updates the Powershell Get-Help items 18 | 13. Disables SMBv1 19 | 14. Unpin all Start Menu items 20 | 15. Disables WPAD 21 | 22 | ## Installation 23 | Unfortunately you'll have to set your execution policy to unrestricted to use this script. 24 | 25 | From an Administrator Powershell prompt: 26 | ``` 27 | Set-ExecutionPolicy Unrestricted 28 | cd MakeWindows10GreatAgain 29 | .\MakeWindows10GreatAgain.ps1 30 | Set-ExecutionPolicy Restricted 31 | ``` 32 | 33 | ## Notes 34 | I considered adding some tweaks to remove the default apps/tiles that come installed with the Win10 start menu, but I've been pleasantly surprised by [Classic Shell](http://classicshell.net/). It's an excellent start menu replacement for Win10. I recommend just installing that. 35 | 36 | This script doesn't address any of the privacy issues of Windows 10 because there are already a [bunch of tools](http://www.ghacks.net/2015/08/14/comparison-of-windows-10-privacy-tools/) that already do that. 37 | -------------------------------------------------------------------------------- /MakeWindows10GreatAgain.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | # Disable Cortana (Windows search still remains) 4 | [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search] 5 | "AllowCortana"=dword:00000000 6 | 7 | # Disable Notification Center 8 | [HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Explorer] 9 | "DisableNotificationCenter"=dword:00000001 10 | 11 | # Don't reboot when users are logged in for Windows updates 12 | [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU] 13 | "NoAutoRebootWithLoggedOnUsers"=dword:00000001 14 | 15 | # Disable Microsoft.com accounts 16 | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] 17 | "NoConnectedUser"=dword:00000003 18 | 19 | # Show all file extensions 20 | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] 21 | "HideFileExt"=dword:00000000 22 | 23 | # Set explorer to open to "This PC" for new windows 24 | [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] 25 | "LaunchTo"=dword:00000001 26 | 27 | # Show hidden files (not including OS files) 28 | [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] 29 | "Hidden"=dword:00000001 30 | 31 | # Show "This PC" on Desktop 32 | # Created by: Shawn Brink 33 | # http://www.tenforums.com 34 | [HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel] 35 | "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000000 36 | 37 | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel] 38 | "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000000 39 | 40 | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu] 41 | "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000000 42 | 43 | # Enable Developer Mode (prerequisite for Linux subsystem) 44 | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock] 45 | "AllowDevelopmentWithoutDevLicense"=dword:00000001 46 | 47 | # Disable WPAD 48 | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad] 49 | "WpadOverride"=dword:00000001 50 | 51 | # Disable Microsoft People icon from taskbar 52 | # https://technicalustad.com/remove-people-icon-from-taskbar-in-windows-10/ 53 | [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People] 54 | "PeopleBand"=dword:00000000 55 | 56 | # Disable Notifications about Security Center 57 | [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\Notifications] 58 | "DisableNotifications"=dword:00000001 59 | -------------------------------------------------------------------------------- /ooshutup10.cfg: -------------------------------------------------------------------------------- 1 | ############################################################################ 2 | # This file was created with O&O ShutUp10 and can be imported onto another computer. 3 | # 4 | # Download the application at https://www.oo-software.com/shutup10 5 | # You can then import the file from within the program. 6 | # 7 | # Alternatively you can import it automatically over a command line. Simply use 8 | # the following parameter: 9 | # ooshutup10.exe 10 | # 11 | # Selecting the Option /quiet ends the app right after the import and the user does not 12 | # get any feedback about the import. 13 | # 14 | # We are always happy to answer any questions you may have! 15 | # © 2015-2020 O&O Software GmbH, Berlin. All rights reserved. https://www.oo-software.com/ 16 | ############################################################################ 17 | 18 | P001 + 19 | P002 + 20 | P003 + 21 | P004 + 22 | P005 + 23 | P006 + 24 | P008 + 25 | P017 + 26 | P026 + 27 | P027 + 28 | P028 + 29 | P064 + 30 | P065 + 31 | P066 + 32 | P067 + 33 | P069 + 34 | P009 + 35 | P010 + 36 | P015 + 37 | P068 + 38 | P016 - 39 | A001 + 40 | A002 + 41 | A003 + 42 | A004 + 43 | A006 + 44 | A005 + 45 | P007 + 46 | P036 + 47 | P025 + 48 | P033 + 49 | P023 + 50 | P056 + 51 | P057 + 52 | P012 - 53 | P034 - 54 | P013 - 55 | P035 - 56 | P062 + 57 | P063 + 58 | P047 + 59 | P019 + 60 | P048 + 61 | P049 + 62 | P020 + 63 | P037 + 64 | P011 + 65 | P038 + 66 | P050 + 67 | P051 + 68 | P018 + 69 | P039 + 70 | P021 + 71 | P040 + 72 | P022 + 73 | P041 + 74 | P014 + 75 | P042 + 76 | P052 + 77 | P053 + 78 | P054 + 79 | P055 + 80 | P029 + 81 | P043 + 82 | P030 + 83 | P044 + 84 | P031 + 85 | P045 + 86 | P032 + 87 | P046 + 88 | P058 + 89 | P059 + 90 | P060 + 91 | P061 + 92 | P024 - 93 | S001 + 94 | S002 + 95 | S003 + 96 | S008 + 97 | E101 + 98 | E115 + 99 | E116 + 100 | E117 + 101 | E118 + 102 | E107 + 103 | E111 + 104 | E112 + 105 | E109 + 106 | E121 + 107 | E103 + 108 | E119 + 109 | E120 + 110 | E122 + 111 | E106 - 112 | E001 + 113 | E002 + 114 | E003 + 115 | E008 + 116 | E007 + 117 | E010 + 118 | E011 + 119 | E012 + 120 | E009 + 121 | E004 + 122 | E005 + 123 | E013 + 124 | E014 + 125 | E006 - 126 | Y001 + 127 | Y002 + 128 | Y003 + 129 | Y004 + 130 | Y005 + 131 | Y006 + 132 | Y007 + 133 | C012 + 134 | C002 + 135 | C013 + 136 | C007 + 137 | C008 + 138 | C009 + 139 | C010 + 140 | C011 + 141 | L001 + 142 | L003 + 143 | L004 + 144 | L005 + 145 | U001 + 146 | U004 + 147 | U005 + 148 | W001 + 149 | W011 + 150 | W004 + 151 | W005 + 152 | W010 + 153 | W009 + 154 | W006 - 155 | W008 + 156 | M006 + 157 | M011 + 158 | M010 + 159 | O003 + 160 | O001 + 161 | S012 + 162 | S013 + 163 | S014 + 164 | K001 + 165 | K002 + 166 | K005 + 167 | M001 + 168 | M004 + 169 | M005 + 170 | M003 + 171 | M012 + 172 | M013 + 173 | M014 + 174 | M015 + 175 | M016 + 176 | N001 - 177 | -------------------------------------------------------------------------------- /MakeWindows10GreatAgain.ps1: -------------------------------------------------------------------------------- 1 | # Check to see if Anniversary Update is installed 2 | if ([System.Environment]::OSVersion.Version.Build -lt 14393) { 3 | Write-Host "Build version 14393 or greater is required to continue. Exiting." 4 | Exit 5 | } 6 | 7 | $user = $(whoami).split('\')[1] 8 | 9 | # Import the registry keys 10 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Importing registry keys..." 11 | regedit /s MakeWindows10GreatAgain.reg 12 | 13 | # Install Powershell Help items 14 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Installing Powershell help..." 15 | Update-Help -Force -ErrorAction SilentlyContinue 16 | 17 | # Remove OneDrive from the System 18 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Removing OneDrive..." 19 | taskkill /f /im OneDrive.exe 20 | c:\Windows\SysWOW64\OneDriveSetup.exe /uninstall 21 | 22 | # Disable SMBv1 23 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Disabling SMBv1..." 24 | Set-SmbServerConfiguration -EnableSMB1Protocol $false -Confirm:$false 25 | 26 | # Add Emacs Edit Mode to Powershell Profile 27 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Updating Powershell Profile..." 28 | Set-Content $PsHome\Profile.ps1 'Set-PSReadlineOption -EditMode Emacs' 29 | 30 | # Remove all pinned items from Start Menu 31 | # https://community.spiceworks.com/topic/post/7417573 32 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Cleaning up start menu..." 33 | (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items()| foreach { ($_).Verbs() | ?{$_.Name.Replace('&', '') -match 'From "Start" UnPin|Unpin from Start'} | %{$_.DoIt()} } 34 | 35 | # Download and install ShutUp10 36 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Downloading ShutUp10..." 37 | [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" 38 | $shutUp10DownloadUrl = "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" 39 | $shutUp10RepoPath = "$home\AppData\Local\Temp\OOSU10.exe" 40 | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Installing ShutUp10..." 41 | Invoke-WebRequest -Uri "$shutUp10DownloadUrl" -OutFile $shutUp10RepoPath 42 | . $shutUp10RepoPath shutup10.cfg /quiet /force 43 | 44 | # Install Linux Subsystem 45 | # https://docs.microsoft.com/en-us/windows/wsl/install-win10 46 | Write-Host "Installing the Linux Subsystem..." 47 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 48 | if ([System.Environment]::OSVersion.Version.Build -lt 19041) { 49 | Write-Host "Build 19041 or greated required to upgrade to WSL2" 50 | Exit 51 | } else { 52 | Write-Host "Good news! This OS version supports WSL2. Enabling now..." 53 | try { 54 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 55 | wsl --set-default-version 2 56 | Write-Host "WSLv2 Enabled!" 57 | } catch { 58 | Write-Host "Something went wrong while updating to WSL2..." 59 | } 60 | } 61 | 62 | # Disable WPAD 63 | # https://docs.microsoft.com/en-us/security-updates/securitybulletins/2016/ms16-077#workarounds 64 | Add-Content "c:\windows\system32\drivers\etc\hosts" " 255.255.255.255 wpad." 65 | -------------------------------------------------------------------------------- /terminal_settings.json: -------------------------------------------------------------------------------- 1 | // This file was initially generated by Windows Terminal 0.11.1251.0 2 | // It should still be usable in newer versions, but newer versions might have additional 3 | // settings, help text, or changes that you will not see unless you clear this file 4 | // and let us generate a new one for you. 5 | 6 | // To view the default settings, hold "alt" while clicking on the "Settings" button. 7 | // For documentation on these settings, see: https://aka.ms/terminal-documentation 8 | { 9 | "$schema": "https://aka.ms/terminal-profiles-schema", 10 | 11 | "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", 12 | 13 | // You can add more global application settings here. 14 | // To learn more about global settings, visit https://aka.ms/terminal-global-settings 15 | 16 | // If enabled, selections are automatically copied to your clipboard. 17 | "copyOnSelect": false, 18 | 19 | // If enabled, formatted data is also copied to your clipboard 20 | "copyFormatting": false, 21 | 22 | // A profile specifies a command to execute paired with information about how it should look and feel. 23 | // Each one of them will appear in the 'New Tab' dropdown, 24 | // and can be invoked from the commandline with `wt.exe -p xxx` 25 | // To learn more about profiles, visit https://aka.ms/terminal-profile-settings 26 | "profiles": 27 | { 28 | "defaults": 29 | { 30 | "colorScheme": "Espresso" 31 | }, 32 | "list": 33 | [ 34 | { 35 | // Make changes here to the powershell.exe profile. 36 | "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", 37 | "name": "Windows PowerShell", 38 | "commandline": "powershell.exe", 39 | "hidden": false 40 | }, 41 | { 42 | // Make changes here to the cmd.exe profile. 43 | "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", 44 | "name": "Command Prompt", 45 | "commandline": "cmd.exe", 46 | "hidden": false 47 | }, 48 | { 49 | "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}", 50 | "hidden": false, 51 | "name": "Ubuntu-18.04", 52 | "source": "Windows.Terminal.Wsl" 53 | }, 54 | { 55 | "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}", 56 | "hidden": false, 57 | "name": "Azure Cloud Shell", 58 | "source": "Windows.Terminal.Azure" 59 | } 60 | ] 61 | }, 62 | 63 | // Add custom color schemes to this array. 64 | // To learn more about color schemes, visit https://aka.ms/terminal-color-schemes 65 | "schemes": [{ 66 | "name": "Espresso", 67 | "black": "#353535", 68 | "red": "#d25252", 69 | "green": "#a5c261", 70 | "yellow": "#ffc66d", 71 | "blue": "#6c99bb", 72 | "purple": "#d197d9", 73 | "cyan": "#bed6ff", 74 | "white": "#eeeeec", 75 | "brightBlack": "#535353", 76 | "brightRed": "#f00c0c", 77 | "brightGreen": "#c2e075", 78 | "brightYellow": "#e1e48b", 79 | "brightBlue": "#8ab7d9", 80 | "brightPurple": "#efb5f7", 81 | "brightCyan": "#dcf4ff", 82 | "brightWhite": "#ffffff", 83 | "background": "#323232", 84 | "foreground": "#ffffff" 85 | }], 86 | 87 | // Add custom keybindings to this array. 88 | // To unbind a key combination from your defaults.json, set the command to "unbound". 89 | // To learn more about keybindings, visit https://aka.ms/terminal-keybindings 90 | "keybindings": 91 | [ 92 | // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json. 93 | // These two lines additionally bind them to Ctrl+C and Ctrl+V. 94 | // To learn more about selection, visit https://aka.ms/terminal-selection 95 | { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" }, 96 | { "command": "paste", "keys": "ctrl+v" }, 97 | 98 | // Press Ctrl+Shift+F to open the search box 99 | { "command": "find", "keys": "ctrl+f" }, 100 | 101 | // Press Alt+Shift+D to open a new pane. 102 | // - "split": "auto" makes this pane open in the direction that provides the most surface area. 103 | // - "splitMode": "duplicate" makes the new pane use the focused pane's profile. 104 | // To learn more about panes, visit https://aka.ms/terminal-panes 105 | { "command": { "action": "splitPane", "split": "horizontal", "splitMode": "duplicate" }, "keys": "ctrl+shift+d" }, 106 | { "command": { "action": "splitPane", "split": "vertical", "splitMode": "duplicate" }, "keys": "ctrl+d" }, 107 | { "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+t" }, 108 | { "command": { "action": "closePane", "index": 0 }, "keys": "ctrl+w" }, 109 | { "command": "nextTab", "keys": "shift+ctrl+]" }, 110 | { "command": "prevTab", "keys": "shift+ctrl+[" }, 111 | { "command": "scrollUpPage", "keys": "shift+pgup" }, 112 | { "command": "scrollDownPage", "keys": "shift+pgdn" }, 113 | { "command": { "action": "adjustFontSize", "delta": 1 }, "keys": "ctrl+=" }, 114 | { "command": { "action": "adjustFontSize", "delta": -1 }, "keys": "ctrl+-" }, 115 | { "command": "resetFontSize", "keys": "ctrl+0" } 116 | ] 117 | } 118 | --------------------------------------------------------------------------------