Compare commits
11 Commits
Author | SHA1 | Date |
---|---|---|
Fierelier | 16b69351bc | |
Fierelier | c658ad763d | |
Fierelier | ef67d15afc | |
Fierelier | 0269b0ca41 | |
Fierelier | df513bf074 | |
Fierelier | 9237e9b39a | |
Fierelier | 0eeb50f6c7 | |
Fierelier | fffecf8810 | |
Fierelier | 7c955cc3cc | |
Fierelier | d5e5dd1a39 | |
Fierelier | bf9097d5a5 |
|
@ -3,8 +3,6 @@ desktop.ini
|
|||
*.zip
|
||||
*.log
|
||||
iso/*
|
||||
tmp-*/*
|
||||
bin/*
|
||||
tweaks - converted/*
|
||||
tweaksReversal - converted/*
|
||||
!bin/opus-nt
|
||||
tmp/*
|
||||
path/*
|
||||
!path/hello
|
|
@ -5,7 +5,8 @@ opus-nt is a homebrew for Windows longhorn-series (Vista or up), striving for st
|
|||
|
||||
the homebrew-framework is very adaptable, and can be expanded with more tweaks or for other longhorn-based systems pretty easily. opus-nt and its framework may be distributed in whichever way you want. knock yourself out!
|
||||
|
||||
[**a complete list of tweaks**](docs/tweaks.md)
|
||||
[**a complete list of tweaks**](docs/tweaks.md)
|
||||
[**check out the experimental, generated list**](docs/tweaksGenerated.md)
|
||||
|
||||
# what do I need?
|
||||
- an ISO of Windows Vista or up (longhorn-series). any edition should be fine, as long as it has a file in /sources/ called install.wim.
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
import os
|
||||
pathJoin = os.path.join
|
||||
pathUp = os.path.dirname
|
||||
pathScript = pathUp(os.path.realpath(__file__))
|
||||
pathDoc = pathScript
|
||||
pathTweaks = pathJoin(pathUp(pathScript),"tweaks")
|
||||
pathTweaksReversal = pathJoin(pathUp(pathScript),"tweaks - reversal")
|
||||
|
||||
def walklevel(some_dir, level=0):
|
||||
if level < 0:
|
||||
for root, dirs, files in os.walk(some_dir):
|
||||
yield root,dirs,files
|
||||
|
||||
return
|
||||
|
||||
some_dir = some_dir.rstrip(os.path.sep)
|
||||
assert os.path.isdir(some_dir)
|
||||
num_sep = some_dir.count(os.path.sep)
|
||||
for root, dirs, files in os.walk(some_dir):
|
||||
yield root, dirs, files
|
||||
num_sep_this = root.count(os.path.sep)
|
||||
if num_sep + level <= num_sep_this:
|
||||
del dirs[:]
|
||||
|
||||
def yieldTweaks(tdir):
|
||||
for root,dirs,files in walklevel(tdir):
|
||||
for dir in dirs:
|
||||
fdir = pathJoin(root,dir)
|
||||
if dir[0] == "-": continue
|
||||
if dir[0] == "[" and dir[-1] == "]":
|
||||
for ftweak in yieldTweaks(fdir):
|
||||
yield ftweak
|
||||
continue
|
||||
|
||||
yield fdir
|
||||
|
||||
mdTweaksOut = pathJoin(pathDoc,"tweaksGenerated.md")
|
||||
mdTweaksFile = open(mdTweaksOut,"w")
|
||||
|
||||
mdTweaksFile.write("""you can find all tweaks in the \\tweaks\\ directory of opus-nt.
|
||||
|
||||
## legend
|
||||
|
||||
uwu - added registry value. accurately reversible.
|
||||
owo - changed registry value. may not accurately revert.
|
||||
ÒwÓ - complex modification/file modification. no reversal-tweak available.
|
||||
|
||||
i do not guarantee that that all of the reversals are accurate across different releases, the green ones are just fairly likely to be accurate. **please do** nag me if the defaults have changed, though. i would love to nail these as good as i can.
|
||||
|
||||
<br>
|
||||
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
""")
|
||||
|
||||
for tweak in yieldTweaks(pathTweaks):
|
||||
tweakLocal = tweak.replace(pathTweaks + os.sep,"",1)
|
||||
tweakLocalFriendly = tweakLocal.replace(os.sep,"/")
|
||||
|
||||
tweakNameFriendly = tweakLocalFriendly
|
||||
tweakNameFriendly = tweakNameFriendly.replace("[","\\[")
|
||||
tweakNameFriendly = tweakNameFriendly.replace("]","\\]")
|
||||
|
||||
tweakLocalFriendly = "tweaks/" + tweakLocalFriendly
|
||||
|
||||
info = "no details available"
|
||||
pathInfo = pathJoin(tweak,"details.md")
|
||||
if os.path.isfile(pathInfo):
|
||||
info = open(pathInfo,"r").read()
|
||||
mdTweaksFile.write("| x | [" +tweakNameFriendly+ "](../" +tweakLocalFriendly+ ") | " +info+ " | \n")
|
||||
|
||||
mdTweaksFile.close()
|
|
@ -14,11 +14,11 @@ i do not guarantee that that all of the reversals are accurate across different
|
|||
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
| ⚠️ | [disable game bar](../tweaks/ten/disable game bar) | the game bar can decrease performance on certain systems. |
|
||||
| ✔ | [disable metro app swapping](../tweaks/ten/disable metro app swapping) | metro apps suspend themselves into swapfile.sys, to save memory. this however causes i/o activity. it is better disabled, and to disallow wasteful apps to run in the background entirely. |
|
||||
| ⚠️ | [disable superfetch](../tweaks/longhorn-series/disable superfetch) | superfetch stores frequently accessed data in RAM. this is supposed to speed up read speeds, but in practice, it just causes unnecessary i/o activity, especially on HDDs. slow on HDDs, useless on SSDs as they're fast enough as-is, so this is disabled. |
|
||||
| ✔ | [disable windows defender](../tweaks/longhorn-series/disable windows defender) | windows defender is not that good of anti-virus, and also causes a boatload of i/o activity, especially when a lot is going on. definitely worth disabling. |
|
||||
| ⚠️ | [disable windows search](../tweaks/longhorn-series/disable windows search) | the windows search service is responsible for indexing the files on your drives. the service speeds up search, however, also causes unexpected i/o activity sometimes. |
|
||||
| ⚠️ | [disable game bar](../tweaks/[ten]/disable game bar) | the game bar can decrease performance on certain systems. |
|
||||
| ✔ | [disable metro app swapping](../tweaks/[ten]/disable metro app swapping) | metro apps suspend themselves into swapfile.sys, to save memory. this however causes i/o activity. it is better disabled, and to disallow wasteful apps to run in the background entirely. |
|
||||
| ⚠️ | [disable superfetch](../tweaks/[longhorn-series]/disable superfetch) | superfetch stores frequently accessed data in RAM. this is supposed to speed up read speeds, but in practice, it just causes unnecessary i/o activity, especially on HDDs. slow on HDDs, useless on SSDs as they're fast enough as-is, so this is disabled. |
|
||||
| ✔ | [disable windows defender](../tweaks/[longhorn-series]/disable windows defender) | windows defender is not that good of anti-virus, and also causes a boatload of i/o activity, especially when a lot is going on. definitely worth disabling. |
|
||||
| ⚠️ | [disable windows search](../tweaks/[longhorn-series]/disable windows search) | the windows search service is responsible for indexing the files on your drives. the service speeds up search, however, also causes unexpected i/o activity sometimes. |
|
||||
|
||||
<br>
|
||||
|
||||
|
@ -26,12 +26,12 @@ i do not guarantee that that all of the reversals are accurate across different
|
|||
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
| ✔ | [delay feature updates](../tweaks/ten/delay feature updates) | feature updates will be delayed by half a year. feature updates are known to break stuff, especially in their early days, this alleviates the issue. |
|
||||
| ✔ | [disable driver updates](../tweaks/ten/disable driver updates) | driver updates just love to break everything by installing themselves over your current drivers, improperly. this unfortunately does not get rid of GPU driver updates. |
|
||||
| ✔ | [disable fast startup](../tweaks/ten/disable fast startup) | when using fast startup, your computer never properly shuts down, but rather hibernates. this can leave you with an unstable system after a while, if you do not restart. see below for more info on hibernation and another reason as to why this is disabled. |
|
||||
| ✔ | [disable hibernation](../tweaks/longhorn-series/disable hibernation) | hibernation locks down your file system while windows is hibernating or shut down (if fast startup is enabled). editing the file-system outside of windows while this is the case, perhaps for recovery purposes, can likely corrupt your data. |
|
||||
| ⚠️ | [disable low battery hibernation while charging](../tweaks/longhorn-series/disable low battery hibernation while charging) | fixes the annoying behavior where windows will hibernate randomly while the device is charging. this can happen especially on old/dead/stupid batteries. if you are using a weak charger, you may want to exclude this tweak. |
|
||||
| ❌ | [post-setup script - disable update reboot](../tweaks/ten/post-setup script - disable update reboot) | this disables the scheduled task, which force-restarts your PC randomly after an update. **this tweak currently breaks windows 10 1909, so take care.** |
|
||||
| ✔ | [delay feature updates](../tweaks/[ten]/delay feature updates) | feature updates will be delayed by half a year. feature updates are known to break stuff, especially in their early days, this alleviates the issue. |
|
||||
| ✔ | [disable driver updates](../tweaks/[ten]/disable driver updates) | driver updates just love to break everything by installing themselves over your current drivers, improperly. this unfortunately does not get rid of GPU driver updates. |
|
||||
| ✔ | [disable fast startup](../tweaks/[ten]/disable fast startup) | when using fast startup, your computer never properly shuts down, but rather hibernates. this can leave you with an unstable system after a while, if you do not restart. see below for more info on hibernation and another reason as to why this is disabled. |
|
||||
| ✔ | [disable hibernation](../tweaks/[longhorn-series]/disable hibernation) | hibernation locks down your file system while windows is hibernating or shut down (if fast startup is enabled). editing the file-system outside of windows while this is the case, perhaps for recovery purposes, can likely corrupt your data. |
|
||||
| ⚠️ | [disable low battery hibernation while charging](../tweaks/[longhorn-series]/disable low battery hibernation while charging) | fixes the annoying behavior where windows will hibernate randomly while the device is charging. this can happen especially on old/dead/stupid batteries. if you are using a weak charger, you may want to exclude this tweak. |
|
||||
| ❌ | [post-setup script - disable update reboot](../tweaks/[ten]/-post-setup script - disable update reboot) | this disables the scheduled task, which force-restarts your PC randomly after an update. **this tweak currently breaks windows 10 1909, so take care.** |
|
||||
|
||||
<br>
|
||||
|
||||
|
@ -39,9 +39,9 @@ i do not guarantee that that all of the reversals are accurate across different
|
|||
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
| ✔ | [disable activity history](../tweaks/ten/disable activity history) | the activity history is just kind of creepy and unnecessary. this also skips a step in OOBE. |
|
||||
| ✔ | [disable cross-pc update](../tweaks/ten/disable cross-pc update) | on default, windows will download/upload updates from/to other PCs in the network. this may or may not have security implications. better safe than sorry. |
|
||||
| ✔ | [disable recently opened items](../tweaks/ten/disable recently opened items) | disables several occurrences of recently opened files and folders, most prominently in quick access. |
|
||||
| ✔ | [disable activity history](../tweaks/[ten]/disable activity history) | the activity history is just kind of creepy and unnecessary. this also skips a step in OOBE. |
|
||||
| ✔ | [disable cross-pc update](../tweaks/[ten]/disable cross-pc update) | on default, windows will download/upload updates from/to other PCs in the network. this may or may not have security implications. better safe than sorry. |
|
||||
| ✔ | [disable recently opened items](../tweaks/[ten]/disable recently opened items) | disables several occurrences of recently opened files and folders, most prominently in quick access. |
|
||||
|
||||
<br>
|
||||
|
||||
|
@ -49,24 +49,24 @@ i do not guarantee that that all of the reversals are accurate across different
|
|||
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
| ✔ | [disable ads](../tweaks/ten/disable ads) | this disables lots of ad-like behavior. the following features are disabled: downloading advert apps, explorer suggestions, start menu suggestions, "tips, tricks and suggestions" and settings suggestions. |
|
||||
| ✔ | [disable cortana](../tweaks/ten/disable cortana) | another unecessity. this also disables web-search suggestions. |
|
||||
| ✔ | [disable customer experience improvement program](../tweaks/longhorn-series/disable customer experience improvement program) | disables some misc telemetry related to compatibility and problem solving. also degrades performance |
|
||||
| ❌ | [disable onedrive auto-install](../tweaks/ten/disable onedrive auto-install) | onedrive gets installed for every newly created user. this disables that behavior. |
|
||||
| ✔ | [disable telemetry](../tweaks/ten/disable telemetry) | this tweak reduces the amount of data sent to microsoft. on home/pro, only basic telemetry gets sent. on enterprise, telemetry is "disabled". |
|
||||
| ❌ | [skip oobe](../tweaks/ten/skip oobe) | skips OOBE, the last part of the setup. option to create a microsoft account is disabled, you will not be offered to connect to a wifi network and all the security questions get answered with "no" (to maximize privacy and performance). |
|
||||
| ✔ | [disable ads](../tweaks/[ten]/disable ads) | this disables lots of ad-like behavior. the following features are disabled: downloading advert apps, explorer suggestions, start menu suggestions, "tips, tricks and suggestions" and settings suggestions. |
|
||||
| ✔ | [disable cortana](../tweaks/[ten]/disable cortana) | another unecessity. this also disables web-search suggestions. |
|
||||
| ✔ | [disable customer experience improvement program](../tweaks/[longhorn-series]/disable customer experience improvement program) | disables some misc telemetry related to compatibility and problem solving. also degrades performance |
|
||||
| ❌ | [disable onedrive auto-install](../tweaks/[ten]/disable onedrive auto-install) | onedrive gets installed for every newly created user. this disables that behavior. |
|
||||
| ✔ | [disable telemetry](../tweaks/[ten]/disable telemetry) | this tweak reduces the amount of data sent to microsoft. on home/pro, only basic telemetry gets sent. on enterprise, telemetry is "disabled". |
|
||||
| ❌ | [skip oobe](../tweaks/[ten]/-skip oobe) | skips OOBE, the last part of the setup. option to create a microsoft account is disabled, you will not be offered to connect to a wifi network and all the security questions get answered with "no" (to maximize privacy and performance). |
|
||||
|
||||
<br>
|
||||
|
||||
## quality of life
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
| ✔ | [disable automatic sign-on](../tweaks/ten/disable automatic sign-on) | automatic sign-on gets your PC ready with the applications you had last started before you log in. this can be annoying if you prefer to start fresh when restarting. this can also slow down your startup by a bunch. |
|
||||
| ⚠️ | [disable automatic sleep and hibernation](../tweaks/longhorn-series/disable automatic sleep and hibernation) | having the computer sleep while it's doing something = bad |
|
||||
| ❌ | [disable ease of access key combinations](../tweaks/longhorn-series/disable ease of access key combinations) | the combinations for sticky keys, filter keys, etc. annoyingly conflict with programs/games that require you to often press/hold SHIFT. other, less annoying combinations have also been disabled for good measure. |
|
||||
| ✔ | [disable force closing of background processes on shutdown](../tweaks/longhorn-series/disable force closing of background processes on shutdown) | killing programs even if they do not have an active window, can lead to unforeseen consequences |
|
||||
| ✔ | [disable lock screen](../tweaks/ten/disable lock screen) | disables the additional, phone-like lock screen when an account is locked. saves you a button-press. |
|
||||
| ⚠️ | [disable sleep when closing laptop lid](../tweaks/longhorn-series/disable sleep when closing laptop lid) | closing the laptop's lid without having it stop all its activities can often be a desirable, additional, state. |
|
||||
| ⚠️ | [enable file extensions](../tweaks/longhorn-series/enable file extensions) | this enables file extensions (like .exe and .zip) for every newly created user. |
|
||||
| ❌ | [post-setup script - master](../tweaks/longhorn-series/post-setup script - master) | this calls all .cmd scripts in `%WinDir%\Setup\Scripts\opus` after setup (within OOBE, with SYSTEM rights). a log-file is then created at `%SystemDrive%\opus-nt-setupcomplete.log`. the scripts destroy themselves after this. |
|
||||
| ❌ | [remove user libraries](../tweaks/seven/remove user libraries) | the library shortcuts show very inconsistent behavior compared to opening the corresponding folders via any other method. it should be more comfortable for most to access user folders via their favorites. |
|
||||
| ✔ | [disable automatic sign-on](../tweaks/[ten]/disable automatic sign-on) | automatic sign-on gets your PC ready with the applications you had last started before you log in. this can be annoying if you prefer to start fresh when restarting. this can also slow down your startup by a bunch. |
|
||||
| ⚠️ | [disable automatic sleep and hibernation](../tweaks/[longhorn-series]/disable automatic sleep and hibernation) | having the computer sleep while it's doing something = bad |
|
||||
| ❌ | [disable ease of access key combinations](../tweaks/[longhorn-series]/disable ease of access key combinations) | the combinations for sticky keys, filter keys, etc. annoyingly conflict with programs/games that require you to often press/hold SHIFT. other, less annoying combinations have also been disabled for good measure. |
|
||||
| ✔ | [disable force closing of background processes on shutdown](../tweaks/[longhorn-series]/disable force closing of background processes on shutdown) | killing programs even if they do not have an active window, can lead to unforeseen consequences |
|
||||
| ✔ | [disable lock screen](../tweaks/[ten]/disable lock screen) | disables the additional, phone-like lock screen when an account is locked. saves you a button-press. |
|
||||
| ⚠️ | [disable sleep when closing laptop lid](../tweaks/[longhorn-series]/disable sleep when closing laptop lid) | closing the laptop's lid without having it stop all its activities can often be a desirable, additional, state. |
|
||||
| ⚠️ | [enable file extensions](../tweaks/[longhorn-series]/enable file extensions) | this enables file extensions (like .exe and .zip) for every newly created user. |
|
||||
| ❌ | [post-setup script - master](../tweaks/[longhorn-series]/post-setup script - master) | this calls all .cmd scripts in `%WinDir%\Setup\Scripts\opus` after setup (within OOBE, with SYSTEM rights). a log-file is then created at `%SystemDrive%\opus-nt-setupcomplete.log`. the scripts destroy themselves after this. |
|
||||
| ❌ | [remove user libraries](../tweaks/[seven]/remove user libraries) | the library shortcuts show very inconsistent behavior compared to opening the corresponding folders via any other method. it should be more comfortable for most to access user folders via their favorites. |
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
you can find all tweaks in the \tweaks\ directory of opus-nt.
|
||||
|
||||
## legend
|
||||
|
||||
uwu - added registry value. accurately reversible.
|
||||
owo - changed registry value. may not accurately revert.
|
||||
ÒwÓ - complex modification/file modification. no reversal-tweak available.
|
||||
|
||||
i do not guarantee that that all of the reversals are accurate across different releases, the green ones are just fairly likely to be accurate. **please do** nag me if the defaults have changed, though. i would love to nail these as good as i can.
|
||||
|
||||
<br>
|
||||
|
||||
| | **name** | **details** |
|
||||
| :---: | --- | --- |
|
||||
| x | [hello](../tweaks/hello) | dummy tweak |
|
||||
| x | [\[longhorn-series\]/disable automatic sleep and hibernation](../tweaks/[longhorn-series]/disable automatic sleep and hibernation) | having the computer sleep while it's doing something = bad |
|
||||
| x | [\[longhorn-series\]/disable customer experience improvement program](../tweaks/[longhorn-series]/disable customer experience improvement program) | disables some misc telemetry related to compatibility and problem solving. also degrades performance |
|
||||
| x | [\[longhorn-series\]/disable ease of access key combinations](../tweaks/[longhorn-series]/disable ease of access key combinations) | the combinations for sticky keys, filter keys, etc. annoyingly conflict with programs/games that require you to often press/hold SHIFT. other, less annoying combinations have also been disabled for good measure. |
|
||||
| x | [\[longhorn-series\]/disable force closing of background processes on shutdown](../tweaks/[longhorn-series]/disable force closing of background processes on shutdown) | killing programs even if they do not have an active window, can lead to unforeseen consequences |
|
||||
| x | [\[longhorn-series\]/disable low battery hibernation while charging](../tweaks/[longhorn-series]/disable low battery hibernation while charging) | fixes the annoying behavior where windows will hibernate randomly while the device is charging. this can happen especially on old/dead/stupid batteries. if you are using a weak charger, you may want to exclude this tweak. |
|
||||
| x | [\[longhorn-series\]/disable sleep when closing laptop lid](../tweaks/[longhorn-series]/disable sleep when closing laptop lid) | closing the laptop's lid without having it stop all its activities can often be a desirable, additional, state. |
|
||||
| x | [\[longhorn-series\]/disable superfetch](../tweaks/[longhorn-series]/disable superfetch) | superfetch stores frequently accessed data in RAM. this is supposed to speed up read speeds, but in practice, it just causes unnecessary i/o activity, especially on HDDs. slow on HDDs, useless on SSDs as they're fast enough as-is, so this is disabled. |
|
||||
| x | [\[longhorn-series\]/disable windows defender](../tweaks/[longhorn-series]/disable windows defender) | windows defender is not that good of anti-virus, and also causes a boatload of i/o activity, especially when a lot is going on. definitely worth disabling. |
|
||||
| x | [\[longhorn-series\]/disable windows search](../tweaks/[longhorn-series]/disable windows search) | the windows search service is responsible for indexing the files on your drives. the service speeds up search, however, also causes unexpected i/o activity sometimes. |
|
||||
| x | [\[longhorn-series\]/disable winsat schedule](../tweaks/[longhorn-series]/disable winsat schedule) | disables the scheduled task responsible for measuring the system's performance index, which is generally useless |
|
||||
| x | [\[longhorn-series\]/enable file extensions](../tweaks/[longhorn-series]/enable file extensions) | this enables file extensions (like .exe and .zip) for every newly created user. |
|
||||
| x | [\[longhorn-series\]/post-setup script - disable hibernation](../tweaks/[longhorn-series]/post-setup script - disable hibernation) | hibernation locks down your file system while windows is hibernating or shut down (if fast startup is enabled). editing the file-system outside of windows while this is the case, perhaps for recovery purposes, can likely corrupt your data. |
|
||||
| x | [\[longhorn-series\]/post-setup script - master](../tweaks/[longhorn-series]/post-setup script - master) | this calls all .cmd scripts in `%WinDir%\Setup\Scripts\opus` after setup (within OOBE, with SYSTEM rights). a log-file is then created at `%SystemDrive%\opus-nt-setupcomplete.log`. the scripts destroy themselves after this. |
|
||||
| x | [\[seven\]/remove user libraries](../tweaks/[seven]/remove user libraries) | the library shortcuts show very inconsistent behavior compared to opening the corresponding folders via any other method. it should be more comfortable for most to access user folders via their favorites. |
|
||||
| x | [\[ten\]/delay feature updates](../tweaks/[ten]/delay feature updates) | feature updates will be delayed by half a year. feature updates are known to break stuff, especially in their early days, this alleviates the issue. |
|
||||
| x | [\[ten\]/disable activity history](../tweaks/[ten]/disable activity history) | the activity history is just kind of creepy and unnecessary. this also skips a step in OOBE. |
|
||||
| x | [\[ten\]/disable ads](../tweaks/[ten]/disable ads) | this disables lots of ad-like behavior. the following features are disabled: downloading advert apps, explorer suggestions, start menu suggestions, "tips, tricks and suggestions" and settings suggestions. |
|
||||
| x | [\[ten\]/disable automatic sign-on](../tweaks/[ten]/disable automatic sign-on) | automatic sign-on gets your PC ready with the applications you had last started before you log in. this can be annoying if you prefer to start fresh when restarting. this can also slow down your startup by a bunch. |
|
||||
| x | [\[ten\]/disable cortana](../tweaks/[ten]/disable cortana) | another unecessity. this also disables web-search suggestions... at least it used to, thanks microsoft. |
|
||||
| x | [\[ten\]/disable cross-pc update](../tweaks/[ten]/disable cross-pc update) | on default, windows will download/upload updates from/to other PCs in the network. this may or may not have security implications. better safe than sorry. |
|
||||
| x | [\[ten\]/disable driver updates](../tweaks/[ten]/disable driver updates) | driver updates just love to break everything by installing themselves over your current drivers, improperly. this unfortunately does not get rid of GPU driver updates. |
|
||||
| x | [\[ten\]/disable fast startup](../tweaks/[ten]/disable fast startup) | when using fast startup, your computer never properly shuts down, but rather hibernates. this can leave you with an unstable system after a while, if you do not restart. see below for more info on hibernation and another reason as to why this is disabled. |
|
||||
| x | [\[ten\]/disable game bar](../tweaks/[ten]/disable game bar) | the game bar can decrease performance on certain systems. |
|
||||
| x | [\[ten\]/disable lock screen](../tweaks/[ten]/disable lock screen) | disables the additional, phone-like lock screen when an account is locked. saves you a button-press. this currently disables the ability to change your lockscreen image for some reason. |
|
||||
| x | [\[ten\]/disable metro app swapping](../tweaks/[ten]/disable metro app swapping) | metro apps suspend themselves into swapfile.sys, to save memory. this however causes i/o activity. it is better disabled, and to disallow wasteful apps to run in the background entirely. |
|
||||
| x | [\[ten\]/disable onedrive auto-install](../tweaks/[ten]/disable onedrive auto-install) | onedrive gets installed for every newly created user. this disables that behavior. |
|
||||
| x | [\[ten\]/disable recently opened items](../tweaks/[ten]/disable recently opened items) | disables several occurrences of recently opened files and folders, most prominently in quick access. |
|
||||
| x | [\[ten\]/disable telemetry](../tweaks/[ten]/disable telemetry) | this tweak reduces the amount of data sent to microsoft. on home/pro, only basic telemetry gets sent. on enterprise, telemetry is "disabled". |
|
6
env.bat
6
env.bat
|
@ -1,8 +1,8 @@
|
|||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
cd /d %~dp0
|
||||
set path=!path!;%cd%\bin
|
||||
for /d %%i in (%cd%\bin\*) do (
|
||||
set path=!path!;%cd%\path
|
||||
for /d %%i in (%cd%\path\*) do (
|
||||
set path=!path!;%%i
|
||||
)
|
||||
|
||||
|
@ -12,7 +12,7 @@ if not "%errorlevel%" == "0" (
|
|||
cls
|
||||
echo ^^!^^!^^! WARNING: PSEXEC NOT FOUND ^^!^^!^^!
|
||||
echo you may not be able to apply all tweaks.
|
||||
echo please extract psexec.exe to \bin\
|
||||
echo please extract psexec.exe to \path\
|
||||
pause
|
||||
cls
|
||||
) else (
|
||||
|
|
287
opus-nt.py
287
opus-nt.py
|
@ -1,7 +1,284 @@
|
|||
import os
|
||||
from munch import *
|
||||
opus = Munch()
|
||||
opus._mainScript = False
|
||||
import os
|
||||
import time
|
||||
import subprocess
|
||||
import winreg
|
||||
import ntpath
|
||||
|
||||
with open(os.path.join(os.path.dirname(os.path.realpath(__file__)),"scripts","main.py")) as opus._mainScript:
|
||||
exec(opus._mainScript.read())
|
||||
opus = Munch()
|
||||
|
||||
if True: #opus.path
|
||||
opus.path = Munch()
|
||||
def _opusPathWalklevel(some_dir, level=0):
|
||||
if level < 0:
|
||||
for root, dirs, files in os.walk(some_dir):
|
||||
yield root,dirs,files
|
||||
|
||||
return
|
||||
|
||||
some_dir = some_dir.rstrip(os.path.sep)
|
||||
assert os.path.isdir(some_dir)
|
||||
num_sep = some_dir.count(os.path.sep)
|
||||
for root, dirs, files in os.walk(some_dir):
|
||||
yield root, dirs, files
|
||||
num_sep_this = root.count(os.path.sep)
|
||||
if num_sep + level <= num_sep_this:
|
||||
del dirs[:]
|
||||
opus.path.walklevel = _opusPathWalklevel
|
||||
|
||||
if True: #opus.reg
|
||||
opus.reg = Munch()
|
||||
opus.reg.path = Munch()
|
||||
opus.reg.path.sep = "\\"
|
||||
opus.reg.path.hkeys = {}
|
||||
opus.reg.path.hkeys["HKEY_CLASSES_ROOT"] = winreg.HKEY_CLASSES_ROOT
|
||||
opus.reg.path.hkeys["HKCR"] = opus.reg.path.hkeys["HKEY_CLASSES_ROOT"]
|
||||
opus.reg.path.hkeys["HKEY_CURRENT_USER"] = winreg.HKEY_CURRENT_USER
|
||||
opus.reg.path.hkeys["HKCU"] = opus.reg.path.hkeys["HKEY_CURRENT_USER"]
|
||||
opus.reg.path.hkeys["HKEY_LOCAL_MACHINE"] = winreg.HKEY_LOCAL_MACHINE
|
||||
opus.reg.path.hkeys["HKLM"] = opus.reg.path.hkeys["HKEY_LOCAL_MACHINE"]
|
||||
opus.reg.path.hkeys["HKEY_USERS"] = winreg.HKEY_USERS
|
||||
opus.reg.path.hkeys["HKU"] = opus.reg.path.hkeys["HKEY_USERS"]
|
||||
opus.reg.path.hkeys["HKEY_CURRENT_CONFIG"] = winreg.HKEY_CURRENT_CONFIG
|
||||
opus.reg.path.hkeys["HKCU"] = opus.reg.path.hkeys["HKEY_CURRENT_CONFIG"]
|
||||
|
||||
def _opusRegGetData(key,value):
|
||||
hkey, key = opus.reg.path.toWinreg(key)
|
||||
with winreg.OpenKey(hkey,key) as keyObject:
|
||||
return winreg.QueryValueEx(keyObject,value)
|
||||
opus.reg.getData = _opusRegGetData
|
||||
|
||||
def _opusRegIterateKey(key):
|
||||
hkey, key = opus.reg.path.toWinreg(key)
|
||||
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,key) as keyObject:
|
||||
index = 0
|
||||
length = winreg.QueryInfoKey(keyObject)[1]
|
||||
while index < length:
|
||||
valueInfo = winreg.EnumValue(keyObject,index)
|
||||
yield valueInfo[0], valueInfo[1], valueInfo[2]
|
||||
index = index + 1
|
||||
opus.reg.iterateKey = _opusRegIterateKey
|
||||
|
||||
def _opusRegAdd(key, value = False, valueType = False, data = False):
|
||||
cmdList = ["reg","add",key]
|
||||
|
||||
if value == "":
|
||||
cmdList = cmdList + ["/ve","/d",data]
|
||||
elif value != False:
|
||||
cmdList = cmdList + ["/v",value,"/t",valueType,"/d",data]
|
||||
|
||||
cmdList.append("/f")
|
||||
rtn = subprocess.call(cmdList)
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.add = _opusRegAdd
|
||||
|
||||
def _opusRegDelete(key, value = False):
|
||||
cmdList = ["reg","delete",key]
|
||||
if value != False:
|
||||
cmdList = cmdList + ["/v",value]
|
||||
|
||||
cmdList.append("/f")
|
||||
rtn = subprocess.call(cmdList)
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.delete = _opusRegDelete
|
||||
|
||||
def _opusRegLoad(key, file):
|
||||
cmdList = ["reg","load",key,file]
|
||||
rtn = subprocess.call(cmdList)
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.load = _opusRegLoad
|
||||
|
||||
def _opusRegUnload(key):
|
||||
cmdList = ["reg","unload",key]
|
||||
rtn = subprocess.call(cmdList)
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.unload = _opusRegUnload
|
||||
|
||||
def _opusRegPathJoin(ls):
|
||||
return opus.reg.path.sep.join(ls)
|
||||
opus.reg.path.join = _opusRegPathJoin
|
||||
|
||||
def _opusRegPathToWinreg(key):
|
||||
hkey = False
|
||||
for hk in opus.reg.path.hkeys:
|
||||
if key.startswith(hk + opus.reg.path.sep):
|
||||
key = key.replace(hk + opus.reg.path.sep,"",1)
|
||||
hkey = opus.reg.path.hkeys[hk]
|
||||
break
|
||||
|
||||
if hkey == False: raise Exception("not a valid registry path")
|
||||
return hkey, key
|
||||
opus.reg.path.toWinreg = _opusRegPathToWinreg
|
||||
|
||||
if True: #opus.os
|
||||
opus.os = Munch()
|
||||
def _opusOsGetInfo(SOFTWARE):
|
||||
osInfo = Munch()
|
||||
osInfo.version = Munch()
|
||||
osInfo.key = Munch()
|
||||
osInfo.tags = []
|
||||
|
||||
for value,data,valueType in opus.reg.iterateKey(opus.reg.path.join([SOFTWARE,"Microsoft","Windows NT","CurrentVersion"])):
|
||||
osInfo.key[value] = data
|
||||
|
||||
osInfo.version.major = False
|
||||
osInfo.version.minor = False
|
||||
osInfo.version.string = False
|
||||
if "CurrentMajorVersionNumber" in osInfo.key:
|
||||
osInfo.version.major = int(osInfo.key.CurrentMajorVersionNumber)
|
||||
osInfo.version.minor = int(osInfo.key.CurrentMinorVersionNumber)
|
||||
osInfo.version.string = str(osInfo.version.major)+ "." +str(osInfo.version.minor)
|
||||
else:
|
||||
osInfo.version.string = osInfo.key.CurrentVersion
|
||||
osInfo.version.major = int(osInfo.version.string.split(".")[0])
|
||||
osInfo.version.minor = int(osInfo.version.string.split(".")[1])
|
||||
|
||||
if osInfo.version.major == False: raise Exception("unknown windows nt version")
|
||||
|
||||
if osInfo.version.major > 5 and osInfo.version.major < 11: osInfo.tags.append("longhorn-series")
|
||||
if osInfo.version.string == "6.0": osInfo.tags.append("vista")
|
||||
if osInfo.version.string == "6.1": osInfo.tags.append("seven")
|
||||
if osInfo.version.string == "6.2": osInfo.tags.append("eight")
|
||||
if osInfo.version.string == "6.3": osInfo.tags.append("eightone"); osInfo.tags.append("nine")
|
||||
if osInfo.version.string == "10.0": osInfo.tags.append("ten")
|
||||
|
||||
return osInfo
|
||||
opus.os.getInfo = _opusOsGetInfo
|
||||
|
||||
if True: #opus.wim
|
||||
opus.wim = Munch()
|
||||
|
||||
def _opusWimExtract(wim,index,wimFile,outPath):
|
||||
rtn = subprocess.call([
|
||||
"wimlib-imagex","extract",
|
||||
wim,str(index),
|
||||
wimFile,
|
||||
"--dest-dir=" +outPath,"--preserve-dir-structure"
|
||||
])
|
||||
if rtn > 0: raise Exception("wim")
|
||||
opus.wim.extract = _opusWimExtract
|
||||
|
||||
def _opusWimUpdate(wim,index,inPath):
|
||||
rtn = subprocess.call([
|
||||
"wimlib-imagex","update",
|
||||
wim,str(index),
|
||||
"--command=add '" +inPath+ "' '\\'"
|
||||
])
|
||||
if rtn > 0: raise Exception("wim")
|
||||
opus.wim.update = _opusWimUpdate
|
||||
|
||||
def _opusWimGetImageAmount(wim):
|
||||
index = 0
|
||||
while True:
|
||||
index = index + 1
|
||||
rtn = subprocess.call([
|
||||
"wimlib-imagex","info",
|
||||
wim,str(index)
|
||||
])
|
||||
if rtn > 0: return index - 1
|
||||
opus.wim.getImageAmount = _opusWimGetImageAmount
|
||||
|
||||
env = Munch()
|
||||
def main():
|
||||
global env
|
||||
env.timeBuild = int(time.time())
|
||||
env.pathJoin = os.path.join
|
||||
env.pathUp = os.path.dirname
|
||||
env.pathScript = env.pathUp(os.path.realpath(__file__))
|
||||
|
||||
env.tmp = env.pathJoin(env.pathScript,"tmp",str(env.timeBuild))
|
||||
env.tmpWim = env.pathJoin(env.tmp,"wim")
|
||||
env.tweaks = env.pathJoin(env.pathScript,"tweaks")
|
||||
env.reg = Munch()
|
||||
env.wim = False
|
||||
env.index = 1
|
||||
env.images = 1
|
||||
|
||||
def applyTweaks(tdir):
|
||||
global env
|
||||
for root,dirs,files in opus.path.walklevel(tdir):
|
||||
for dir in dirs:
|
||||
fdir = env.pathJoin(root,dir)
|
||||
if dir[0] == "-": continue
|
||||
if dir[0] == "[" and dir[-1] == "]":
|
||||
for fscript in applyTweaks(fdir):
|
||||
yield fscript
|
||||
continue
|
||||
|
||||
fscript = env.pathJoin(fdir,"apply.py")
|
||||
if not os.path.isfile(fscript): continue
|
||||
|
||||
with open(fscript) as f:
|
||||
env.fdir = fdir
|
||||
code = compile(f.read(), fscript, 'exec')
|
||||
|
||||
env.applied = True
|
||||
exec(code,globals(),locals())
|
||||
if env.applied == True: yield fdir
|
||||
|
||||
print(">>> EXPANDING PATH: ",end="")
|
||||
for root,dirs,files in opus.path.walklevel(env.pathJoin(env.pathScript,"path")):
|
||||
for dir in dirs:
|
||||
print(dir,end=";")
|
||||
os.environ["Path"] = os.environ["Path"] + ";" + env.pathJoin(root,dir)
|
||||
print(" <<<\n")
|
||||
|
||||
print("action:")
|
||||
print("1) apply to current system")
|
||||
print("2) apply to wim")
|
||||
env.applicationMode = int(input("choice: "))
|
||||
|
||||
if env.applicationMode == 1:
|
||||
env.reg.software = opus.reg.path.join(["HKLM","SOFTWARE"])
|
||||
env.reg.system = opus.reg.path.join(["HKLM","SYSTEM"])
|
||||
env.reg.users = ["HKCU",opus.reg.path.join(["HKU",".DEFAULT"])]
|
||||
|
||||
choice = input("this will apply all tweaks in \\tweaks to your currently running system. are you certain that you want this? [y/n]")
|
||||
if (choice.lower() != "y"): return
|
||||
|
||||
if env.applicationMode == 2:
|
||||
env.reg.software = opus.reg.path.join(["HKLM","OPUS-TMP_" +str(env.timeBuild)+ "_SOFTWARE"])
|
||||
env.reg.system = opus.reg.path.join(["HKLM","OPUS-TMP_" +str(env.timeBuild)+ "_SYSTEM"])
|
||||
env.reg.users = [opus.reg.path.join(["HKLM","OPUS-TMP_" +str(env.timeBuild)+ "_NTUSER"])]
|
||||
|
||||
env.wim = input("wim-file (install.wim): ")
|
||||
simage = input("image index (* for all):")
|
||||
if (simage == "*"):
|
||||
env.images = opus.wim.getImageAmount(env.wim)
|
||||
else:
|
||||
env.index = int(simage)
|
||||
env.images = int(simage)
|
||||
|
||||
while (env.index <= env.images):
|
||||
os.makedirs(env.tmpWim)
|
||||
if env.applicationMode == 2:
|
||||
print("\n>>> PROCESSING IMAGE " +str(env.index)+ " <<<")
|
||||
env.pSoftware = env.pathJoin("Windows","System32","config","SOFTWARE")
|
||||
env.pSystem = env.pathJoin("Windows","System32","config","SYSTEM")
|
||||
env.pUser = env.pathJoin("Users","Default","NTUSER.DAT")
|
||||
opus.wim.extract(env.wim,env.index,env.pSoftware,env.tmpWim)
|
||||
opus.wim.extract(env.wim,env.index,env.pSystem,env.tmpWim)
|
||||
opus.wim.extract(env.wim,env.index,env.pUser,env.tmpWim)
|
||||
opus.reg.load(env.reg.software,env.pathJoin(env.tmpWim,env.pSoftware))
|
||||
opus.reg.load(env.reg.system,env.pathJoin(env.tmpWim,env.pSystem))
|
||||
opus.reg.load(env.reg.users[0],env.pathJoin(env.tmpWim,env.pUser))
|
||||
|
||||
env.os = opus.os.getInfo(env.reg.software)
|
||||
print("")
|
||||
for tweak in applyTweaks(env.tweaks):
|
||||
print(">> APPLIED TWEAK: " +tweak.replace(env.tweaks + os.path.sep,"",1))
|
||||
print("")
|
||||
|
||||
if env.applicationMode == 2:
|
||||
print(">> UPDATING WIM...")
|
||||
opus.reg.unload(env.reg.software)
|
||||
opus.reg.unload(env.reg.system)
|
||||
opus.reg.unload(env.reg.users[0])
|
||||
opus.wim.update(env.wim,env.index,env.tmpWim)
|
||||
subprocess.call(["rmdir","/s","/q",env.tmpWim],shell=True)
|
||||
env.index = env.index + 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
#print(opus.os.getInfo("HKLM").tags)
|
||||
main()
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
opus.detect = Munch()
|
||||
|
||||
def _detectOS(osPath):
|
||||
opus.main.output("detecting OS at " +osPath+ "...")
|
||||
|
||||
osInfo = Munch()
|
||||
osInfo.version = Munch()
|
||||
osInfo.version.major = 0
|
||||
osInfo.version.minor = 0
|
||||
osInfo.tags = []
|
||||
|
||||
opus.reg.mount(pJoin(osPath,"Windows","System32","config","SOFTWARE"))
|
||||
osInfo.version.key = opus.reg.getKey(opus.reg.path + opus.reg.sep + "Microsoft" +opus.reg.sep+ "Windows NT" +opus.reg.sep + "CurrentVersion")
|
||||
opus.reg.unmount()
|
||||
|
||||
try:
|
||||
osInfo.version.major = int(osInfo.version.key.CurrentMajorVersionNumber.value)
|
||||
osInfo.version.minor = int(osInfo.version.key.CurrentMinorVersionNumber.value)
|
||||
except:
|
||||
version = osInfo.version.key.CurrentVersion.value
|
||||
osInfo.version.major = int(version.split(".")[0])
|
||||
osInfo.version.minor = int(version.split(".")[1])
|
||||
|
||||
osInfo.version.string = str(osInfo.version.major) + "." + str(osInfo.version.minor)
|
||||
if osInfo.version.string == "0.0": raise Exception("version unknown")
|
||||
opus.main.output("\ndetected: Windows NT " +osInfo.version.string,1)
|
||||
|
||||
if osInfo.version.major > 5 and osInfo.version.major < 11: osInfo.tags.append("longhorn-series")
|
||||
if osInfo.version.string == "6.0": osInfo.tags.append("vista")
|
||||
if osInfo.version.string == "6.1": osInfo.tags.append("seven")
|
||||
if osInfo.version.string == "6.2": osInfo.tags.append("eight")
|
||||
if osInfo.version.string == "6.3": osInfo.tags.append("eightone"); osInfo.tags.append("nine")
|
||||
if osInfo.version.string == "10.0": osInfo.tags.append("ten")
|
||||
|
||||
opus.main.output("tags: " +str(osInfo.tags),1)
|
||||
return osInfo
|
||||
|
||||
opus.detect.os = _detectOS
|
|
@ -1,32 +0,0 @@
|
|||
opus.main = Munch()
|
||||
|
||||
def _mainOutput(msg,verbosity = 0):
|
||||
if opus.verbosity > verbosity - 1:
|
||||
print(msg)
|
||||
|
||||
with open("opus-nt-" +str(opus.time)+ ".log","a") as file:
|
||||
file.write(msg + "\n")
|
||||
opus.main.output = _mainOutput
|
||||
|
||||
opus.script = Munch()
|
||||
def _mainExecPy(_scriptPath):
|
||||
opus.main.output("script -> execute -> " +_scriptPath,1)
|
||||
|
||||
_return = True
|
||||
with open(_scriptPath) as _scriptFile:
|
||||
exec(_scriptFile.read())
|
||||
|
||||
opus.main.output("done.",2)
|
||||
return _return
|
||||
opus.script.execute = _mainExecPy
|
||||
|
||||
opus.temp = Munch()
|
||||
def _tempRemove():
|
||||
if os.path.isdir(opus.path.temp):
|
||||
opus.main.output("clearing temp directory...",1)
|
||||
try:
|
||||
opus.reg.unmount()
|
||||
except:
|
||||
pass
|
||||
rtn = subprocess.call(["rmdir","/s","/q",opus.path.temp],shell=True)
|
||||
opus.temp.remove = _tempRemove
|
|
@ -1,25 +0,0 @@
|
|||
global os
|
||||
import os
|
||||
|
||||
def _pathWalklevel(some_dir, level=0):
|
||||
if level < 0:
|
||||
for root, dirs, files in os.walk(some_dir):
|
||||
yield root,dirs,files
|
||||
|
||||
return
|
||||
|
||||
some_dir = some_dir.rstrip(os.path.sep)
|
||||
assert os.path.isdir(some_dir)
|
||||
num_sep = some_dir.count(os.path.sep)
|
||||
for root, dirs, files in os.walk(some_dir):
|
||||
yield root, dirs, files
|
||||
num_sep_this = root.count(os.path.sep)
|
||||
if num_sep + level <= num_sep_this:
|
||||
del dirs[:]
|
||||
opus.path.walklevel = _pathWalklevel
|
||||
|
||||
def _pathEasywalk(dir,depth = 0):
|
||||
for root, dirs, files in opus.files.walklevel(dir,depth):
|
||||
for file in files:
|
||||
yield p(root,file)
|
||||
opus.path.easywalk = _pathEasywalk
|
|
@ -1,53 +0,0 @@
|
|||
global subprocess
|
||||
import subprocess
|
||||
global winreg
|
||||
import winreg
|
||||
|
||||
opus.reg = Munch()
|
||||
opus.reg.sep = "\\"
|
||||
opus.reg.path = "OPUS_TMP"
|
||||
|
||||
def _regUnmount():
|
||||
opus.main.output("registry > unmount",2)
|
||||
rtn = subprocess.call(["reg","unload","HKLM" + opus.reg.sep + opus.reg.path])
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.unmount = _regUnmount
|
||||
|
||||
def _regMount(i):
|
||||
try:
|
||||
opus.reg.unmount()
|
||||
except:
|
||||
opus.main.output("unmount failed, probably already unmounted",2)
|
||||
opus.main.output("registry > mount > " +i,2)
|
||||
rtn = subprocess.call(["reg","load","HKLM" + opus.reg.sep + opus.reg.path,i])
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.mount = _regMount
|
||||
|
||||
def _regImport(rp):
|
||||
opus.main.output("registry > import > " +rp,2)
|
||||
rtn = subprocess.call(["reg","import",rp])
|
||||
if rtn > 0: raise Exception("reg")
|
||||
opus.reg.imprt = _regImport
|
||||
|
||||
def _getValue(kp,v):
|
||||
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,kp) as key:
|
||||
return winreg.QueryValueEx(key,v)
|
||||
opus.reg.getValue = _getValue
|
||||
|
||||
def _getKey(kp):
|
||||
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,kp) as key:
|
||||
rtn = Munch()
|
||||
index = 0
|
||||
length = winreg.QueryInfoKey(key)[1]
|
||||
while index < length:
|
||||
valueInfo = winreg.EnumValue(key,index)
|
||||
rtn[valueInfo[0]] = Munch()
|
||||
rtn[valueInfo[0]].value = valueInfo[1]
|
||||
rtn[valueInfo[0]].type = valueInfo[2]
|
||||
index = index + 1
|
||||
|
||||
return rtn
|
||||
opus.reg.getKey = _getKey
|
||||
|
||||
def _setValue(kp,key,vt,value):
|
||||
print("owo")
|
|
@ -1,59 +0,0 @@
|
|||
opus.tweak = Munch()
|
||||
opus.tweak.apply = Munch()
|
||||
def _tweakApplyReg(tag,rtgName,rtgFile):
|
||||
opus.main.output("\n>> [" +tag+ "] applying tweaks: registry -> " +rtgName,1)
|
||||
opus.reg.mount(opus.wim.path(rtgFile))
|
||||
for tweakRoot,tweaks,_ in opus.path.walklevel(pJoin(opus.path.tweaks,tag)):
|
||||
for tweak in tweaks:
|
||||
ftweak = os.path.join(tweakRoot,tweak)
|
||||
if not os.path.isfile(pJoin(ftweak,"reg",rtgName + ".REG")): continue
|
||||
opus.reg.imprt(pJoin(ftweak,"reg",rtgName + ".REG"))
|
||||
|
||||
opus.reg.unmount()
|
||||
opus.tweak.apply.reg = _tweakApplyReg
|
||||
|
||||
def _tweakApplyWim(tag):
|
||||
opus.main.output("\n>> [" +tag+ "] applying tweaks: wim",1)
|
||||
for tweakRoot,tweaks,_ in opus.path.walklevel(pJoin(opus.path.tweaks,tag)):
|
||||
for tweak in tweaks:
|
||||
ftweak = os.path.join(tweakRoot,tweak)
|
||||
if not os.path.isdir(pJoin(ftweak,"wim")): continue
|
||||
opus.main.output("> applying: " +tweak,1)
|
||||
for root,dirs,files in os.walk(pJoin(ftweak,"wim")):
|
||||
for dir in dirs:
|
||||
fdir = os.path.join(root,dir)
|
||||
nfdir = fdir.replace(pJoin(ftweak,"wim"),opus.wim.path())
|
||||
if not os.path.isdir(nfdir):
|
||||
opus.main.output("creating directory: " +nfdir,2)
|
||||
os.makedirs(nfdir)
|
||||
|
||||
for file in files:
|
||||
ffile = os.path.join(root,file)
|
||||
nffile = ffile.replace(pJoin(ftweak,"wim"),opus.wim.path())
|
||||
opus.main.output("adding file: " +nffile,2)
|
||||
if os.path.isdir(nffile): os.remove(nffile)
|
||||
shutil.copyfile(ffile,nffile)
|
||||
opus.tweak.apply.wim = _tweakApplyWim
|
||||
|
||||
def _tweakApplyIso(tag):
|
||||
opus.main.output("\n>> [" +tag+ "] applying tweaks: iso",1)
|
||||
for tweakRoot,tweaks,_ in opus.path.walklevel(pJoin(opus.path.tweaks,tag)):
|
||||
for tweak in tweaks:
|
||||
ftweak = os.path.join(tweakRoot,tweak)
|
||||
if not os.path.isdir(pJoin(ftweak,"iso")): continue
|
||||
opus.main.output("> applying: " +tweak,1)
|
||||
for root,dirs,files in os.walk(pJoin(ftweak,"iso")):
|
||||
for dir in dirs:
|
||||
fdir = os.path.join(root,dir)
|
||||
nfdir = fdir.replace(pJoin(ftweak,"iso"),opus.path.target)
|
||||
if not os.path.isdir(nfdir):
|
||||
opus.main.output("creating directory: " +nfdir,2)
|
||||
os.makedirs(nfdir)
|
||||
|
||||
for file in files:
|
||||
ffile = os.path.join(root,file)
|
||||
nffile = ffile.replace(pJoin(ftweak,"iso"),opus.path.target)
|
||||
opus.main.output("adding file: " +nffile,2)
|
||||
if os.path.isdir(nffile): os.remove(nffile)
|
||||
shutil.copyfile(ffile,nffile)
|
||||
opus.tweak.apply.iso = _tweakApplyIso
|
|
@ -1,43 +0,0 @@
|
|||
global subprocess
|
||||
import subprocess
|
||||
global shutil
|
||||
import shutil
|
||||
|
||||
opus.wim = Munch()
|
||||
opus.wim.index = 0
|
||||
opus.wim.location = ""
|
||||
|
||||
def _wimPath(p = ""):
|
||||
if p == "": return pJoin(opus.path.wim,str(opus.wim.index))
|
||||
return pJoin(opus.path.wim,str(opus.wim.index),p)
|
||||
opus.wim.path = _wimPath
|
||||
|
||||
def _wimExtractFiles(filePaths):
|
||||
fileList = []
|
||||
for filePath in filePaths:
|
||||
fileList.append("-i!" +pJoin(str(opus.wim.index),filePath))
|
||||
|
||||
opus.main.output("extracting " +str(len(filePaths))+ " files from " +opus.wim.location+ "...")
|
||||
|
||||
for filePath in filePaths:
|
||||
rtn = subprocess.call(
|
||||
["wimlib-imagex","extract",
|
||||
opus.wim.location,str(opus.wim.index),
|
||||
filePath,
|
||||
"--dest-dir=" +opus.wim.path(""),"--preserve-dir-structure"]
|
||||
)
|
||||
if rtn > 0: raise Exception("wim")
|
||||
opus.wim.extractFiles = _wimExtractFiles
|
||||
|
||||
def _wimReadyFile(inPath,outPath):
|
||||
if os.path.isfile(opus.wim.path(outPath)): os.remove(opus.wim.path(outPath))
|
||||
shutil.copyfile(inPath,opus.wim.path(outPath))
|
||||
opus.wim.readyFile = _wimReadyFile
|
||||
|
||||
def _wimUpdate():
|
||||
opus.main.output("adding changed files to wim...")
|
||||
rtn = subprocess.call(
|
||||
["wimlib-imagex","update",opus.wim.location,str(opus.wim.index),
|
||||
"--command=add '" +opus.wim.path("")+ "' '\\'"]
|
||||
)
|
||||
opus.wim.update = _wimUpdate
|
|
@ -1 +0,0 @@
|
|||
opus.main.output("welcome to " +opus.version.string+ "!")
|
|
@ -1,88 +0,0 @@
|
|||
import sys
|
||||
import os
|
||||
import shutil
|
||||
import time
|
||||
|
||||
pJoin = os.path.join
|
||||
|
||||
opus.time = int(time.time())
|
||||
|
||||
opus.version = Munch()
|
||||
opus.version.distro = "opus-nt"
|
||||
opus.version.major = 0
|
||||
opus.version.median = 2
|
||||
opus.version.minor = 0
|
||||
opus.version.state = "dev"
|
||||
opus.version.string = \
|
||||
opus.version.distro + " " +\
|
||||
str(opus.version.major) + "." +\
|
||||
str(opus.version.median) + "." +\
|
||||
str(opus.version.minor) + " " +\
|
||||
opus.version.state
|
||||
|
||||
opus.path = Munch()
|
||||
opus.path.main = os.path.dirname(os.path.realpath(__file__))
|
||||
opus.path.api = pJoin(opus.path.main,"scripts","api")
|
||||
opus.path.tweaks = pJoin(opus.path.main,"tweaks")
|
||||
opus.path.temp = pJoin(opus.path.main,"tmp-" +str(opus.time))
|
||||
opus.path.wim = pJoin(opus.path.temp,"wim")
|
||||
opus.path.target = os.path.realpath(sys.argv[1])
|
||||
opus.verbosity = 2
|
||||
|
||||
with open(pJoin(opus.path.main,"scripts","api","main.py")) as script:
|
||||
exec(script.read())
|
||||
|
||||
opus.main.output("\nmain-api loaded!",1)
|
||||
opus.script.execute(pJoin(opus.path.main,"scripts","hello.py"))
|
||||
opus.main.output("",1)
|
||||
|
||||
if opus.verbosity > 0:
|
||||
opus.main.output("-- paths --")
|
||||
for path in opus.path:
|
||||
opus.main.output(path + ": " +opus.path[path])
|
||||
|
||||
opus.main.output("")
|
||||
|
||||
opus.main.output("-- loading misc APIs --", 1)
|
||||
|
||||
opus.script.execute(pJoin(opus.path.api,"path.py"))
|
||||
opus.script.execute(pJoin(opus.path.api,"wim.py"))
|
||||
opus.script.execute(pJoin(opus.path.api,"registry.py"))
|
||||
opus.script.execute(pJoin(opus.path.api,"detection.py"))
|
||||
opus.script.execute(pJoin(opus.path.api,"tweak.py"))
|
||||
|
||||
opus.main.output("",1)
|
||||
|
||||
opus.script.execute(pJoin(opus.path.main,"scripts","path.py"))
|
||||
|
||||
opus.main.output("",1)
|
||||
|
||||
opus.temp.remove()
|
||||
|
||||
os.makedirs(pJoin(opus.path.temp,"wim"))
|
||||
opus.wim.location = pJoin(opus.path.target,"sources","install.wim")
|
||||
opus.wim.index = int(input("\nwim index: "))
|
||||
opus.main.output("",1)
|
||||
|
||||
opus.wim.extractFiles([
|
||||
pJoin("Windows","System32","config","SOFTWARE"),
|
||||
pJoin("Windows","System32","config","SYSTEM"),
|
||||
pJoin("Users","Default","NTUSER.DAT")
|
||||
])
|
||||
|
||||
opus.main.output("",1)
|
||||
|
||||
opus.os = opus.detect.os(opus.wim.path())
|
||||
|
||||
for tag in opus.os.tags:
|
||||
if not os.path.isdir(pJoin(opus.path.tweaks,tag)): continue
|
||||
opus.tweak.apply.reg(tag,"SOFTWARE",pJoin("Windows","System32","config","SOFTWARE"))
|
||||
opus.tweak.apply.reg(tag,"SYSTEM",pJoin("Windows","System32","config","SYSTEM"))
|
||||
opus.tweak.apply.reg(tag,"NTUSER",pJoin("Users","Default","NTUSER.DAT"))
|
||||
opus.tweak.apply.wim(tag)
|
||||
opus.tweak.apply.iso(tag)
|
||||
|
||||
opus.main.output("\nif you'd like to make manual changes, please do so now. press enter to finalize or ctrl+c to cancel.")
|
||||
input()
|
||||
opus.wim.update()
|
||||
opus.temp.remove()
|
|
@ -1,7 +0,0 @@
|
|||
global os
|
||||
import os
|
||||
opus.main.output("expanding path...",1)
|
||||
for root,dirs,files in opus.path.walklevel(pJoin(opus.path.main,"bin")):
|
||||
for dir in dirs:
|
||||
opus.main.output("adding: " +dir,1)
|
||||
os.environ["Path"] = os.environ["Path"] + ";" + pJoin(root,dir)
|
|
@ -0,0 +1,17 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
powerSchemeLocation = opus.reg.path.join([env.reg.system,"ControlSet001","Control","Power","User","PowerSchemes"])
|
||||
powerSchemes = [
|
||||
"381b4222-f694-41f0-9685-ff5bb260df2e", #todo: add human-readable names as comment
|
||||
"8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c",
|
||||
"a1841308-3541-4fab-bc81-f71556f20b4a"
|
||||
]
|
||||
|
||||
for scheme in powerSchemes:
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"238c9fa8-0aad-41ed-83f4-97be242c8f20","29f6c1db-86da-48c5-9fdb-f2b67b1f44da"]),"ACSettingIndex","REG_DWORD","0x00000000")
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"238c9fa8-0aad-41ed-83f4-97be242c8f20","29f6c1db-86da-48c5-9fdb-f2b67b1f44da"]),"DCSettingIndex","REG_DWORD","0x00000000")
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"238c9fa8-0aad-41ed-83f4-97be242c8f20","9d7815a6-7ee4-497e-8888-515a05f02364"]),"ACSettingIndex","REG_DWORD","0x00000000")
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"238c9fa8-0aad-41ed-83f4-97be242c8f20","9d7815a6-7ee4-497e-8888-515a05f02364"]),"DCSettingIndex","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
having the computer sleep while it's doing something = bad
|
|
@ -0,0 +1,9 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows","SQMClient"]),
|
||||
"CEIPEnable","REG_DWORD","0x00000000"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
disables some misc telemetry related to compatibility and problem solving. also degrades performance
|
|
@ -0,0 +1,27 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
for user in env.reg.users:
|
||||
accessibility = opus.reg.path.join([user,"Control Panel","Accessibility"])
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([accessibility,"Keyboard Response"]),
|
||||
"Flags","REG_SZ","112"
|
||||
)
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([accessibility,"MouseKeys"]),
|
||||
"Flags","REG_SZ","58"
|
||||
)
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([accessibility,"StickyKeys"]),
|
||||
"Flags","REG_SZ","442"
|
||||
)
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([accessibility,"ToggleKeys"]),
|
||||
"Flags","REG_SZ","58"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
the combinations for sticky keys, filter keys, etc. annoyingly conflict with programs/games that require you to often press/hold SHIFT. other, less annoying combinations have also been disabled for good measure.
|
|
@ -0,0 +1,8 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows","System"]),
|
||||
"AllowBlockingAppsAtShutdown","REG_DWORD","0x00000001"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
killing programs even if they do not have an active window, can lead to unforeseen consequences
|
|
@ -0,0 +1,14 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
powerSchemeLocation = opus.reg.path.join([env.reg.system,"ControlSet001","Control","Power","User","PowerSchemes"])
|
||||
powerSchemes = [
|
||||
"381b4222-f694-41f0-9685-ff5bb260df2e", #todo: add human-readable names as comment
|
||||
"8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c",
|
||||
"a1841308-3541-4fab-bc81-f71556f20b4a"
|
||||
]
|
||||
|
||||
for scheme in powerSchemes:
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"e73a048d-bf27-4f12-9731-8b2076e8891f","637ea02f-bbcb-4015-8e2c-a1c7b9c0b546"]),"ACSettingIndex","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
fixes the annoying behavior where windows will hibernate randomly while the device is charging. this can happen especially on old/dead/stupid batteries. if you are using a weak charger, you may want to exclude this tweak.
|
|
@ -0,0 +1,15 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
powerSchemeLocation = opus.reg.path.join([env.reg.system,"ControlSet001","Control","Power","User","PowerSchemes"])
|
||||
powerSchemes = [
|
||||
"381b4222-f694-41f0-9685-ff5bb260df2e", #todo: add human-readable names as comment
|
||||
"8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c",
|
||||
"a1841308-3541-4fab-bc81-f71556f20b4a"
|
||||
]
|
||||
|
||||
for scheme in powerSchemes:
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"4f971e89-eebd-4455-a8de-9e59040e7347","5ca83367-6e45-459f-a27b-476b1d01c936"]),"ACSettingIndex","REG_DWORD","0x00000000")
|
||||
opus.reg.add(opus.reg.path.join([powerSchemeLocation,scheme,"4f971e89-eebd-4455-a8de-9e59040e7347","5ca83367-6e45-459f-a27b-476b1d01c936"]),"ACSettingIndex","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
closing the laptop's lid without having it stop all its activities can often be a desirable, additional, state.
|
|
@ -0,0 +1,9 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([env.reg.system,"ControlSet001","Services","SysMain"]),
|
||||
"Start","REG_DWORD","0x00000004"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
superfetch stores frequently accessed data in RAM. this is supposed to speed up read speeds, but in practice, it just causes unnecessary i/o activity, especially on HDDs. slow on HDDs, useless on SSDs as they're fast enough as-is, so this is disabled.
|
|
@ -0,0 +1,14 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
if "ten" in env.os.tags: opus.reg.add(
|
||||
opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows Defender","Features"]),
|
||||
"TamperProtection","REG_DWORD","0x00000000"
|
||||
)
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows Defender"]),
|
||||
"DisableAntiSpyware","REG_DWORD","0x00000001"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
windows defender is not that good of anti-virus, and also causes a boatload of i/o activity, especially when a lot is going on. definitely worth disabling.
|
|
@ -0,0 +1,9 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([env.reg.system,"ControlSet001","Services","WSearch"]),
|
||||
"Start","REG_DWORD","0x00000004"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
the windows search service is responsible for indexing the files on your drives. the service speeds up search, however, also causes unexpected i/o activity sometimes.
|
|
@ -0,0 +1,7 @@
|
|||
def main():
|
||||
from distutils.dir_util import copy_tree
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
if not env.applicationMode != 2: env.applied = False; return
|
||||
copy_tree(env.pathJoin(env.fdir,"wim"),env.tmpWim)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
disables the scheduled task responsible for measuring the system's performance index, which is generally useless
|
|
@ -0,0 +1 @@
|
|||
schtasks /change /tn "Microsoft\Windows\Maintenance\WinSAT" /disable
|
|
@ -0,0 +1,10 @@
|
|||
def main():
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
|
||||
for user in env.reg.users:
|
||||
opus.reg.add(
|
||||
opus.reg.path.join([user,"Software","Microsoft","Windows","CurrentVersion","Explorer","Advanced"]),
|
||||
"HideFileExt","REG_DWORD","0x00000000"
|
||||
)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
this enables file extensions (like .exe and .zip) for every newly created user.
|
|
@ -0,0 +1,7 @@
|
|||
def main():
|
||||
from distutils.dir_util import copy_tree
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
if not env.applicationMode != 2: env.applied = False; return
|
||||
copy_tree(env.pathJoin(env.fdir,"wim"),env.tmpWim)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
hibernation locks down your file system while windows is hibernating or shut down (if fast startup is enabled). editing the file-system outside of windows while this is the case, perhaps for recovery purposes, can likely corrupt your data.
|
|
@ -0,0 +1 @@
|
|||
powercfg -h off
|
|
@ -0,0 +1,7 @@
|
|||
def main():
|
||||
from distutils.dir_util import copy_tree
|
||||
if not "longhorn-series" in env.os.tags: env.applied = False; return
|
||||
if not env.applicationMode != 2: env.applied = False; return
|
||||
copy_tree(env.pathJoin(env.fdir,"wim"),env.tmpWim)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
this calls all .cmd scripts in `%WinDir%\Setup\Scripts\opus` after setup (within OOBE, with SYSTEM rights). a log-file is then created at `%SystemDrive%\opus-nt-setupcomplete.log`. the scripts destroy themselves after this.
|
|
@ -0,0 +1,30 @@
|
|||
def main():
|
||||
if not "seven" in env.os.tags and not "vista" in env.os.tags:
|
||||
env.applied = False; return
|
||||
|
||||
explorerLocation = opus.reg.path.join([env.reg.software,"Microsoft","Windows","CurrentVersion","Explorer"])
|
||||
folderDescriptions = {
|
||||
"{2112AB0A-C86A-4ffe-A368-0DE96E47012E}",
|
||||
"{491E922F-5643-4af4-A7EB-4E7A138D8174}",
|
||||
"{7b0db17d-9cd2-4a93-9733-46cc89022e7c}",
|
||||
"{A302545D-DEFF-464b-ABE8-61C8648D939B}",
|
||||
"{A990AE9F-A03B-4e80-94BC-9912D7504104}"
|
||||
}
|
||||
|
||||
try:
|
||||
opus.reg.delete(opus.reg.path.join([explorerLocation,"Desktop","NameSpace","{031E4825-7B94-4dc3-B131-E946B44C8DD5}"]))
|
||||
except:
|
||||
print("Registry tweak not applied, assuming already applied.")
|
||||
|
||||
try:
|
||||
opus.reg.delete(opus.reg.path.join([explorerLocation,"HideDesktopIcons","NewStartPanel"],"{031E4825-7B94-4dc3-B131-E946B44C8DD5}"))
|
||||
except:
|
||||
print("Registry tweak not applied, assuming already applied.")
|
||||
|
||||
for description in folderDescriptions:
|
||||
try:
|
||||
opus.reg.delete(opus.reg.path.join([folderDescriptionLocation,"FolderDescriptions",description]))
|
||||
except:
|
||||
print("Registry tweak not applied, assuming already applied.")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
the library shortcuts show very inconsistent behavior compared to opening the corresponding folders via any other method. it should be more comfortable for most to access user folders via their favorites.
|
|
@ -0,0 +1,7 @@
|
|||
def main():
|
||||
from distutils.dir_util import copy_tree
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
if not env.applicationMode != 2: env.applied = False; return
|
||||
copy_tree(env.pathJoin(env.fdir,"wim"),env.tmpWim)
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
this disables the scheduled task, which force-restarts your PC randomly after an update. **this tweak currently breaks windows 10 1909, so take care.**
|
|
@ -0,0 +1 @@
|
|||
skips OOBE, the last part of the setup. option to create a microsoft account is disabled, you will not be offered to connect to a wifi network and all the security questions get answered with "no" (to maximize privacy and performance).
|
|
@ -0,0 +1,10 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
uxSettings = opus.reg.path.join([env.reg.software,"Microsoft","WindowsUpdate","UX","Settings"])
|
||||
|
||||
opus.reg.add(uxSettings,"BranchReadinessLevel","REG_DWORD","0x00000020")
|
||||
opus.reg.add(uxSettings,"DeferFeatureUpdates","REG_DWORD","0x00000001")
|
||||
opus.reg.add(uxSettings,"DeferFeatureUpdatesPeriodInDays","REG_DWORD","0x000000b7")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
feature updates will be delayed by half a year. feature updates are known to break stuff, especially in their early days, this alleviates the issue.
|
|
@ -0,0 +1,11 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
systemPolicies = opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows","System"])
|
||||
|
||||
opus.reg.add(systemPolicies,"AllowCrossDeviceClipboard","REG_DWORD","0x00000000")
|
||||
opus.reg.add(systemPolicies,"EnableActivityFeed","REG_DWORD","0x00000000")
|
||||
opus.reg.add(systemPolicies,"PublishUserActivities","REG_DWORD","0x00000000")
|
||||
opus.reg.add(systemPolicies,"UploadUserActivities","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
the activity history is just kind of creepy and unnecessary. this also skips a step in OOBE.
|
|
@ -0,0 +1,14 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
for user in env.reg.users:
|
||||
deliveryManager = opus.reg.path.join([user,"Microsoft","Windows","CurrentVersion","ContentDeliveryManager"])
|
||||
explorerAdvanced = opus.reg.path.join([user,"Microsoft","Windows","CurrentVersion","Explorer","Advanced"])
|
||||
|
||||
opus.reg.add(explorerAdvanced,"ShowSyncProviderNotification","REG_DWORD","0x00000000") #no explorer "suggestions"
|
||||
opus.reg.add(deliveryManager,"SystemPaneSuggestionsEnabled","REG_DWORD","0x00000000") #no start menu "suggestions"
|
||||
opus.reg.add(deliveryManager,"SoftLandingEnabled","REG_DWORD","0x00000000") #no "tips", "tricks" and "suggestions"
|
||||
opus.reg.add(deliveryManager,"SubscribedContent-338393Enabled","REG_DWORD","0x00000000") #no settings "suggestions"
|
||||
opus.reg.add(deliveryManager,"SilentInstalledAppsEnabled","REG_DWORD","0x00000000") #no automatic advert app downloads
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
this disables lots of ad-like behavior. the following features are disabled: downloading advert apps, explorer suggestions, start menu suggestions, "tips, tricks and suggestions" and settings suggestions.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.software,"Microsoft","Windows","CurrentVersion","Policies","System"]),"DisableAutomaticRestartSignOn","REG_DWORD","0x00000001")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
automatic sign-on gets your PC ready with the applications you had last started before you log in. this can be annoying if you prefer to start fresh when restarting. this can also slow down your startup by a bunch.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows","Windows Search"]),"AllowCortana","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
another unecessity. this also disables web-search suggestions... at least it used to, thanks microsoft.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.software,"Microsoft","Windows","CurrentVersion","DeliveryOptimization","Config"]),"DODownloadMode","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
on default, windows will download/upload updates from/to other PCs in the network. this may or may not have security implications. better safe than sorry.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows Update"]),"ExcludeWUDriversInQualityUpdate","REG_DWORD","0x00000001")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
driver updates just love to break everything by installing themselves over your current drivers, improperly. this unfortunately does not get rid of GPU driver updates.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.system,"ControlSet001","Control","Session Manager","Power"]),"HiberbootEnabled","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
when using fast startup, your computer never properly shuts down, but rather hibernates. this can leave you with an unstable system after a while, if you do not restart. see below for more info on hibernation and another reason as to why this is disabled.
|
|
@ -0,0 +1,9 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
for user in env.reg.users:
|
||||
dvr = opus.reg.path.join([user,"Software","Microsoft","Windows","CurrentVersion","GameDVR"])
|
||||
opus.reg.add(dvr,"AppCaptureEnabled","REG_DWORD","0x00000000")
|
||||
opus.reg.add(dvr,"HistoricalCaptureEnabled","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
the game bar can decrease performance on certain systems.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows","Personalization"]),"NoLockScreen","REG_DWORD","0x00000001")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
disables the additional, phone-like lock screen when an account is locked. saves you a button-press. this currently disables the ability to change your lockscreen image for some reason.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.system,"ControlSet001","Control","Memory Management"]),"SwapfileControl","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
metro apps suspend themselves into swapfile.sys, to save memory. this however causes i/o activity. it is better disabled, and to disallow wasteful apps to run in the background entirely.
|
|
@ -0,0 +1,7 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
for user in env.reg.users:
|
||||
opus.reg.add(opus.reg.path.join([user,"Software","Microsoft","Windows","CurrentVersion","Run"]),"OneDriveSetup","REG_SZ"," ")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
onedrive gets installed for every newly created user. this disables that behavior.
|
|
@ -0,0 +1,9 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
for user in env.reg.users:
|
||||
explorer = opus.reg.path.join([user,"SOFTWARE","Microsoft","Windows","CurrentVersion","Explorer"])
|
||||
opus.reg.add(explorer,"ShowRecent","REG_DWORD","0x00000000")
|
||||
opus.reg.add(explorer,"ShowFrequent","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
disables several occurrences of recently opened files and folders, most prominently in quick access.
|
|
@ -0,0 +1,6 @@
|
|||
def main():
|
||||
if not "ten" in env.os.tags: env.applied = False; return
|
||||
|
||||
opus.reg.add(opus.reg.path.join([env.reg.software,"Policies","Microsoft","Windows","DataCollection"]),"AllowTelemetry","REG_DWORD","0x00000000")
|
||||
|
||||
main()
|
|
@ -0,0 +1 @@
|
|||
this tweak reduces the amount of data sent to microsoft. on home/pro, only basic telemetry gets sent. on enterprise, telemetry is "disabled".
|
|
@ -0,0 +1 @@
|
|||
print("hello world")
|
|
@ -0,0 +1 @@
|
|||
dummy tweak
|
|
@ -1,28 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
; sleep
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\238c9fa8-0aad-41ed-83f4-97be242c8f20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c\238c9fa8-0aad-41ed-83f4-97be242c8f20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\a1841308-3541-4fab-bc81-f71556f20b4a\238c9fa8-0aad-41ed-83f4-97be242c8f20\29f6c1db-86da-48c5-9fdb-f2b67b1f44da]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
; hibernation
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\238c9fa8-0aad-41ed-83f4-97be242c8f20\9d7815a6-7ee4-497e-8888-515a05f02364]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c\238c9fa8-0aad-41ed-83f4-97be242c8f20\9d7815a6-7ee4-497e-8888-515a05f02364]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\a1841308-3541-4fab-bc81-f71556f20b4a\238c9fa8-0aad-41ed-83f4-97be242c8f20\9d7815a6-7ee4-497e-8888-515a05f02364]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Policies\Microsoft\Windows\SQMClient]
|
||||
"CEIPEnable"=dword:00000000
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Control Panel\Accessibility\Keyboard Response] ; filter keys
|
||||
"Flags"="122"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Control Panel\Accessibility\MouseKeys]
|
||||
"Flags"="58"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Control Panel\Accessibility\StickyKeys]
|
||||
"Flags"="442"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Control Panel\Accessibility\ToggleKeys]
|
||||
"Flags"="58"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Policies\Microsoft\Windows\System]
|
||||
"AllowBlockingAppsAtShutdown"=dword:00000001
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Session Manager\Power]
|
||||
"HibernateEnabled"=dword:00000000
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\e73a048d-bf27-4f12-9731-8b2076e8891f\637ea02f-bbcb-4015-8e2c-a1c7b9c0b546]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c\e73a048d-bf27-4f12-9731-8b2076e8891f\637ea02f-bbcb-4015-8e2c-a1c7b9c0b546]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\a1841308-3541-4fab-bc81-f71556f20b4a\e73a048d-bf27-4f12-9731-8b2076e8891f\637ea02f-bbcb-4015-8e2c-a1c7b9c0b546]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\381b4222-f694-41f0-9685-ff5bb260df2e\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Control\Power\User\PowerSchemes\a1841308-3541-4fab-bc81-f71556f20b4a\4f971e89-eebd-4455-a8de-9e59040e7347\5ca83367-6e45-459f-a27b-476b1d01c936]
|
||||
"ACSettingIndex"=dword:00000000
|
||||
"DCSettingIndex"=dword:00000000
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Services\SysMain]
|
||||
"Start"=dword:00000004
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows Defender\Features]
|
||||
"TamperProtection"=dword:00000000
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Policies\Microsoft\Windows Defender]
|
||||
"DisableAntiSpyware"=dword:00000001
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\ControlSet001\Services\WSearch]
|
||||
"Start"=dword:00000004
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
|
||||
"HideFileExt"=dword:00000000
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{031E4825-7B94-4dc3-B131-E946B44C8DD5}]
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{2112AB0A-C86A-4ffe-A368-0DE96E47012E}]
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{491E922F-5643-4af4-A7EB-4E7A138D8174}]
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7b0db17d-9cd2-4a93-9733-46cc89022e7c}]
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{A302545D-DEFF-464b-ABE8-61C8648D939B}]
|
||||
|
||||
[-HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{A990AE9F-A03B-4e80-94BC-9912D7504104}]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
|
||||
"{031E4825-7B94-4dc3-B131-E946B44C8DD5}"=-
|
|
@ -1,8 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
; this sets the update channel to semi-annual, and additionally defers the updates for half a year
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\WindowsUpdate\UX\Settings]
|
||||
"BranchReadinessLevel"=dword:00000020
|
||||
"DeferFeatureUpdates"=dword:00000001
|
||||
"DeferFeatureUpdatesPeriodInDays"=dword:000000b7
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Policies\Microsoft\Windows\System]
|
||||
"AllowCrossDeviceClipboard"=dword:00000000
|
||||
"EnableActivityFeed"=dword:00000000
|
||||
"PublishUserActivities"=dword:00000000
|
||||
"UploadUserActivities"=dword:00000000
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
|
||||
"ShowSyncProviderNotifications"=dword:00000000 ; no explorer "suggestions"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
|
||||
"SystemPaneSuggestionsEnabled"=dword:00000000 ; no start menu "suggestions"
|
||||
"SoftLandingEnabled"=dword:00000000 ; no "tips", "tricks" and "suggestions"
|
||||
"SubscribedContent-338393Enabled"=dword:00000000 ; no settings "suggestions"
|
||||
"SilentInstalledAppsEnabled"=dword:00000000 ; no automatic advert app downloads
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Microsoft\Windows\CurrentVersion\Policies\System]
|
||||
"DisableAutomaticRestartSignOn"=dword:00000001
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_LOCAL_MACHINE\OPUS_TMP\Policies\Microsoft\Windows\Windows Search]
|
||||
"AllowCortana"=dword:00000000
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue