Disabling Animation effects in NTLite doesn't work anymore

Not all HKCU reg customizations work, that's simply because later W10/11 releases block or ignoring many of them during new user provisioning. The solution is to add the reg file during Post-Setup (After logon).
 
Not all HKCU reg customizations work, that's simply because later W10/11 releases block or ignoring many of them during new user provisioning. The solution is to add the reg file during Post-Setup (After logon).
the problem is I don't know which is the right registry Key/Value for this
 
This is a trick question, disabling that Accessibility setting makes several changes at the same time.
Code:
[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex(3):98,1E,07,80,12,00,00,00

It actually updates UserPreferencesMask, which is the same as unchecking Visual Effect boxes on the Performance Options control panel.
Code:
hex(3):9E,1E,07,80,12,00,00,00
------------------------------
MenuAnimation
ComboBoxAnimation
ListBoxSmoothScrolling
GradientCaptions
HotTracking
MenuFade
SelectionFade
ToolTipAnimation
ToolTipFade
Reserved16
Reserved17
Reserved18
UIEffects

hex(3):98,1E,07,80,12,00,00,00
------------------------------
ListBoxSmoothScrolling
GradientCaptions
HotTracking
MenuFade
SelectionFade
ToolTipAnimation
ToolTipFade
Reserved16
Reserved17
Reserved18
UIEffects

Changes
-------
MenuAnimation
ComboBoxAnimation
 
I was looking around, and while there's a handful of UI-based tweaking tools, there's nothing for the command line.

The problem with using reg values is you need to understand binary math before editing UserPreferencesMask, or otherwise you have to accept someone's recommended values. After finding a good lead, I wrote a batch script which can be run from Post-Setup.

1. Running UserPreferences.bat, reports the current UserPreferencesMask reg values and maps out the enabled Settings.
Code:
C:\Users\GARLIN\Downloads>UserPreferencesMask.bat
"UserPreferencesMask"=hex(3):9E,1E,07,80,12,00,00,00
        MenuAnimation
        ComboBoxAnimation
        ListBoxSmoothScrolling
        GradientCaptions
        HotTracking
        MenuFade
        SelectionFade
        ToolTipAnimation
        ToolTipFade
        HidePointerWhileTyping
        UseVisualStylesButtons
        ShowShadowsUnderMenus
        UIEffects
        AnimateControlsInWindows
        EnableClearType

2. "UserPreferences.bat -help" dumps a list of all known names, and new aliases like AnimationEffects (which is a group of several settings).
Code:
C:\Users\GARLIN\Downloads>UserPreferencesMask.bat -help
        ActiveWindowTracking
        ActiveWindowTrackingZOrder
        AnimateControlsElementsInWindows
        AnimateControlsInWindows
        AnimationEffects (alias)
        ClickLock
        ComboBoxAnimation
        CursorShadow
        DisableOverlappedContent
        EnableClearType
        EnableSpeechRecognition
        GradientCaptions
        HidePointerWhileTyping
        HotTracking
        KeyboardCues
        LanguageBar
        ListBoxSmoothScrolling
        MenuAnimation
        MenuFade
        SelectionFade
        ShowPointerLocation
        ShowShadowsUnderMenus
        ShowShadowsUnderWindows
        ToolTipAnimation
        ToolTipFade
        UIEffects
        UseVisualStylesButtons
        UseVisualWindowsAndButtons

3. You may specify a list of Settings, in the form Name (enabled) or -Name (disabled). The script will confirm which Settings which changes will be made; and if you're not running with Admin rights, print the proper reg file. Unrecognized Names are silently ignored.

For example, to disable AnimationEffects (an alias) and enable Mouse Click Lock.
Code:
C:\Users\GARLIN\Downloads>UserPreferencesMask.bat -AnimationEffects ClickLock
Enabled: ClickLock
Disabled: AnimateControlsInWindows, ComboBoxAnimation, ListBoxSmoothScrolling, MenuAnimation, SelectionFade, ToolTipAnimation
        GradientCaptions
        HotTracking
        MenuFade
        ToolTipFade
        ClickLock
        HidePointerWhileTyping
        UseVisualStylesButtons
        ShowShadowsUnderMenus
        UIEffects
        EnableClearType

[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex(3):90,92,07,80,10,00,00,00

[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]
"MinAnimate"=0

If you are running as Admin, the script will directly update the registry. You probably need to LOG OUT for the changes to take effect, not just restarting Explorer.

4. This script doesn't try to cover every possible Visual Effects tweak. But checking with RegistryChangesView, it recreates all the changes that switching Animation Effects on & off makes. The final objective is a tool which only changes the bitmasks are needed, instead of forcing you to copy someone else's UserPreferencesMask.

So it's useful for scripting profile changes. Run it from the command line or Post-Setup (After logon).
 

Attachments

Forgive me if this is somewhat noobish..
I tried running the batch file with this Parameter (-AnimationEffects)
I took this part


[HKEY_CURRENT_USER\Control Panel\Desktop]
"UserPreferencesMask"=hex(3):90,92,07,80,10,00,00,00

[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]
"MinAnimate"=0



and appended it to a reg file (Disable all animation effects.reg) for NTLite registry integration....but the toggle is still on after Windows setup completes

Untitled.png

are the effects applied despite the toggle displaying On ?


Edit: I forgot your very first response ( That recent W10/11 releases ignore HKCU customizations before user provisioning), so I made a seperate reg file and added it in NTLite post setup (after logon) and that made it work !

Untitled.png

Many thanks to you, Sir !
 

Attachments

Last edited:
Sadly, I have to report that this fix doesn't work anymore...I even tried using the bat file that Garlin Provided in post setup after logon, but the animation effects toggle is still on
 

Attachments

This is likely because you have conflicting tweaks at the moment. Masks are especially hard to work with too, because they change multiple settings as mentioned earlier in this thread. When I downloaded and looked through your registry tweaks it gave me a stroke, so it's time for you to go back and start doing a bunch of housekeeping on your image, as poor quality control is the likely culprit here.

What I mean is, go through all those registry files and start consolidating. There's no benefit to having 100 separate files, and it's far more efficient to work with less, as that makes everything easier and faster to read and manipulate. You'll discover that you have duplicate and conflicting tweaks as you perform cleanup. Report back after you do a clean install using your newly polished image and let us know if the problem still exists.

I just toggled this setting on an install of W11 23H2 I happen to have up for testing something else, and not only does the setting persist over reboots, but it was just 2 registry keys in total, being MinAnimate at 0 and then a custom UserPreferencesMask. My mask is different than yours however, because I purposely had it set on the main Visual Effects page to use, "Let Windows choose what's best for my computer" but I specifically modified that so only font smoothing is checked, with a mask of 90,12,07,80,10,00,00,00.
 
Last edited:
This is likely because you have conflicting tweaks at the moment. Masks are especially hard to work with too, because they change multiple settings as mentioned earlier in this thread. When I downloaded and looked through your registry tweaks it gave me a stroke, so it's time for you to go back and start doing a bunch of housekeeping on your image, as poor quality control is the likely culprit here.
my intention was to keep the tweaks modular so that it is easier (and clearer) to add and remove as needed....
I knew some of the tweaks was already provided by NTLite settings, but I wanted to make sure the tweaks get applied in case NTLite sttings glitched and didn't get applied
I didn't know there were conflicts (tried hard to make it conflict-free)....gues I'll need to revise it
 
If you want to tackle this yourself, please of course do so because that's the best way to learn. But, I wouldn't mind taking this as an opportunity to help show lurkers the importance of having an organized workspace and good housekeeping on files, so if you're interested I can take all your files when I get a chance here in a few hours and transform them into something totally different that will help you see the potential.

There's a lot of aspects regarding both the registry and registry files that I'm realizing most people on this forum don't know about, and so I think a project like this would be a good reference for users to learn from since I can provide a before/after in the attachments, and I can also point out the issues I find, such as duplicates/conflicts/bugs and fix them too. If you want that, mail me every tweak file you use in your image (if there's more than previously attached) and I'll work on it today. Otherwise, I think you'll be successfull on your own too, and I'm here if you need help.
 
Last edited:
If you want to tackle this yourself, please of course do so because that's the best way to learn. But, I wouldn't mind taking this as an opportunity to help show lurkers the importance of having an organized workspace and good housekeeping on files, so if you're interested I can take all your files when I get a chance here in a few hours and transform them into something totally different that will help you see the potential.

Oh, that would be so much appreciated...those are all the tweaks, I only plan to integrate a nvidia driver installer package
 
This post is a sidebar, designed to be linked to as a guide on how to polish an image, using a real project from a forum member as an example, so that users can download the attachments and follow along, as if this were being explained in a classroom setting or similar.

I've finished doing housekeeping on the image from this thread. It was just the right size for this project, because it was big enough to have plenty of issues to solve, but small enough that it wasn't overwhelming. I did two test installs of this image, one with only the new registry file so I could verify it works. Then I did an install using both the NTLite preset and new registry file, and took screenshots of some of the bigger fixes.

PROJECT STATS
The old project had 3 NTLite presets, 38 registry files, 1 powershell script, and 1 batch file.

The new project has 1 NTLite preset, 1 registry file, and 1 example file.

A file comparison tool, such as DiffMerge by SourceGear, can do a side by side view of two files and display to the user what was added, removed, or modified between them. This is especially useful for looking at the changes between two NTLite XML presets for example, as those can be hundreds of or thousands of lines long, so a tool can save heaps of time and greatly improve accuracy while working on projects.

IMAGE POLISHING
Hopefully the notes below will help users see just how much housekeeping there is to do on an image. It's an important step, and it just doesn't get done at all or to the degree it should most times, resulting in bugged images being used everywhere. I cringe nearly every time I open attachments to see what someone needs help with, because I immediately see bugs and bad tweaks that need fixing each time.

I'm not saying that to put people down, but to try to drive home how frequent and severe this overall problem is in the community so that more people will take notice and spend time cleaning up their projects, not only for their own benefit, but to also help reduce the number of questions that get asked on the forum, since it can be overwhelming for the small number of helpers to handle each day, leading to burnout.

Of course not everything I discuss here is super important, the point is this is a teaching exercise that can by used by people that want to learn how to build a good project workspace, the types of issues they need to be on the lookout for, and ideas about how to test and troubleshoot. Keep in mind, I am not making notes here about whether I like certain tweaks or not, as that's not the point of this post at all.

NTLITE XML PRESETS
I performed the following on the presets contained in this thread.

01) Manually merged the 3 presets after comparing them, and ended with a single preset where I modified the entire post-setup section to fix things that I was moving around and consolidating.

02) Deleted the Scheduled Tasks powershell script and instead added all those tweaks into the preset so they are integrated into the image, as that is the most robust approach here, rather than post-setup. The script is a great idea for testing them on a live install though, before committing to integrating them into NTLite.

03) Deleted 14 tweaks from the preset, because they are already contained in the registry files and part of fixing this project meant eliminating all potential sources of conflict, which is part of why some things weren't working before. We don't need multiple tools or scripts to apply the same tweak, because either it works or it doesn't, and everyone should be testing tweaks on a live install first, before putting them into an image. In this case, I cut the conflicts out of the preset and pasted them into the example.txt file for reference.

04) Deleted the post-setup disable8dot3 command in the preset and added it to the new registry file instead, as integration is better than post-setup when possible for most tweaks.

05) Converted the post-setup wmic command for password expiration in the preset into maxpwage, so it works for all users.

06) Converted the post-setup hibernate command into a registry key and put it into the new registry file. It's also enabled by default in W10/W11, so this isn't really needed, but I added it anyway in case there was a niche scenario it was fixing before.

07) Converted the post-setup set-WinHomeLocation command into a registry key and put it into the new registry file. But, what is the reason for this tweak, since this can be configured in the unattend, right? I'm not sure of the intent here.

08) The Visual C++ Runtime All-In-One isn't needed, as most software automatically installs what they need, which nowadays is mostly the 2015-2022 runtimes in both the 32-bit and 64-bit packages (even on 64-bit Windows). I didn't change this though, it's just a comment to consider. People will argue it has no performance impact, but my view is the point of NTLite is to remove bloat, not add even more excess files.

09) Deleted the "Disable Animation Effects" batch file, and removed the reference from the preset's post-setup, as this file can be handled better with registry keys which integrate into an image, plus we needed to eliminate all points of conflict in the Visual Effects settings by consolidating the various tweaks into a final outcome.

10) When I loaded the new preset into the latest version of NTLite, it automatically added two new component removals, which I decided to keep in the file, but I am documenting them below in case they cause any problems in the future:

<c>directml 'Direct Machine Learning (DirectML)'</c>
<c>universalprintsvc 'Universal Print Management Service'</c>

REGISTRY FILES
11) Added comments to document where to locate each tweak in Windows and what they do, which also makes it much easier to find a tweak using a search box, since more keywords are available. Then used the registry paths as well as the comments to organize tweaks into related groups, and put things in alphabetical order too. Also, separated out individual tweaks that aren't directly related, such as the various xbox keys for example, so that they are modular and documented more accurately.

12) Did a bunch of basic formatting, like removing excess empty lines, trailing whitespace, and ensured the new registry file was in the correct UTF-16 LE encoding, since many of the old files weren't, as well as making sure to add ending newlines and other similar cleanup.

13) Deleted the VisualFXSetting key, and then fixed the overall Visual Effects settings by adding the new method for tweaking it. This adds 17 easy to use keys with a registry path of \Explorer\VisualEffects\ that have a simple "DefaultValue" which can be 00000000 to turn off a setting or 00000001 to turn them on, and they are all toggled individually, unlike the traditional route that uses a clunky mask and shellstate.

14) The Animation effects in the Accessibility settings page was fixed so that on a clean install it is now toggled off.

15) Fixed the DisablePCA tweak, because it was failing to apply to the registry, due to multiple invalid characters and parameters in the key. For future reference, it had a double equal (==) sign on the dword, as well as "smart quotes" which stand out due to them being in italics.

16) Converted DisablePCA and DisableAIDataAnalysis tweaks into local_machine so that it applies to all users instead, because I imagine that's actually what was intended for these, since many of the other registry tweaks target all users.

17) Deleted several redundant group policy tweaks that were using both current_user and local_machine. This is unneccessary as local_machine is all that's needed to affect all users, and stuff like this is a part of why it's so difficult to troubleshoot images on the internet, because so many people do this, "shotgun approach" where they go to extremes in, "ensuring a tweak sticks" by stacking them together, causing problems.

18) All the power plan tweaks gleaned from my Optimized Image guide aren't used correctly in this thread, because they were modified to be for the Ultimate performance plan, but that's not a real power plan which is why these tweaks don't work at the moment. Ultimate power is completely misunderstood by everyone, and I have posts explaining that (link1, link2) here. To fix this, I changed the tweaks back to the High performance power plan, but then I also added the hard drive timeout tweak which is all the ultimate performance plan really does.

19) In addition to the other power plan issues, there was never a tweak anywhere in this image that actually switched the power plan from Balanced to Ultimate, so even if the previous tweaks were correct, they weren't being actively used, because Windows defaults to the Balanced power plan on both W10 and W11 unless the user changes it. I fixed this by adding 2 keys that set the active plan to High performance.

20) StickyKeys flag was set at 2, but it needs to be 506 to disable the shortcut, so I fixed that.

21) NtfsDisableLastAccessUpdate was set to 3 which disables it, but that also allows group policies to modify this setting, whereas a value of 1 keeps it from being conflicted with. It's not common knowledge, but the "Refs" key also gets set along with the "Ntfs" key when using the fsutil command, meaning people need to toggle both together, so I fixed that and set them both to disabled globally.

22) The tweaks gleaned from my Pause Windows Update guide were also incorrect in this thread, because later builds of W11 have now changed several of those keys and even added a new one. I fixed all of this, and now it's properly paused out of the box on a clean install.

MISCELLANEOUS INFORMATION
23) Created an example a file called, Extra.txt which explains how to keep registry files modular and easy to sort through, as a user works on building an image and testing things. Open that file to see more information.

24) Discovered a Microsoft typo during this adventure, as the spelling of MDMMaintenenceTask is incorrect and should be MDMMaintenanceTask. It's spelled wrong in NTLite too, but that's expected, because the tool uses Microsoft's naming. I am pointing this out in case it affects anyone in the future, because I am going to submit it to Microsoft to be fixed, which could cause a problem for scripts using the old name. I stumbled on this when I was using a search box and spelling it properly, but it wouldn't appear.

25) As a closing note, I want to clarify that the 3 files in the "NEW" attachment are complete, and there's no work that has to be done based on the things I talked about in this post. I went ahead and did all the fixing, so from this point users can do whatever they want with it. I feel like it's worth mentioning that some of these fixes will improve the snappiness of the new image compared to the old, due to things like the power plan and visual effects being improved over the original.
 

Attachments

  • OLD.zip
    OLD.zip
    46.9 KB
  • NEW.zip
    NEW.zip
    18.9 KB
  • Accessibility.png
    Accessibility.png
    42.2 KB
  • Visual_Effects.png
    Visual_Effects.png
    23.4 KB
  • Windows_Update.png
    Windows_Update.png
    45.7 KB
Last edited:
07) Converted the post-setup set-WinHomeLocation command into a registry key and put it into the new registry file. But, what is the reason for this tweak, since this can be configured in the unattend, right? I'm not sure of the intent here.
my first intention was to set the region to English(World) during OOBE to Prevent installing bloatware, since this was a well-known tweak to do that, then the command was meant to return the region to United States for microsoft store to work....later I discovered that choosing English (World) during OOBE would later cause xbox app not to work at all so I reverted to choosing US as region but kept the command in the preset to make use of it later (I know....lazy).....many of the other (redundant) tweaks have similar stories

Anyway, I can't express how grateful I am, for not only helping organize the preset, but also for teaching me where I went wrong.
 
Ah okay, yeah that English World tweak is bogus according to Garlin, and I'm inclined to believe him, because I was skeptical when I first heard of it too. In that case, delete those location registry keys and just properly make sure your unattend has the right regions and such. If the bloatware bothers you that much, there's got to be better workarounds (that I won't try to figure out, because I hate W11, sorry).

The reality though, is W10 is the better operating system, especially if you're a gamer, which I think you are since you use timer tools and other similar tweaks. The DPC latency on W11 is much higher than W10, to a troubling degree. I did a huge round of benchmarks, using over a dozen different tools last week on the latest ISO releases for W10 and W11, and the winner is W10 yet again.

It's also much easier to tweak W10, and it's done being bloated out by Microsoft, since they are now focusing all their attention on W11 and W12. W11 has diverged quite a bit now from W10, it's going to get more fat with each new update, and the DPC latency isn't improving due to all the bugs. I planned on posting benchmarks to the Gaming Lounge thread when I'm done cleaning up the text, but then I got excited by your sidebar project here, plus I kind of needed a little break to work on something new, but I'll get those results up maybe tonight or tommorow.

Honestly, I hated every moment I had to be in W11 while working on this project. I can literally feel the latency spikes, everything is slow to respond, and now W11 is intentionally throttling browsers like Chrome, so people need a new tweak to fix that...I found several Microsoft bugs while working on this, including one that brought the entire OS to its knees and I could only fix it with a reinstall. W11 is the same to me as Vista.
 
Last edited:
19) In addition to the other power plan issues, there was never a tweak anywhere in this image that actually switched the power plan from Balanced to Ultimate, so even if the previous tweaks were correct, they weren't being actively used, because Windows defaults to the Balanced power plan on both W10 and W11 unless the user changes it. I fixed this by adding 2 keys that set the active plan to High performance
The tweak for Ultimate Power Plan was applied separately together with BypassNRO before using the main preset...but since you fixed it for high performance and see that they are the same I'll keep it that way and use only BypassNRO tweak (to apply for windows setup)
 
Last edited:
Back
Top