ChatGPT解决这个技术问题 Extra ChatGPT

How to edit default dark theme for Visual Studio Code?

I'm using Windows 7 64-bit.

Is there a way to edit default dark theme in the Visual Studio Code? In %USERPROFILE%\.vscode folder there are only themes from the extensions, while in installation path (I used default, C:\Program Files (x86)\Microsoft VS Code) there are files of some standard themes in \resources\app\extensions, like Kimbie Dark, Solarized Dark/Light or variants of Monokai, but there is no default dark theme.

But if after all there is a possibility to edit it, then which blocks of code are responsible for colour of member of object, member of pointer and name of class and structure in the C++ language?

For anyone coming here: you don't need to hunt for and modify or create any theme files. Everything can be modified using workbench.colorCustomizations and editor.tokenColorCustomizations in user settings: code.visualstudio.com/docs/getstarted/….
One could also hold out for a stale, but being worked on feature that would allow us to add custom global CSS, like Atoms Edit -> Stylesheet... Last change to the issue was March github.com/Microsoft/vscode/issues/459 . It's disappointing that it's closed for comments. The current API does not allow for an extension to modify global CSS... so we'll have to wait, or manually paste CSS into the Developer Tools like caveman.

n
nik7

In VS code 'User Settings', you can edit visible colours using the following tags (this is a sample and there are much more tags):

"workbench.colorCustomizations": {
    "list.inactiveSelectionBackground": "#C5DEF0",
    "sideBar.background": "#F8F6F6",
    "sideBar.foreground": "#000000",
    "editor.background": "#FFFFFF",
    "editor.foreground": "#000000",
    "sideBarSectionHeader.background": "#CAC9C9",
    "sideBarSectionHeader.foreground": "#000000",
    "activityBar.border": "#FFFFFF",
    "statusBar.background": "#102F97",
    "scrollbarSlider.activeBackground": "#77D4CB",
    "scrollbarSlider.hoverBackground": "#8CE6DA",
    "badge.background": "#81CA91"
}

If you want to edit some C++ color tokens, use the following tag:

"editor.tokenColorCustomizations": {
    "numbers": "#2247EB",
    "comments": "#6D929C",
    "functions": "#0D7C28"
}

But if it's beyond tokenColorCustomizations, what do I do?
Where one can find a list of all available options in "editor.tokenColorCustomizations"?
My edit was rejected for some reason, but to make this answer specifically address the OP's desire to change a specific theme you can specify the theme and modify colors without altering the theme's files: "workbench.colorCustomizations": { "[Kimbie Dark]": { "activityBar.foreground":"#472c0c" } }
It's called "Workbench: Color Customizations" in the settings
p
paarandika

The file you are looking for is at,

Microsoft VS Code\resources\app\extensions\theme-defaults\themes

on Windows and search for filename dark_vs.json to locate it on any other system.

Update:

With new versions of VSCode you don't need to hunt for the settings file to customize the theme. Now you can customize your color theme with the workbench.colorCustomizations and editor.tokenColorCustomizations user settings. Documentation on the matter can be found here.


On Linux, it's in /usr/share/code/resources/app/extensions/theme-defaults/themes
On Arch Linux, it's (open-source release) in /usr/lib/code/extensions/theme-defaults/themes
By default, VS Code is installed in C:\users\{username}\AppData\Local\Programs\Microsoft VS Code
The update to this answer is a sound recommendation. I found that if you edit the theme files directly, they can/will be overwritten on an update to VS Code.
Maybe this is obvious to others, but on Mac, it's in /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/theme-defaults
i
iviouse

As far as the themes, VS Code is every bit as editable as Sublime. You can edit any of the default themes that come with VS code. You just have to know where to find the theme files.

Side note: I love the Monokai theme. However, all I wanted to change about it was the background. I don't like the dark grayish background. Instead, I think the contrast is WAY better with a solid black background. The code pops out much more.

Anyways, I hunted for the theme file and found it (in windows) at:

c:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\theme-monokai\themes\

In that folder I found the Monokai.tmTheme file and modified the first background key as follows:

<key>background</key>
<string>#000000</string>

There are a few 'background' key in the theme file, make sure you edit the correct one. The one I edited was at the very top. Line 12 I think.


Ubuntu install locations are like /usr/share/code/resources/app/extensions/theme-defaults/themes/dark_vs.json
And for mac, i found updating files in these paths worked: /Users/user-name/.vscode/extensions/azemoh.one-monokai-0.3.3/themes/OneMonokai-color-theme.json cmd+shift+p and type reload window cmd to immediately try out the change :)
Modifying the background of the theme can also be done by "workbench.colorCustomizations": { "[Theme You Want to Update]": { "editor.background": "#000000" } In user settings.
For 64-bit VS Code on Windows, the base path is C:\Program Files\Microsoft VS Code\resources\app\extensions\ , usually followed by theme-....
Modify the theme in the user settings with "workbench.colorCustomizations": { "editor.background": "#000" }, . Here are the all the different customizations you can make: code.visualstudio.com/api/references/theme-color
T
Tobiah Zarlez

You cannot "edit" a default theme, they are "locked in"

However, you can copy it into your own custom theme, with the exact modifications you'd like.

For more info, see these articles: https://code.visualstudio.com/Docs/customization/themes https://code.visualstudio.com/docs/extensions/install-extension#_your-extensions-folder

If all you want to change is the colors for C++ code, you should look at overwriting the c++ support colorizer. For info about that, go here: https://code.visualstudio.com/docs/customization/colorizer

EDIT: The dark theme is found here: https://github.com/Microsoft/vscode/tree/80f8000c10b4234c7b027dccfd627442623902d2/extensions/theme-colorful-defaults

EDIT2: To clarify:

download this file: https://github.com/Microsoft/vscode/blob/80f8000c10b4234c7b027dccfd627442623902d2/extensions/theme-colorful-defaults/themes/dark_plus.tmTheme

Modify however you like

Generate a theme using Yo Code https://code.visualstudio.com/docs/tools/yocode

Copy that theme into your extension folder. Or, if you feel like sharing, publish it on the VS Code marketplace.


And from where can i copy it? In articles that you sent me there is nothing about it. And I don't want to install anything for such a trivial thing like changing syntax highlighting a little - especially when I could just open the right file and modify a few lines of code, if the default theme wasn't locked. Besides, generating a new theme with Yeoman Generator needs .tmTheme file of another theme - there's no Visual Studio dark theme on the ColorSublime website and I don't have access to the "locked one" from VSC.
Maybe I could edit the c++.plist file from "C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\cpp"? But which blocks of code should I change? Or maybe there is a source file of the VSC default dark theme somewhere, which I could use to make my own custom theme?
You can't edit it, because I believe it's saved within the source code. You can however copy/paste it and change a couple of lines. It's located on the GitHub. I found it for you: github.com/Microsoft/vscode/tree/… Edited answer with link
It is possible to edit the c++.plist file that I mention, I checked that. And I understood from article about colorizers that it is a standard colorizer file for C++ language. Correct me if I'm wrong. But if you still talking about editing the default theme - yes, I know I can't do that, I understood sentence about it from your first answer. Thanks for the information about source code on GitHub and link - but I checked and themes from there aren't the default ones, but modified, more colorful variation of these. Unfortunately, not in a way I would want to.
But by accident I found out, that the "Xcodedefault" theme from extension gallery have the same syntax highlighting that the default dark one. Because it is in extension folder on my disk now, after installation, I can modify it, just like I wanted to modify default dark theme. So, my problem is solved.
J
Jay Wick

The simplest way is to edit the user settings and customise workbench.colorCustomizations

https://i.stack.imgur.com/8h9tt.png

If you want to make your theme

There is also the option modify the current theme which will copy the current theme settings and let you save it as a *.color-theme.json JSON5 file

https://i.stack.imgur.com/CAj2o.png


Fancy re-ordering your answer so the better and easier answer is first? =]
How do you then install this as a theme?
V
Varun Achar

As others have stated, you'll need to override the editor.tokenColorCustomizations or the workbench.colorCustomizations setting in the settings.json file. Here you can choose a base theme, like Abyss, and only override the things you want to change. You can either override very few things like the function, string colors etc. very easily.

E.g. for workbench.colorCustomizations

"workbench.colorCustomizations": {
    "[Default Dark+]": {
        "editor.background": "#130e293f",
    }
}

E.g. for editor.tokenColorCustomizations:

"editor.tokenColorCustomizations": {
    "[Abyss]": {
        "functions": "#FF0000",
        "strings": "#FF0000"
    }
}
// Don't do this, looks horrible.

However, deep customisations like change the colour of the var keyword will require you to provide the override values under the textMateRules key.

E.g. below:

"editor.tokenColorCustomizations": {
    "[Abyss]": {
        "textMateRules": [
            {
                "scope": "keyword.operator",
                "settings": {
                    "foreground": "#FFFFFF"
                }
            },
            {
                "scope": "keyword.var",
                "settings": {
                    "foreground": "#2871bb",
                    "fontStyle": "bold"
                }
            }
        ]
    }
}

You can also override globally across themes:

"editor.tokenColorCustomizations": {
    "textMateRules": [
        {
            "scope": [
                //following will be in italics (=Pacifico)
                "comment",
                "entity.name.type.class", //class names
                "keyword", //import, export, return…
                //"support.class.builtin.js", //String, Number, Boolean…, this, super
                "storage.modifier", //static keyword
                "storage.type.class.js", //class keyword
                "storage.type.function.js", // function keyword
                "storage.type.js", // Variable declarations
                "keyword.control.import.js", // Imports
                "keyword.control.from.js", // From-Keyword
                //"entity.name.type.js", // new … Expression
                "keyword.control.flow.js", // await
                "keyword.control.conditional.js", // if
                "keyword.control.loop.js", // for
                "keyword.operator.new.js", // new
            ],
            "settings": {
                "fontStyle": "italic"
            }
        }
    ]
}

More details here: https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide


Thank you for this great answer! It helped me a lot!
How to change the color of the property value for .css and .scss files? @Varun
n
needfulthing

Any color theme can be changed in this settings section on VS Code version 1.12 or higher:

 // Overrides colors from the currently selected color theme.
  "workbench.colorCustomizations": {}

See https://code.visualstudio.com/docs/getstarted/themes#_customize-a-color-theme

Available values to edit: https://code.visualstudio.com/docs/getstarted/theme-color-reference

EDIT: To change syntax colors, see here: https://code.visualstudio.com/docs/extensions/themes-snippets-colorizers#_syntax-highlighting-colors and here: https://www.sublimetext.com/docs/3/scope_naming.html


With that you can override the colors of the editor itself but no the colors of some keywords ( ex: strings color ).
A
Alissa H

tldr

You can get the colors for any theme (including the builtin ones) by switching to the theme then choosing Developer > Generate Color Theme From Current Settings from the command palette.

Details

Switch to the builtin theme you wish to modify by selecting Preferences: Color Theme from the command palette then choosing the theme. Get the colors for that theme by choosing Developer > Generate Color Theme From Current Settings from the command palette. Save the file with the suffix -color-theme.jsonc. The color-theme part will enable color picker widgets when editing the file and jsonc sets the filetype to JSON with comments. From the command palette choose Preferences: Open Settings (JSON) to open your settings.json file. Then add your desired changes to either the workbench.colorCustomizations or tokenColorCustomizations section. To restrict the settings to just this theme, use an associative arrays where the key is the theme name in brackets ([]) and the value is an associative array of settings. The theme name can be found in settings.json at workbench.colorTheme.

For example, the following customizes the theme listed as Dark+ (default dark) from the Color Theme list. It sets the editor background to near black and the syntax highlighting for comments to a dim gray.

// settings.json
"workbench.colorCustomizations": {
    "[Default Dark+]": {
        "editor.background": "#19191f"
    }
},
"editor.tokenColorCustomizations": {
    "[Default Dark+]": {
        "comments": "#5F6167"
    }
},


This is the right way to override some colors. Thanks
How do I make vscode simply use all the settings from the file I generate with "Generate Color Theme From Current Settings"?
e
elliotching

Solution for MAC OS

I'm not sure if this answer suits here, but I would like to share a solution for MAC users and it looks awkward if I start a new question and answer myself there.

look for your VSCode theme path something like below:

..your_install_location/Visual Studio Code.app/Contents/Resources/app/extensions/theme-name/themes/theme_file.json

open .json file and look for your targeted styles to change.
For my case, I want to change the whitespace render colour
and I've found it as
"editorWhitespace.foreground"
so under settings.json in Visual Studio Code,
I added the following lines (I do in Workspace Settings),

"workbench.colorCustomizations": {
    "editorWhitespace.foreground": "#93A1A130" // stand as #RRGGBBAA
}

Solutions guided from : https://code.visualstudio.com/docs/getstarted/themes#_customize-a-color-theme

Don't forget to ⌘ Command+S save settings to take effect.


L
Lee Goddard

The docs now have a whole section about this.

Basically, use npm to install yo, and run the command yo code and you'll get a little text-based wizard -- one of whose options will be to create and edit a copy of the default dark scheme.


C
Code Knox

I came here to find a way to edit the theme, but could not find it on my Mac. After a deep dive, finally I found the install place:

~/.vscode/extensions

All extensions in there!


N
NJENGAH

The latest version of VS code you can customize the colors to make it more personalized using the workbench as in the gif image below :

https://i.stack.imgur.com/GJlnD.gif

Go to Settings > Color Customization > Edit in settings.json

Add your color settings for using the editor.tokenColorCustomizations, for example to change the comments across all the default Dark++ theme, you can add this code :

"editor.tokenColorCustomizations":{
        "comments": "#fff000"
  }

S
Skilled Knight
ctrl+k+t if you want to switch from a dark theme to other theme

For customizing default dark theme, 

1 Click on the left bottom gear(Manage) on visual studio 
2 Select Settings
3 Type JSON in search settings, Click on Edit JSON Settings
4 Inside Workspace settings in the left columns, paste the following code.
5 Hover over each property and change the default # color value to the one             
  liked

        
"workbench.colorCustomizations": {
    "list.inactiveSelectionBackground": "#C5DEF0​",
    "sideBar.background": "#F8F6F6​",
    "sideBar.foreground": "#000000​",
    "editor.background": "#FFFFFF​",
    "editor.foreground": "#000000​",
    "sideBarSectionHeader.background": "#CAC9C9​",
    "sideBarSectionHeader.foreground": "#000000​",
    "activityBar.border": "#FFFFFF​",
    "statusBar.background": "#102F97​",
    "scrollbarSlider.activeBackground": "#77D4CB​",
    "scrollbarSlider.hoverBackground": "#8CE6DA​",
    "badge.background": "#81CA91​"}

The question asks how to customize the default dark theme, not how to switch to another existing one.
Thank you for pointing out, I was looking for changing the default theme the other day and in hurry, I thought the question was about changing the theme. Although there are plenty of other solutions suggested for this one, here is one way to edit the default theme, someone may have posted it already or may not, sharing in the community goes on, cheers
M
Mikhail

In Ubuntu with VS Code installed as a snap package, I found the theme at /snap/code/55/usr/share/code/resources/app/extensions/theme-defaults/themes/dark_plus.json


It would be helpful to specify the installation method you used: I guess it's the snap package, but when installing vscode using apt the path probably would be different.