some settings are now ignored #7651

Closed
opened 2026-01-31 01:09:33 +00:00 by claunia · 10 comments
Owner

Originally created by @dave-c-whitney on GitHub (Apr 24, 2020).

"initialCols": 200,
"initialRows": 65,
"initialPosition": "0,0",
"wordDelimiters" : " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502",

none of these are effective any more. Window opens with defaults for size and position, and double-click-to-select is stopping at / chars, despite it not being in the list.

Originally created by @dave-c-whitney on GitHub (Apr 24, 2020). "initialCols": 200, "initialRows": 65, "initialPosition": "0,0", "wordDelimiters" : " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502", none of these are effective any more. Window opens with defaults for size and position, and double-click-to-select is stopping at / chars, despite it not being in the list.
claunia added the Resolution-Duplicate label 2026-01-31 01:09:33 +00:00
Author
Owner

@zadjii-msft commented on GitHub (Apr 24, 2020):

Thanks for the report! 0.11 introduced some breaking settings changes which is probably causing this issue for you. This is tracked by another issue on our repo - please refer to #5458 for more discussion.

/dup #5458

@zadjii-msft commented on GitHub (Apr 24, 2020): Thanks for the report! 0.11 introduced some breaking settings changes which is probably causing this issue for you. This is tracked by another issue on our repo - please refer to #5458 for more discussion. /dup #5458
Author
Owner

@ghost commented on GitHub (Apr 24, 2020):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Apr 24, 2020): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Author
Owner

@dave-c-whitney commented on GitHub (Apr 24, 2020):

OK, I created a new file and migrated my desired settings into it. Putting my setting in defaults:

    "defaults":
    {
        // Put settings here that you want to apply to all profiles.
        "initialCols": 200,
        "initialRows": 65,
        "initialPosition": "0,0",
        "snapToGridOnResize": true,
        "historySize": 9999,
        "fontSize": 9,
        "wordDelimiters": " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502"
    },

it's still ignoring the Rows,Cols,Position and wordDelimiters. It is accepting fontSize and snapToGrid.

@dave-c-whitney commented on GitHub (Apr 24, 2020): OK, I created a new file and migrated my desired settings into it. Putting my setting in defaults: "defaults": { // Put settings here that you want to apply to all profiles. "initialCols": 200, "initialRows": 65, "initialPosition": "0,0", "snapToGridOnResize": true, "historySize": 9999, "fontSize": 9, "wordDelimiters": " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502" }, it's still ignoring the Rows,Cols,Position and wordDelimiters. It is accepting fontSize and snapToGrid.
Author
Owner

@zadjii-msft commented on GitHub (Apr 24, 2020):

That's not what that post says to do

Do your settings look like this?

{
    "globals": {
        "defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
        "initialCols": 200,
        "initialRows": 65,
        "initialPosition": "0,0",
        "wordDelimiters" : " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502",
        "confirmCloseAllTabs": true,
        "keybindings": [
            ...
        ]
    },
    "profiles": {
        ...
    }
}

Then change them to look like this:

{
    "defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
    "initialCols": 200,
    "initialRows": 65,
    "initialPosition": "0,0",
    "wordDelimiters" : " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502",
    "confirmCloseAllTabs": true,
    "keybindings": [
        ...
    ],
    "profiles": {
        ...
    }
}

Or even better, make a backup of your settings file, and delete the contents entirely. We'll re-generate the file with some better formatting and more sane defaults, and you can copy the modifications you want back in.

@zadjii-msft commented on GitHub (Apr 24, 2020): _That's not what that post says to do_ > Do your settings look like this? > > ```json > { > "globals": { > "defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", > "initialCols": 200, > "initialRows": 65, > "initialPosition": "0,0", > "wordDelimiters" : " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502", > "confirmCloseAllTabs": true, > "keybindings": [ > ... > ] > }, > "profiles": { > ... > } > } > ``` > > Then change them to look like this: > > ```json > { > "defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", > "initialCols": 200, > "initialRows": 65, > "initialPosition": "0,0", > "wordDelimiters" : " ()\"'-:,;<>~!@#$%^&*|+=[]{}~?\u2502", > "confirmCloseAllTabs": true, > "keybindings": [ > ... > ], > "profiles": { > ... > } > } > ``` > > Or **even better**, make a backup of your settings file, and delete the contents entirely. We'll re-generate the file with some better formatting and more sane defaults, and you can copy the modifications you want back in.
Author
Owner

@dave-c-whitney commented on GitHub (Apr 24, 2020):

I did delete the file (deleted - not emptied) and let Terminal recreate it. The "defaults" section I quoted from my file specifically says to put settings there I want to apply to all profiles.

@dave-c-whitney commented on GitHub (Apr 24, 2020): I _did_ delete the file (_deleted_ - not _emptied_) and let Terminal recreate it. The "defaults" section I quoted from my file _specifically says_ to put settings there I want to apply to all profiles.
Author
Owner

@dave-c-whitney commented on GitHub (Apr 24, 2020):

So some things need to go in "defaults" while others need to go out in the space you mentioned. It seems arbitrary.

@dave-c-whitney commented on GitHub (Apr 24, 2020): So some things need to go in "defaults" while others need to go out in the space you mentioned. It seems arbitrary.
Author
Owner

@wspresto commented on GitHub (Apr 24, 2020):

Thanks @zadjii-msft . Apparently the "globals" JSON path was removed in a recent patch? Musta missed that release note. Anyways this solved my problem of default profile launching default settings not the profile GUID I provided.

@wspresto commented on GitHub (Apr 24, 2020): Thanks @zadjii-msft . Apparently the "globals" JSON path was removed in a recent patch? Musta missed that release note. Anyways this solved my problem of default profile launching default settings not the profile GUID I provided.
Author
Owner

@zadjii-msft commented on GitHub (Apr 24, 2020):

Okay so there are largely two types of settings:

  • Application settings: these are setting that apply to the entire application, not just a single terminal instance. showTabsInTitlebar for example - it doesn't really make sense for one profile to have this set to true and another to set this to false. This setting affects the state of the entire application window, so it's a global setting. Same with initialPosition, initialRows/initialCols - these things affect the initial state of the window regardless of which profile was created.
  • Profile settings: these are settings that apply to a single instance of a terminal. Things like the font face used by the terminal, the colors, the cursor properties, etc. Each terminal instance within the Windows Terminal window can have different properties that don't affect any of the other terminals running in other tabs or panes.

The next tricky part is that some people want to use a bunch of common settings for all their profiles. It's a pain to have to edit all of them by hand, which is why profiles.defaults exists. That allows you to set a group of common properties that's applied to all the profiles.

If you want more reading, I'd take a look at UsingJsonSettings.md. For more technical reading, see the Default Profiles Spec or even the Cascading Settings spec

@zadjii-msft commented on GitHub (Apr 24, 2020): Okay so there are largely two types of settings: * **Application settings**: these are setting that apply to the _entire_ application, not just a single terminal instance. `showTabsInTitlebar` for example - it doesn't really make sense for one profile to have this set to true and another to set this to false. This setting affects the state of the entire application window, so it's a _global_ setting. Same with `initialPosition`, `initialRows`/`initialCols` - these things affect the initial state of the window _regardless_ of which profile was created. * **Profile settings**: these are settings that apply to a single instance of a terminal. Things like the font face used by the terminal, the colors, the cursor properties, etc. Each terminal instance within the Windows Terminal window can have different properties that don't affect any of the other terminals running in other tabs or panes. The next tricky part is that some people want to use a bunch of common settings for _all_ their profiles. It's a pain to have to edit all of them by hand, which is why `profiles.defaults` exists. That allows you to set a group of common properties that's applied to _all_ the profiles. If you want more reading, I'd take a look at [UsingJsonSettings.md](https://github.com/microsoft/terminal/blob/master/doc/user-docs/UsingJsonSettings.md#default-settings). For more technical reading, see the [Default Profiles Spec](https://github.com/microsoft/terminal/blob/master/doc/specs/%232325%20-%20Default%20Profile%20Settings.md) or even the [Cascading Settings spec](https://github.com/microsoft/terminal/blob/master/doc/specs/%23754%20-%20Cascading%20Default%20Settings.md)
Author
Owner

@dave-c-whitney commented on GitHub (Apr 24, 2020):

I would expect then that historySize and wordDelimiters would belong in "defaults" as (strictly speaking) they're profile settings, not application settings, but they apparently function out at the global (application) scope. Things get fuzzy when you're talking application-scope settings and default-for-all-profiles scope - they're very nearly the same thing, except for the handful of genuine application settings which can't go in any profile settings (including "defaults").

What would help is a comment at the global scope that settings here apply to the application (such as size and position), and then the parser could pop up errors about misplaced settings (profile-level settings given at the application scope, while functional, is "wrong" - they should be in "defaults" instead).

@dave-c-whitney commented on GitHub (Apr 24, 2020): I would expect then that historySize and wordDelimiters would belong in "defaults" as (strictly speaking) they're profile settings, not application settings, but they apparently function out at the global (application) scope. Things get fuzzy when you're talking application-scope settings and default-for-all-profiles scope - they're very nearly the same thing, except for the handful of genuine application settings which can't go in any profile settings (including "defaults"). What would help is a comment at the global scope that settings here apply to the application (such as size and position), and then the parser could pop up errors about misplaced settings (profile-level settings given at the application scope, while functional, is "wrong" - they should be in "defaults" instead).
Author
Owner

@zadjii-msft commented on GitHub (Apr 24, 2020):

Okay so wordDelimiters is definitely a weird one that probably should be a profile setting, not a global one. I'm pretty sure we've got a issue lying around somewhere tracking that. historySize though is definitely already a profile setting.

We pretty recently changed the settings template to include links to some documentation that's in progress that'll help clear all this up (soontm)

@zadjii-msft commented on GitHub (Apr 24, 2020): Okay so `wordDelimiters` is definitely a weird one that probably should be a profile setting, not a global one. I'm pretty sure we've got a issue lying around somewhere tracking that. `historySize` though is definitely already a profile setting. We pretty recently changed the [settings template](https://github.com/microsoft/terminal/blob/master/src/cascadia/TerminalApp/userDefaults.json) to include links to some documentation that's in progress that'll help clear all this up (soon<sup>tm</sup>)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#7651