microsoft / microsoft/terminal

Add per-window-name global settings

Open
#9,992 31 comments 35 reactions 0 assignees View on GitHub
Area-Settings Area-Windowing In-PR Issue-Feature Product-Terminal
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

This one's from a team sync chat thread.

What if there was a way to say

```json
"windows": {
"work": {
"alwaysOnTop" : true,
"initialPosition": "2000, 50",
"centerOnLaunch": true,
"launchMode": "focus",
"startupActions": "sp ; sp ; nt -p Ubuntu"
},
"_quake": {
"launchMode": "default",
"startupActions": "nt -p PowerShell"
}
}
```

So that you could have different sets of global settings for different window names? What properties would make sense here? Definitely not `windowingBehavior`, because that's a global setting, not a window setting.

* `dev/migrie/fhl-fall-2023/9992-window-name-settings` https://github.com/microsoft/terminal/compare/main...dev/migrie/fhl-fall-2023/9992-window-name-settings
* ~`dev/migrie/fhl-fall-2023/9992-default-quake-settings`~ this was a dead end
* `dev/migrie/fhl-fall-2023/9992-quake-II` https://github.com/microsoft/terminal/compare/dev/migrie/fhl-fall-2023/9992-window-name-settings...dev/migrie/fhl-fall-2023/9992-quake-II
* `dev/migrie/fhl-fall-2023/11162-quake-III-arena` https://github.com/microsoft/terminal/compare/dev/migrie/fhl-fall-2023/9992-quake-II...dev/migrie/fhl-fall-2023/11162-quake-III-arena for #11162, #11174

------

Edit 2026-march-09:

New year, new hackathon. Updated branch is here:
https://github.com/microsoft/terminal/compare/main...dev/migrie/fhl-spring-2026/quake-4
(I just used one branch for everything - doing docking as a separate branch doesn't make sense frankly)

I think that supports docking, different window names, default window settings + per-window settings, and a lot of hot-reloading for window settings (but not everything).

A big issue that remains with this branch: there is _absolutely no_ UI for these settings, other than the JSON file. There's still too many inter-mingled global & per-window settings such that it doesn't make sense to have like... a dropdown on the settings pages that tells you which window you're modifying the settings for. That's probably a solvable issue, but surely not during a hackathon.

Other notes in https://github.com/microsoft/terminal/issues/9992#issuecomment-1719994413

Anyone is free to get this across the finish line - I sure don't have time for it.

Contributor guide

Open the contributing guide

Research direction

Start with the proposed `windows` JSON settings and the linked `dev/migrie/fhl-spring-2026/quake-4` branch, then review the issue comments for the current scope. Done would require settling the per-window and global setting boundaries and delivering the requested behavior, including docking and hot-reloading, while the issue notes that no settings UI currently exists.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.