Changing Visual Studio’s Color Palette

Changing Visual Studio’s Color Palette

Rate This

[Update 2/9/2010] The RC version of the extension is now available (using the same link).  Users who installed this extension for Beta 2 and customized the theme for VS2010 Beta 2 : If you have installed VS2010 RC on the same computer, you may experience a "rainbow colored" VS.  To remedy this problem, please do one of the following:

1. Follow the “Uninstall” instructions at the end of this post and make sure you uninstall the extension and do the cleanup as detailed.  You will see Visual Studio starting up with random colors if you have kept the customization from Beta 2 OR customize again in Visual Studio 2010 RC using the Beta 2 version of this extension.

2. Install the RC/RTM version of the extension (now available at the link provided below).  After installing the RC/RTM version of the extension and starting Visual Studio, you themes should be automatically upgraded, and the random colors should go away.

Many users have requested different color themes for Visual Studio, or for the ability to change color themes to suit their preferences.  I have just released an extension for Visual Studio 2010 Beta 2 that allows users to customize colors used by our shell color service.

Preview of theme change

What colors are in the shell color service?

Colors used by the command and window management system can be customized using this extension.  These are colors that can be read programmatically by anyone via the IVsUIShell.GetVSSysColorEx method.  There are a number of specific tool windows (like the Toolbox and the Start Page) that use colors from this color service, so their colors can also be customized.  However, other tool windows (such as the Solution Explorer) use native Win32 controls, which are rendered based on the current Win32 theme and are not inherently color-aware inside of Visual Studio.  The text editor and tool windows based on it (such as the Output window) already use a different user-customizable color service (in Tools\Options\Environment\Fonts and Colors), and are not affected by this extension.

You’ll notice that the color service exposes hundreds of colors, accumulated over many releases of Visual Studio.  It can be difficult to determine where colors are used in Visual Studio (I’m working on making it easier to determine where colors are used for a future version of the extension), and it may seem daunting to consider editing the values of hundreds of colors.  However, there are a few ways to quickly create a new theme without spending hours—some helpful tips are included below.

You can learn more about the color service and other UI guidelines in the Visual Studio UX Guidelines document.

Walkthrough: Creating a new “Expression” gray theme

A frequent request for Visual Studio is an Expression-style theme, so let’s use that as a scenario for the walkthrough.

1.  Install the extension.  You can use the Extension Manager dialog inside Visual Studio (Tools\Extension Manager) and search for “visual studio color theme editor”, or you can download the VSIX file from here.

Extension Manager

2.  Create a new theme.  After you install the extension and launch Visual Studio, you should see a new top-level menu called Theme.  The two themes that ship with Visual Studio 2010 are available by default.  The Default theme is the Visual Studio 2010 blue theme, and the High Contrast theme is the theme used when a Windows high-contrast theme is selected.  The High Contrast theme is built entirely of Windows system theme colors, and as such has a limited palette.  There are also three custom themes created as examples—feel free to use them as starting points for your own themes.

Theme menu 

Choosing “Customize Colors…” brings up the dialog that will let you create a new theme.  The built-in themes are not editable, but you can create a new theme using the hyperlink in the information bar or the toolbar button on the far left.

New Theme screenshot

3.  Change colors to gray.  The ModifyHSL Modify Hue/Saturation/Lightness option lets you saturate/desaturate or lighten/darken each color, or rotate the hues of each color.  Hue, saturation, and lightness refer to aspects of the HSL color model; if you’re interested in more information about the HSL model and how it relates to RGB, Wikipedia has a great article.  Using this dialog, we can desaturate all of the colors to gray by moving the S slider to –100.

Modify Hue/Saturation/Lightness dialog

 

4.  Apply the theme.  After applying the Modify Hue/Saturation/Lightness dialog, choose OK on the Customize Colors dialog.  The new Gray theme will be applied and should now show up as checked in the Theme menu!

Gray

Editing individual colors

Bulk-editing operation will only get you so far, and you will soon want to change the value of a few individual colors.  You can easily do this using the color picker popup.  This popup lets you change the HSL or RGB values of the color directly, or modify the raw hexadecimal RGB value.  You can also specify that the color should come from one of the Windows system colors.  Pressing Enter or clicking Apply will save the value; pressing Escape or clicking away will cancel editing.

Editing a single color

Other useful features

  • Importing and exporting.  By default, your current set of custom themes is saved in the registry, and restored each time you start Visual Studio.  However, you can export colors into a VSTHEME file for backup purposes, or to share across multiple machines or with friends.  Be careful: importing a theme that you already have will overwrite the in-memory copy; look for improvements in this area in future versions.
  • Copy and paste.  By selecting one or more colors in the Customize Colors dialog, you can copy the color’s values.  In the clipboard, these values are stored as as hex RGB values in a comma-delimited string.  You can then paste the values into multiple other color “cells”.  I call them “cells” because copying and pasting behaves the same way that Excel behaves when copying and pasting cell values.  You can even copy a single color, select multiple cells, and paste that single value into all selected cells with one operation.
  • Undo and redo.  Any of the operations you take while the Customize Colors dialog is open can be undone and redone while the dialog is open.
  • Search filtering.  The Search box above the color list can currently be used to filter the color list by name, which can help you quickly identify all colors containing some keyword (for example, finding all of the “StartPage”-related colors).
  • Colorization. The Colorize Colorize option lets you apply a single hue to all of the selected colors.  Note that colorizing hues is not the same as the “rotate” feature of Modify Hue/Saturation/Lightness.  When rotating, colors with different hues will still have different hues after rotating their values, whereas colorizing changes every color’s hue to the same value.

    Colorize dialog

Uninstall

Hopefully everyone will happily use this extension forever, but some may decide to uninstall the extension.  If you had any non-Default theme applied before uninstalling, you will find that the colors are still used after restarting Visual Studio (even though the extension is no longer installed).

The reason this happens is that the extension writes registry data to a value that Visual Studio always reads upon startup—even if the extension is not installed.  This is a user-specific value (written to the HKCU Visual Studio registry hive), so every user can have their own theme.  However, extensions in general are machine-wide.  When uninstalling the extension, there isn’t a way to remove the custom theme data from each user’s registry hive, and so each user will have the last-applied theme still applied even after the extension is uninstalled.  To avoid this problem, apply the Default theme before uninstalling the extension—applying the Default theme deletes this registry value instead of writing a custom color theme to it, so it will leave Visual Studio in a theme-free state (at least for your user account).

If you need to clean up these registry keys after uninstalling, you can run the following from a command prompt (replace 10.0 with 10.0Exp if you were using the experimental hive):

reg delete HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\UseDebugColorScheme /f
reg delete HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\ThemeColorCache /f

Matt Matthew Johnson – Developer, Visual Studio Platform
Short Bio:  Matthew has been at Microsoft for three years and on the Visual Studio Platform for two years.  He works on WPF-related features of the Visual Studio window layout system.
Leave a Comment
  • Please add 7 and 6 and type the answer here:
  • Post
  • Matthew, sorry, I didn't answer your one Q: I'm using the RTM version of VS2010 as it was made available at my company (:

    Since the time (about 10 years ago) when I worked at a company where a chap installed the first beta of .net and the accompanying VS beta, and then found that when the next release came out, he had to re-install his entire machine, I've been rather careful *not* to use betas of MS products. I hear a chap at my work tried the first beta of VS2010 and didn't follow the uninstall instructions to the letter so has also had a few weeks of trying to track down system oddness -- adding to my wariness of MS beta products.

    Normally I'm more than happy to try a beta. A beta which breaks itself is just fine. A beta which breaks my system is not fine. VS doesn't have (in my books) a very good beta history, so I'll stick to proper releases (:

  • Unfortunately, it doesn't work on my computer. I have both  MS VS 2008 and 2010 Ultimate installed on my computer. After installation of this plugin I can see the theme menu but i can't after choosing specific scheme i see the same bright colours - red, green, etc. When I click to "Customize Colours" msg box with the next mesage appears - "Could not load type "Microsoft.visual studio.platformUI.dialogwindow" from assembly "bla-bla-bla, Culture=neutral, publickeytopic=XXXX".

  • Hi Matthew,

    I had this working on the RC version of VS 2010 and am really dependent on it, because the default is to dark for me. Now I have the final VS 2010 and want to install it again, however it says I already have it installed. But I do not see the 'Theme' menu. How can I get it back?

    Thanks,

    Henk

  • Kirill: Just to make sure, is the version of the Theme manager 1.2 (you can check under Tools\Extension Manager--if you select the extension, the version is on the right side of the dialog).  The behavior you describe sounds like what happens if you use the Beta 2 version of the extension on the RTM VS 2010.

    Henk: Are you possibly running VS as administrator?  If so, you have to enable loading of per-user extensions.  You can check in Tools\Options under the Environment\Extension Manager; also, if it's not enabled it should show up as a prompt to enable at the bottom of the Tools\Extension Manager dialog.  If that doesn't work, can you let me know if the Help\About dialog lists "Theme Manager" in the list of installed products?  It should if the package has loaded correctly.

  • The color scheme (Blend style) that is displayed in the screenshot, is not bundled with the extension.

    Is there a way you can export and give us that particular scheme?

  • I tried creating a blend like theme .. still not like yours .. http://digs.by/aDUJbP

  • Matthew Johnson: yes, i have 1.2 version installed.

  • You didn't mention in your walkthrough that you have to select all colors with ^A before the saturation/hue buttons are enabled.  I puzzled over this for a brief time.

    Also, it would be really nice if there were some way to group the palette options in some subjective way.  So "All Accent Colors", "All Tab Colors", etc. with groups either selected by you or by the user.  Maybe a filter on what colors are being selected with a keyword component in the filter.  So select only colors with "Accent" in their names or select only colors with "MySpecialTag" in their keywords.  It's great having the saturation/hue abilities but this would really help for a little finer control.  Right now it's kind of all or nothing (or carefully selecting all the colors you want by hand).

  • arghh no change color in combobox element and file menu this is standart color black((( i sad

    this is picture example

    http://img718.imageshack.us/img718/2130/capture1bn.png

  • i want mini picture(icons) for what change color

  • Nice extension but how can I reset the packaged themes to their default? I accidentally changed the custom Silver theme and I can't return it back to the original colors.

    Thanks in advance.

  • I am reasonably pleased with this extension, but I have already crashed VS 2010 twice while using it, once when changing its position in the menu bar, once when editing a color.  I have version 1.2 running on XP Pro.

    I was hoping that unpredictable VS crashes had been left behind with VS 2008.  Say what you like about VS6, it was as solid as a rock.

  • Hope someone would shed a light on this one.

    No doubt that this extension is one of the great extensions ever made.

    But I hope we would be given some advice on how to reset the packaged Themes included.

  • Can you change the background color of the solution explorer and properties windows?

  • What about changing gray theme from Express Edition ?

    Thanks for any clue

Page 4 of 10 (139 items) «23456»