Modify Visual Studio 2012 Dark/Light Shell Themes

2 minute read,

UPDATE: 9/7/2012 - An “official” theme editor for VS2012 is now available in the VS extension gallery available here:
http://visualstudiogallery.msdn.microsoft.com/366ad100-0003-4c9a-81a8-337d4e7ace05
The remainder of this post is for archival purposes and is out-dated.

image

So, Visual Studio 2012 is nice but I ran into some serious usability issues. I like the dark theme, but it was too dark. Something between light and dark would have been perfect.

In my current setup:

  • I turn down my monitor’s contrast to the lowest setting.
  • I turn down my Nvidia driver contrast down to the lowest setting.

I spend a lot of time on the computer so it is important to  keep these settings where they are. I don’t want fiddle with these nobs back and forth just to use Visual Studio.

After some research and play, I found where Visual Studio 2012 was storing and reading theme / color data. Specifically here:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\Themes

Notice, there’s a Data value in each sub-key category. This Data value is binary-byte packed with color values and color names. I wrote a small tool that that reads Data for each category and allows you to inject your own colors.

image

Visual Studio 2012 Theme Editor

Play it safe: Please backup your registry before using this. You can backup your current theme by using the green “Backup Theme to File” button.

Visual Studio 2012 Themes

Visual Studio 2012 Icon Patcher

FAQ

  • Can I change the ALL CAPS menu?
    Yes,
       1. Close Visual Studio
       2. Launch regedit and navigate to
    HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General 
       3. Create a DWORD value named SuppressUppercaseConversion with value 1.
    That should suppress the upper casing on the FILE, EDIT, VIEW menu area in Visual Studio 2012.
  • Can I change the Visual Studio 2012 Icons?
    Yes, See the link above: http://vsip.codeplex.com/
  • I changed a color, it doesn’t work. What’s wrong?
    Keep trying. There’s hundreds of colors VS uses so it might take some time to find the color you’re trying to modify. Most of Visual Studio’s Shell colors are in the Environment category - take a look in there. Also, keep in mind, Visual Studio uses many colors, and sometimes colors get “brushed over” others.
  • How do I reset my theme?
    Click on the Reset Theme link in the main program to go back to stock colors.
  • There’s a bug in your program. Can you fix it? Probably. I didn’t spend much time creating a bulletproof UI. I just needed something quick to hack these color values. Since it’s open-source, feel free to fork, download, fix, and push me a patch.
      For me, some important colors that I needed to adjust:

  • Environment > CommandBarMenuBorder
  • Environment > CommandBarMenuBackgroundGradient(Start/End)
  • Environment > CommandBarMenuItemMouseOver

Hope that helps, happy coding! 
Brian Chavez

Comments

Ed

Firstly, Brian thanks I think with a bit of trial an error I can make life a little more bearable.

For others like myself who are using the web express version then to get Brian’s tool to work download the source code and change the RegPath variable in the ThemeReader class to Software\Microsoft\VWDExpress\11.0_Config\Themes i.e. replace VisualStudio with VWDExpress. Recompile and you should be able to play with you themes.

Joshua Cassell

Thanks for looking into this. I wasn’t using 2012 because of the horrible lack of any ability to change the color. I mean Microsoft is completely out of their gourd lately. I’ve got a few stories from working there for 12 years. Some of them amazing, but the ones since Ballmer took over mostly would probably just piss off most of of their customers if they knew the facts and actually make me a bit ill. Questionable legality even. Not working there anymore since June this year. The color thing is one of their legal mistakes lol

Ken

Brian, thanks for sharing your ‘solution’ to this horrific mistake of a GUI. From what I can tell, your program only modifies the two themes provided by MS. Is that correct? That’s definitely a start but what about the icons, are they still in black and white? Is there a way to get color icons?

Brian Chavez

Hi,

Yes, it only modifies Light and Dark themes.

I did see some colors for Icon background and Glyphs. You might want to try fiddling with those settings in the Environment category.

-Brian Chavez

cophnia61

Hi Brian, great work! My eyes thank you :)

English is not my first language, so I hope you understand what I say XD

There is a plugin for Visual Studio 2010, called “Visual Studio Color Theme Editor”, I’m sure you know it.

I notice that with this editor you can export the setting in xml, and the color names are exactly the same as those of Visual Studio 2012.

The only difference is that in the exported xml (VS2010) they are like:

TOOLWINDOW_BUTTON_INACTIVE_BORDER

where in the reg key “11.0_Config\Themes” (VS2012) they are like:

ToolwindowButtonInactiveBorder

So, with C# and regular expressions it is not difficult to export a vs2010 theme to a vs2012 theme, I’m doing it right now but I’m not so good in programming, so I thinked you or someone else can write a theme conversion tool, or at least to say it so the other people will know it is possible to do :)

Excuse for my english, I hope you understand what I mean!

Brian Chavez

Hi cophnia61,

I see what you’re saying, but simply importing a VS2010 theme isn’t that easy.

There are many more brush strokes in VS2012. So, ToolwindowButtonInteractiveBorder might be listed, but it also has many additional accompanying “partner” brush strokes that are new to VS2012.

The end result may look like a theme that is half VS2010 and half VS2012.

For example, ToolWindowContentTabGradientBegin and ToolWindowContentTabGradientEnd would be missing in an exported VS2010 theme.

Brian

So I changed the color for Environment -> Highlight thinking this would change the “Highlight” color in the solution explorer…nope. Doesn’t work. Is there a different variable for this? I just want to change the background color of the solution explorer to white.

tu.x

Great tools!
Anyone can let me know the key of select menu item and its background? I cannot distinguish between menu item is selected or not :(
ex: When I select to File menu, I don’t know what I’m selecting is ‘New’ or ‘Open’ or …

Eugen

Nice job, Brian, thank you !

A check box “Modify all entries colored by the this value” - could be very usefull, I think… :)

Hans Pfaff

Hello Cihan,

I installed your VS2010 theme reg file. It worked immediately. THANKS!!!! you saved my eyes (and my mood).
I like this theme. It is years ahead of the standard VS2012 themes.

Anar

Cihan, great theme! Thank you!

Also i quote: “A check box “Modify all entries colored by the this value” - could be very usefull”

Max

What key to use to change main menu (File, Edit, View, etc.) background color? I’ve tried what I knew, but I couldn’t any that would work.

Thanks.

Guest

Oh why tf you can’t put these files on your server but giving links where is register?
There is no time for registering
I opened that page with hope I download it from here.

Leave a comment

Your email address will not be published. Required fields are marked *

Loading...