I have yet another baffling encounter with a developer tool.
I wanted to override some VSCode Terminal settings with my own values. I decided to use the settings.json file for these 3 values:
"terminal.integrated.fontFamily": "Menlo, monospace",
"terminal.integrated.fontSize": 13,
"terminal.integrated.fontWeight": "bold"
However, VSCode in its "infinite wisdom" ignored these settings because it says:
This setting cannot be applied while a non-default profile is active. It will be applied when the default profile is active
What does that mean? I thought it meant that the shell window being executed inside the Terminal had to be the default shell but I checked and it is i.e. bash.
I am running VSCode 1.75.1 on a Red Hat Linux machine. (64 Bit x86_84 architecture RHEL 7.9)
2
Answers
I found out that if I went to the User Settings interface for VSCode and clicked on a link that said "Edit in settings.json" underneath the Terminal settings that I wanted to change that my problem went away. What I typed into the settings.json file for vscode then held sway and that confusing message that encountered disappeared.
You get that message because that’s just the way VS Code works. You’re editing your user-local settings JSON file, and you’re seeing certain settings in the JSON file greyed out, and the hover tooltip gives you that message, which is pretty instructive. It indicates that you have have selected a profile other than the default (the "default" profile is the one that uses your user local settings), and that it won’t use that setting value from your user-local settings JSON file while you have selected to use a profile other than the default one. Profiles are a feature added in version 1.75 of VS Code.
If you want your user local settings to get used, then just switch to the default profile. You can click the gear icon at the bottom left, and in the "Profiles" sub-menu, select "Default".
If you actually want to edit the currently selected non-default profile, then use the
Preferences: Open Current Profile Settings (JSON)
command in the command palette. Or open the profiles view (you can also use theView: Show Profiles
command) and click the settings.json file there.For your reference, the source code for this tooltip/hover message can be found here: https://github.com/microsoft/vscode/blob/release/1.75/src/vs/workbench/contrib/preferences/browser/preferencesRenderers.ts#L613.
Integrated terminal profiles are an entirely different thing.