Custom Background Colors, Theme Editing, msstyles editing advice?

  1. Posts : 36
    Windows 10 Home 64 bit

    Custom Background Colors, Theme Editing, msstyles editing advice?

    Hi folks,

    So I have been playing with making my own custom themes, as many here have done (and shared here). However, I wanted to do a little more, and in the process I solved some of my own confusions but brought up new ones. So I wanted to post my process here so hopefully some of you can help me improve what I am doing... I have jumped into the world of editing the .theme files and (potentially) the .msstyles file, but would love some help decoding some of it. I can find almost no guides on the latter, and the guides on the former, such as this one from Microsoft Dev Center are clearly not written for Windows 10 because not all of the attributes are the same, and even then not everything is explained completely... A lot of this I could probably figure out if I spent many hours tweaking one thing at a time to see the result but hopefully others already have the knowledge...

    (For the purposes of this post I will use the moniker "NEW_THEME" to indicate the name of the theme I have been working on).

    My primary goal was a simple slide show background, and I used the method explained in these forums, about saving a theme for sharing. Easy enough. However, I am using photos of all different sizes, so they are made to fit the screen but the background color is visible. I was not happy with any of the available background colors. So I navigated to the Theme folder (%User%\AppData\Local\Microsoft\Windows\Themes) and that is where you will find folder for all of your installed themes. So inside that folder I went to the folder NEW_THEME and inside there was another folder holding all of the slide show images, called "DesktopBackground," as well as the file NEW_THEME.theme. Opening the .theme file, I was able to navigate to the "Control Panel\Colors" and change the background color, and it worked great.

    Of course, I had no way to compile this new .theme file into the .themepack file that is used to install the theme on various machines. So I wrote a small batch file which could be run from any thumb drive and would install the theme as well as copying the modified .theme file to the proper location, and it worked perfectly. That batch file (which was in the same folder as the .themepack file and the altered .theme file) was as follows:
    start NEW_THEME.deskthemepack
    TIMEOUT /T 4
    xcopy "%~dp0NEW_THEME.theme" %localAppData%\Microsoft\Windows\Themes\NEW_THEME\ /y
    start "" "%localAppData%\Microsoft\Windows\Themes\NEW_THEME\NEW_THEME.theme"
    That did exactly what I wanted - it installed the new theme, copied the altered .theme file, and then by running the altered file it refreshed the screen. The timeout command is to accommodate slower machines, to ensure that the file is actually created before the altered one is moved to replace it. Of course, it should have worked without copying the file--simplying running the altered file should work. However, if the user at any point switches to a different theme and then tries to switch back (in the Settings->Personalization->Theme->Theme Settings window) it would recall the original, unaltered file and no have the background color I want.

    However, then I realized that I really want the Taskbar and Start to use the same color as the background, and I want transparency enabled. Looking through the .theme file, it seems like these are enabled, but it seems that the .theme file is overridden by the switches in the Settings->Personalization->Colors window. If they are switched off there then it does not matter what data is in the .theme file, it seems. So I modified my batch command to include a small registry tweak to enable them both, resulting in this:
    start NEW_THEME.deskthemepack
    TIMEOUT /T 4
    xcopy "%~dp0NEW_THEME.theme" %localAppData%\Microsoft\Windows\Themes\NEW_THEME\ /y
    start "" "%localAppData%\Microsoft\Windows\Themes\NEW_THEME\NEW_THEME.theme"

    TIMEOUT /T 1
    Reg Add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v EnableTransparency /t REG_DWORD /d 1 /f
    Reg Add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" /v ColorPrevalence /t REG_DWORD /d 1 /f

    taskkill /f /im explorer.exe
    start explorer.exe
    Which works well and does what I want. So I should be satisfied, right?

    Well, I am, for the most part. But I learned one interesting thing, and simultaneously have been brimming with ideas and questions.

    The cool thing I learned: The whole point of this was to modify the background to a color not available in the Windows 10 swatches. Well, I found that whatever color you set for that stays in the background, and can be available for the next theme you create.

    That's confusing. Let me explain. I created my theme, saved it for sharing and enabled it, modified my .theme file and replaced the original in my computer. So far, makes sense. Then, without manually clicking or adjusting the color settings, I created the theme again and saved it with a different name. Now, here is the cool part--the new theme file I created already had the modified color settings in its .theme file. That's right, I could just run the .themepack file on any computer and it would give me the modified, custom color as the background. No need to run that original batch file.

    So, that's pretty cool. It means you can go in and make edits and then if you save everything correctly you can share those customizations without forcing the user to copy an altered file, without running a batch, everything is on the up and up, nothing hacky at all. And if the background color stays the same during this process, I wondered what else would stay the same (and hence no need for editing the .theme file). Such as, if I created a custom theme that used a different .msstyle file, such as the aerolite.msstyle file that is available pre-installed in Windows 10 but somewhat hidden), would that also be saved?

    I am going to post the altered .theme file now, because some of my questions reference it. The lines that I edited I have made bold, just o make them stick out, obviously the original file has no formatting as such.
    ; Copyright Microsoft Corp.

    ; Windows 7

    ; Computer

    ; UsersFiles

    ; Network

    ; Recycle Bin

    [Control Panel\Cursors]
    DefaultValue=Windows Aero

    [Control Panel\Desktop]
    Wallpaper=%USERPROFILE%\AppData\Local\Microsoft\Windows\Themes\NEW_THEME\DesktopBackground\001 (1).jpg





    [email protected],-800

    [Control Panel\Colors]
    Scrollbar=200 200 200
    Background=109 9 19
    ActiveTitle=153 180 209
    InactiveTitle=191 205 219
    Menu=240 240 240
    Window=255 255 255
    WindowFrame=100 100 100
    MenuText=0 0 0
    WindowText=0 0 0
    TitleText=0 0 0
    ActiveBorder=180 180 180
    InactiveBorder=244 247 252
    AppWorkspace=171 171 171
    Hilight=51 153 255
    HilightText=255 255 255
    ButtonFace=240 240 240
    ButtonShadow=160 160 160
    GrayText=109 109 109
    ButtonText=0 0 0
    InactiveTitleText=0 0 0
    ButtonHilight=255 255 255
    ButtonDkShadow=105 105 105
    ButtonLight=227 227 227
    InfoText=0 0 0
    InfoWindow=255 255 225
    ButtonAlternateFace=0 0 0
    HotTrackingColor=0 102 204
    GradientActiveTitle=185 209 234
    GradientInactiveTitle=215 228 242
    MenuHilight=51 153 255
    MenuBar=240 240 240


    And that comes to my questions. These are not in any specific order, but:

    1) Can anyone confirm what takes precedence, from the values within the .theme file, the values in the .msstyle file that the .theme file references, and any hard switches (like Transparency) that the user adjusts?
    2) Can someone explain, in the Slideshow section of the .theme file, the "ImagesRootPIDL" variable and how it works? In the guide I link to above they reference a "ImagesRootPath" which makes sense, and you point it directly where you want. However that is not what happens in these custom made themes, as you can see, there is instead the ImagesRootPIDL and a crazy and unintelligible string of characters after it. This unintelligible string is important though, because if it is not there the theme will not find your images. Is it possible to use the ImagesRootPath command instead? It seems like it would make it easier when working within a theme file, especialy if you wanted to tweak anything. It would also let you call things like a users Pictures folder, or any of the other default folder that have unalterable paths.
    3) Is there somewhere in that .theme file that I can force the transparency or the taskbar/start menu color that I am missing? There could also be commands that aren't included in this file, never mind commands with different variables, but since I cannot find a comprehensive guide I am not sure.
    4) Following up on #3, I suppose, can anyone give a breakdown of the functions for all of the variables in the "VisualStyles" section as well as the "ControlPanel/Colors" and "MasterThemeSelector" sections? I feel like there are a lot of little tweaks possible here but I don't know what each variable actually changes and, like I said, testing them one at a time would take a while...
    5) Can anyone offer some help on navigating the craziness that is a .msstyle file? I am using the small, free msstyle editing program found here, and to be honest I have no idea what is going on in there. Which variable affect thing like windows title bars (active or inactive), and shadow, border depth, transparency, taskbar transparency, etc.?
    6) Assuming that there are no changes we can make to the .theme file that will force transparency and changing the taskbar color, does anyone know a batch command that can change it without tweaking the registry? It is a harmless tweak, obviously, but the less direct engaging with the registry the better, in my opinion, but I could not find any other way to make it happen except for what I listed above.

    I think that's it... Basically I want to see how many other modifications I can sneak into the .theme file itself, which I can then hopefully compile into a .themepack using the method above and not requiring runing a batch command. Then, on top of that, I want to see what additional functionality I can get out of playing in the .msstyle file, because if there is a lot at offer there I can make a new .msstyle file, place it in the same directory as the pre-existing ones, and reference it in my new .theme. Of course, that would require the batch command, in order to copy the file onto the users computer, but that is simple enough...

    Thanks for any and all thoughts and opinions!
      My Computer

  2. Posts : 120
    Windows 10 (duh)

    TLDR: don't mess with msstyles.

    As much as it's rewarding in having a true custom theme, it's not worth it if some update or something else broke things and you end up repairing/reinstalling Windows 10.
      My Computer

  3. Posts : 36
    Windows 10 Home 64 bit
    Thread Starter

    Thanks for the reply; I know my post is long, but if you read it you'll see that none of the methods I have used yet mess with msstyles, as I had the sneaking suspicion it was better to work around other ways. And the other ways work quite well, at that! I was just curious if there was anything in there that might be able to be tweaked...

    Windows 10 comes with both aero.msstyles and aerolite.msstyles available, though there is nothing anywhere that utilizes the latter. You could enable it and then create a regular themepack, and it should be included in the themepack as the referenced style, so no further hacking would be needed, which might be useful for people who want to build themes around aerolite instead of aero. That way you wouldn't me messing with the contents of the files at all, just referencing a different one...

    (Edit): PS - You'll notice the bulk of my questions are aimed at getting help to understand how every different variable included in a .theme file affects appearance...
    Last edited by Lekden; 24 Sep 2015 at 03:56. Reason: PS
      My Computer

  4. Posts : 120
    Windows 10 (duh)

    You could take a look at this: Solved Windows 10 Themes created by Ten Forums members - Page 50 - Windows 10 Forums
    It's just built-in theme engine, no extra tools or registry changes involved, and the included Readme contains some info about issues encountered. If you manually unpack the .deskthemepack (use something like 7-zip) you can see the raw .theme and all the settings nicely grouped by me. That's pretty much everything you can use in a theme, but note that many are not used at all by Windows 10.

    Fun fact: you can now disable the theme service, and since classic/basic style are long gone, Windows 10 reverts to aerolite mode. Changing themes still works, but only just a few settings are applied (like the accent color). High contrast themes will not work at all.
      My Computer

  5. TCB
    Posts : 1
    Windows 10 Pro 64bit

    Hi, I have downloaded a theme pack for windows 10 that allows for the text in the title bar to be white. I like the theme pack but I want to be able to edit it and change a color. For example I have changed the title bar color but I would like to make that color universal with other programs. I have included a screenshot of a program I run. The internal windows will change colors depending on the theme chosen. You can see the difference in the colors of the internal windows vs. the windows title bar. I want the internal to match the title bar. But when I change the title bar colors thinking it will change the window colors in the program, it doesn't. But changing themes will change them. I guess I need to edit something in the theme pack files. Not sure what and how to change it to make this work. Any help would be greatly appreciated. Thanks
    Custom Background Colors, Theme Editing, msstyles editing advice?-capture.png
      My Computer


  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd
All times are GMT -5. The time now is 20:22.
Find Us

Windows 10 Forums