Modify Visual Studio 2012 Dark/Light Shell Themes

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.

imageSo, 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

22 Comments Filed Under [ Tips & Tricks ]

Comments

# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Would it be possible to modify to work with Visual Studio Express 2012 for Web?
Left by agetronairb on 8/28/2012 5:50 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Hi,

I don't know if it works with Express edition. Try it and let me know! :)

-Brian Chavez
Left by Brian Chavez on 8/28/2012 10:48 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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.
Left by Ed on 8/29/2012 9:17 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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
Left by Joshua Cassell on 8/29/2012 8:10 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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?
Left by Ken on 8/30/2012 12:09 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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

Left by Brian Chavez on 8/30/2012 7:06 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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!
Left by cophnia61 on 8/31/2012 1:13 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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.
Left by Brian Chavez on 8/31/2012 1:39 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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.
Left by Brian on 8/31/2012 11:46 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Nevermind, I found it. It's under TreeView
Left by Brian on 8/31/2012 12:08 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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 ...
Left by tu.x on 8/31/2012 10:19 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar @tu.x

Try "Environment > CommandBarMenuItemMouseOver"
Left by Brian Chavez on 9/1/2012 1:45 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar @Brian: Thank you a lot!
Left by tu.x on 9/1/2012 9:51 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Nice job, Brian, thank you !

A check box "Modify all entries colored by the this value" - could be very usefull, I think... :)
Left by Eugen on 9/3/2012 9:33 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Here is my vs2010 like theme: http://www.cihanyakar.com/2010theme.zip

preview: http://i.imgur.com/NHDq3.png
Left by Cihan Yakar on 9/3/2012 10:37 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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.
Left by Hans Pfaff on 9/4/2012 5:13 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Thank you so much - my systolic decreased a full five points after installing Cihan's 2010 theme. Thank you Cihan!
Left by Jason on 9/4/2012 6:42 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar Cihan, great theme! Thank you!

Also i quote: "A check box "Modify all entries colored by the this value" - could be very usefull"
Left by Anar on 9/4/2012 12:41 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar An extension arrived
http://visualstudiogallery.msdn.microsoft.com/366ad100-0003-4c9a-81a8-337d4e7ace05
Left by Cihan Yakar on 9/11/2012 2:54 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar 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.
Left by Max on 9/17/2012 8:54 AM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar thank you.
Left by Mohsen on 12/18/2012 12:01 PM
# re: Modify Visual Studio 2012 Dark/Light Shell Themes
Gravatar thanks so much its work for black
Left by jemal on 7/21/2013 2:51 AM

Leave Your Comment

Title*
Name*
Email (never displayed)
 (will show your gravatar)
Url
Comment*

Please add 6 and 7 and type the answer here:

Preview Your Comment.