Differentiating Visual Studio instances
When you have multiple instances of Visual Studio open at the same time, it can be tricky to tell them apart. Especially if you’re working on different branches of the same solution, which makes them look almost identical. What if each instance could have a unique color so you could instantly tell them apart? Would you use it?
The Peacock extension for Visual Studio Code does exactly that, and with 1.7 million installs it appears to be working great for lots of developers. A feature request on the Visual Studio Developer Community is gaining steam asking for the same feature be added to Visual Studio, so please vote and comment if you’re interested.
An experiment
Due to the UI differences in Visual Studio Code, it may not be desirable to port Peacock as is to Visual Studio. Instead, we may need a different UI paradigm and colorization scheme. Let’s experiment and keep iterating to find the best solution together.
We’re starting out with an extension to kick off the experiment. We call it Solution Colors and the first iteration puts a 3-pixel thick colored line above the status bar (see image above).
Getting started
After installing the extension, you are ready to start colorizing Visual Studio. The way it works is that you manually assign a color to a solution, by right-clicking the top tree node in Solution Explorer.
Every time you open that solution, the extension applies the color automatically. Select None from the list to remove it again. It works for both solutions and for folder-based workspaces (CMake, etc.).
You can adjust the thickness of the line from the Tools -> Options dialog to suit your liking. Find it under Environment -> Fonts and Colors -> Solution Colors.
Both built in and custom themes are not affected by this colorization.
Next steps
If this feature is interesting to you, please install the Solution Colors extensions and take it for a ride. Make sure to share any ideas and bugs on the GitHub issue tracker, and feel free to send pull requests too. The feature request ticket is a great place to share your comments and thoughts, so make sure to vote and comment there as well.
Do you like the idea of community experiments like this one? Let us know in the comments below.
36 comments
Installed, these small bits make our lives easier! Thanks
Will there be any way to differentiate the same solution in different instances of Visual Studio? I often have to work on the same solution on different branches at the same time (I have the repo cloned twice).
Yes, each branch can have its own color. The only thing needed to make it work is that the solution/folder path is unique.
Interesting! This will be useful for me now and then.
I do like the idea of community experiments like this.
I use many solutions.
So it is a hassle to select the color every time.
It would be nice to have an “auto” color.
A feature that automatically determines the color from a hash value of the solution name.
Will you be able to remember all those colours then? An icon would be much more readable. See my comment below (once a moderator has shown up to approve it).
The latest version now has both an auto-mode and icons on the task bar
I just wish Windows would let us have them as separate buttons on the taskbar again. That’s been the biggest thing making it impossible to keep track of – that and not being able to put them in a standard ordering on the taskbar.
This is a major reason why I’m retaining Windows 10. Adding visual hints to VS[C] doesn’t really solve a problem that originates in the shell UI…
That’s easy (on Windows 10): use 7+ Taskbar Tweaker. https://tweaker.ramensoftware.com I’m using it since Windows 7 and will miss it on Windows 11, but other tweaks can be found on that website for newer versions, too. There are already many users who are dissatisfied with how unusable and unhelpful the taskbar has become and most problems have been resolved by the community, even though Microsoft is so self-convinced and always makes it hard to do that work.
It’s the small things in life 🙂
I was just lamenting this because VS only displays the solution name (no path except when hovering) in the Title bar and I’m embarrassed to admit I routinely lose a ton of time building the wrong variation of the project since I typically have 2 of them open in different paths. This little UI tweak is just enough for that to hopefully never happen again. Thanks!
#team1px
what flavor of VS does it work on? I have VS2022, VS2019 and VS2017 installed on my PC. When I try to install Solution Color extensions, it gives me an error – This extension is not installable on any currently installed products
It would be great to have an auto-color option where the name of the solution is used to generate a hash to pick a colour by default if no specific color has been chosen yet.
The latest version now has this feature
I often have multiple VS solutions open at once, but it’s not just telling them apart that’s the problem, opening files in the correct instance. I wrote VsReveal to help with this, might be useful to other people working with multiple solutions too.
Or, how about doing something crazy like, putting the full path in the title bar?
together with info about the branch maybe
This problem has already been solved much better. Unfortunately, the ever changing VS extensibility API has destroyed it already two times. Time to bring it to the core, now that Microsoft is finally aware of the problem.
https://github.com/ashmind/SolutionIcon
PS: Also requires improving the Windows 10 taskbar to not combine multiple icons of the same application. (A Windows 11 version isn’t available yet, but who needs Windows 11 if all it does is change but not improve.)
https://tweaker.ramensoftware.com/
Oh, looks like there’s a new effort for this method:
https://windhawk.net/mods/lm-vs-solution-icon
Setting window colors is not a good solution for this problem IMO. It’s completely manual, and the information it adds must be remembered.
I’ve been really liking this extension that customizes the solution name in the title bar to include Git/TFVC branch name and parent folder (and you can use the full path instead if you prefer): Customize Visual Studio Window Title. I would much prefer to see something like this built into VS.
Ahhh! Thank you for mentioning that extension. Yes, I like that more than the color that I have to memorize.
Don’t call it “Visual Studio” when you’re talking about Visual Studio Code. This made me waste 5 minutes with an article that is absolutely not interesting for me as a Visual Studio user.
Hm? This article is about Visual Studio, not Code. While I also do think that “VS” Code is the worst name that the product could be given, it doesn’t apply here.
Installed. Thanks for your help. Good example of small things that make our life easier:)
Thank you. Very useful! I would like two more features: 1. Color based on the default name hash; 2. The ability to put the project logo in the header as translucent.
The latest version now has the ability to auto-assign colors based on the solution path hash. It also adds the color to the task bar icons
What about VS for Mac support?
Mads, can you elaborate about where this setting is persisted? Does it go inside the “.vs” folder along other solution-related caches, like the .suo? Or does it keep its own tracking of which solution is which color somewhere else?
Asking just to understand if clearing the “.vs” folder would eliminate this information or not, since that is something I actually do with some frequency.
It’s stored in the .vs folder in a file called color.txt
I’ve raised several feedback comments suggesting that the _theme_ should be optionally coupled to the solution rather than the user. I would like more distinction than just a small bar at the bottom of the screen. VS Code is far more flexible in this regard – I can use a red-theme for a release branch to warn me I’m working on something critical in which case the entire window background is red rather than some tiny piece of the UI.
There is also this extension: https://marketplace.visualstudio.com/items?itemName=Wumpf.SolutionColor which has been around for a while.
It colours the main title bar which I think has a bit more visual impact than a 3-pixel thick line (of course, if you are in full-screen mode, colouring the title bar doesn’t help)
(note: the Wumpf.SolutionColor extension hasn’t been entirely updated for VS2022, (works fine on older versions). There are some workarounds on the author’s github to make it work in VS2022)
For those unfortunate people like me who have to use TFS, could you also add a setting to make it so that all Visual Studio instances share the same view of TFS Included and Excluded changes, one of the problems of having multiple Visual Studios open is that if you accidentally submit from the wrong instance of Visual Studio you can find yourself checking in files that weren’t meant to be part of the final changelist.
Also it would be really good if there was a feature to automatically create a GIT Branch of the current state of a set of folders, so that you could iterate on to create a new feature and then once you were finished commit those changes back into the TFS view of the source.
As currently you can only check against the previous checked in state of the files, when often you might want to do a diff against the last time you reached a milestone, but all you can do as add one more shelf set. It would be so much easier to do all that using GIT and then merging the final changes back into TFS.
Nice differentiator. Perhaps consideration of having multiple desktops with allocated name for each desktop might be useful also – while running a few instances concurrently. If only the desktop name appeared in the VS status bar or the VS heading. Colours are useful, however over time does allow for some muddling, yet with named desktops the clarity might have longer lasting gains. These assists are truly appreciated, Thanks.
Just fix your awful windows 11 taskbar by adding the possibility to “ungrouping similar apps” + “show window title” and that’s done…
Windows 11 is the most unusable version of windows I have ever seen (and I used to love Window 8, so no excuse)
Looks pretty spiffy! It would be nice if the solution colors could appear next to the solution name in the Open dialog, but I suspect that might be a whole different set of settings and parsing from what was required for what’s currently in the extension. For the places it does show up, this is a well done and useful addition to VS!
Hey, I solved this problem years ago by allowing for putting a file specifying a VS theme name into the solution folder, so it can go into source control.
This also enables branch-specific visual distinction, if people want that, too 🙂
Built this extension for that purpose: AutoThemeSwitcher
Although particularly idea of colorization of solutions does not make any sense to me, I’m excited about the whole idea of community experiments. Mad, please, keep going and keep us updated!