Been seeing more and more people struggling with this lately when working with Server 2019 or Windows 10 RDS.
The issue shows itself with the default settings for Server 2019, and is caused by the normal 1px border not beein there anymore. And the default color settings is that everything is white, and has shadows under the windows.
This is ok, when you have shadows enabled, as you then can see the difference on the windows, when working with multiple windows overlaying each others.
If you are not sure about what I am refering to, the issue looks like this:
To “fix” this, you have 2 options.
Option 1 – Enable shadows under windows – this is the default behaviour from windows. This requires you to do som registry digging based on the wanted combination of visual effects of your choosing, as this does not have a dedicated registry setting.
Option 2 – Enable coloring for the tilte bars etc. This is a quick way, if you just want it to be more easy to seperate the windows from each other for the users.
None of the options are actual “fixes” to the undelying issue with the missing good old border, but both are ways to solve the issue facing the user experience.
As always, use care when editing the registry – and do your testing before deploying to your users.
Option 1 – Enabling shadows under windows – and other wanted settings for visual effects using the registry
Lets just start with an overview of the available Visual Effect settings that you can enable/disable for your environment.
Available settings to enable/disable are as follows:
- Enable Peek
- Animations in the taskbar
- Animate windows when minimizing and maximizing
- Use drop shadows for icon labels on the desktop
- Smooth edges of screen fonts
- Save taskbar thumbnail previews
- Show translucent selection triangle
- Show window contents while dragging
- Show thumbnails instead of icons
- Smooth-scroll list boxes*
- Slide open combo boxes*
- Fade or slide menus into view*
- Show shadows under mouse pointer*
- Fade or slide tooltips into view*
- Fade out menu items after clicking*
- Show shadows under windows*
- Animate controls and elements inside window*
Many of these can be controlled directly by editing the correct items in the registry, as they have their own setting to be found there.
For those listed with the * in the end, these are a bit more tricky.
These are controlled by a binary registry value, that is generated based on what you enable/disable of the *marked items.
They will require you to convert som values from Hex to binary and vice-versa to get the wanted effect – more on that coming.
Lets start with the easy part of the registry changes.
Step 1 – Set visual effect option to Custom
First off you have to change the visual effect to custom – this can be done in the following location in the registry.
Create the key if missing.
Key Path = HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects Name = VisualFXSetting Type = REG_DWORD Value = 3 Possible Values: 0 = Let Windows choose what's best for my computer 1 = Adjust for best apperance 2 = Adjust for best performance 3 = Custom
Step 2 – Make your desired selection for items to disable/enable
Use the following list to help you decide what items you want to enable / disable.
These are all the items you can edit directly for the wanted effect.
// The various Visual settings available for direct change in registry // // Enable Peek - You need both settings. Key Path = HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced Name = DisablePreviewDesktop Type = REG_DWORD Value = 0 Change value to 1 to disable AND Key Path = HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\DWM Name = EnableAeroPeek Type = REG_DWORD Value = 1 Change value to 0 to disable ----------------------------- // Animations in the taskbar Key Path = HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced Name = TaskbarAnimations Type = REG_DWORD Value = 1 Change value to 0 to disable ----------------------------- // Animate windows when minimizing and maximizing Key Path = HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics Name = MinAnimate Type = REG_SZ (String) Value = 1 Change value to 0 to disable ----------------------------- // Use drop shadows for icon labels on the desktop Key Path = HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced Name = ListviewShadow Type = REG_DWORD Value = 1 Change value to 0 to disable ----------------------------- // Smooth edges of screen fonts Key Path = HKEY_CURRENT_USER\Control Panel\Desktop Name = FontSmoothing Type = REG_SZ (String) Value = 2 Change value to 0 to disable ----------------------------- // Save taskbar thumbnail previews Key Path = HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM Name = AlwaysHibernateThumbnails Type = REG_DWORD Value = 1 Change value to 0 to disable ----------------------------- // Show translucent selection rectangle Key Path = HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced Name = ListviewAlphaSelect Type = REG_DWORD Value = 1 Change value to 0 to disable ----------------------------- // Show window contents while dragging Key Path = HKEY_CURRENT_USER\Control Panel\Desktop Name = DragFullWindows Type = REG_DWORD Value = 1 Change value to 0 to disable ----------------------------- // Show thumbnails instead of icons Only for Current user (Setting this with Group Policy will override this): Key Path = HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced Name = IconsOnly Type = REG_DWORD Value = 1 Change value to 0 to disable
Step 3 – The “UserPreferencesMask” value – Create your combination and convert to Hex.
As stated in the beginning, some settings are controlled by a binary registry value, that is generated based on the combination of your choices in the visual effect settings.
The settings that generate this value are the following:
- Smooth-scroll list boxes
- Slide open combo boxes
- Fade or slide menus into view
- Show shadows under mouse pointer
- Fade or slide ToolTips into view
- Fade out menu items after clicking
- Show shadows under windows
- Animate controls and elements inside window
These settings, when combined, will give you the desired value that you need to set for the UserPreferencesMask value.
There are 4(5) binary sets in this value that are of interest to us to make our change.
Here is an example of this value when all options are on, with markings around the ones we are interested in:
The value can be found here in the registry:
Key Path = HKEY_CURRENT_USER\Control Panel\Desktop Name = UserPreferencesMask Type = REG_BINARY
To help you generate this value, here is some guidelines to help you out.
From the image in the example above, with all settings on, we see that we are interested in the following hex values:
9E 3C 07 80 12
First, we ned to convert these hex values, to binary sets to make it more easy to understand the buildup, and how to edit this.
A Hex to Binary (and vice-versa) can be found here: https://www.rapidtables.com/convert/number/hex-to-binary.html
Remember, one binary set consist of 8 numbers – so be sure to add the needed amount of 0 in front of the converted value to get 8 numbers.
I.E, converting hex 97 to binary will give you 111, this will be 00000111 after adding 5x 0 in front of the result.
Converting the hex value above to binary sets will give you the following to work with:
10011110 00111100 00000111 10000000 00010010 – This is the value when settings are on = Hex: 9E,3C,07,80,12
To get the hang of what you need to change, lets swap out the 1’s in the sets with letters and reference these in a list of options.:
1001ABC0 00D1EF00 00000G11 10000000 000100H0 = Letters to represent the 0/1 value for the editable options – see list for reference
The letters now in these sets will show you where what setting is located in the set, and what you need to change from 1 to 0 or opposite.
Enabling a setting means changing the number in the letters location from 0 to 1, disabling means from 1 to 0.
After you have the wanted binary sets for your settings, convert these from binary to hex, one set at a time, to get your needed hex values.
The reference list for the settings is this:
(A) Smooth-scroll list boxes
(B) Slide open combo boxes
(C) Fade or slide menus into view
(D) Show shadows under mouse pointer
(E) Fade or slide ToolTips into view
(F) Fade out menu items after clicking
(G) Show shadows under windows
(H) Animate controls and elements inside window
For instance, disabling all the settings in the list above will result in the following binary sets:
Top is all on, bottom is all off.
10011110 00111100 00000111 10000000 00010010 = This is the value when settings are on
10010000 00010000 00000011 10000000 00010000 = This is the value when settings are off
Converting the binary sets to Hex will give you the following:
90 10 03 80 10
You now have the hex value needed for your wanted visual effect settings.
PS: If you are using Citrix – you also need the following to presist the UserPreferencesMask setting, as Citrix overwrites this by default.
Key Path = HHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix Name = EnableVisualEffect Type = REG_DWORD Value = 1
Option 2 – Enabling coloring for the Title bars etc.
This is normaly done here, by the users themselves, by right clicking the desktop, and choosing customize->Colors>select the bottom checkboxes.
But, in a managed environment, we want to control this centrally and automatic. For this case, you can use the following registry keys.
You need to put both values for it to take effect.
Use your preferred tool to deploy these to your users, in my case Citrix WEM is used, but Group Policy with/without GPP or any ather user environment tool should work.
Enable the Border and title bar coloring: Key path: HKCU\Software\Microsoft\Windows\DWM Value name: ColorPrevalence Value: 1 Type: DWORD Set the wanted Title And Border Color (Use the value of the color you want): Key path: HKCU\Software\Microsoft\Windows\DWM Value name: AccentColor Value: d3d3d3 Type: DWORD
Senior System Consultant at SERIT, localized in Kristiansund, Norway.
Focused on EUC, security, mobility, virtualization, management and a modern workplace.
Highly specialized around RDS/Citrix/EUC/Mobility, and am also a Citrix Certified Expert.