microsoft / microsoft/terminal

[Epic] Admin-specific customizations

Open
#11,111 2 comments 1 reaction 0 assignees View on GitHub
Area-Settings Issue-Scenario Product-Terminal
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

_written and maintained by @carlos-zamora & @zadjii-msft_

For quite some time now, we've gotten requests for admin-specific customizations. The first being to have an "appearance config" for an elevated session. However, we stopped working on that when we hit the following problem: how do we determine which appearance config to choose when a user is in an elevated session and also has an unfocused appearance config?

Over time, we've gotten more requests with similar situations (not necessarily limited to appearance config). This epic tracks these requests:
- Themes: https://github.com/microsoft/terminal/issues/8311
- Appearance Config: https://github.com/microsoft/terminal/issues/3246
- Dropdown Customization: https://github.com/microsoft/terminal/issues/3637


_zadjii-msft notes:_
Nexus of weird `elevate:true` bugs:
* #14932
* #13596
* #14442
* #13929
* #14799
- Discussion idea that might help here: What if we just restored both the admin and the unelevated one, when we first launch either? So when the terminal relaunches, it immediately brings back the _old_ admin state. Then, launching a _new_ admin profile will just work as expected - either an old admin window exists (whatever, that's fine) or it doesn't (that's fine too)
- Trick would be clearing out the old admin state IF there's an unelevated window still hanging around (and I'm not sure admin can find that out)


### User stories
* I want the Terminal to have a different set of profiles in the dropdown when running elevated (vs regularly)
* I want a different defaultProfile when running elevated
* I want to use a different `profile.defaults` block when running elevated
* I want a profile to have a different `appearance` when running elevated
* I want the Terminal itself to have a different `theme` when running elevated

### Open questions
* Is this prone to a combinatiorial explosion of situational settings? YES IT IS
* Would there ever be a case for like, `{container}DefaultProfile`? (like UWP? this is an intentionally dumb example)
* How would (focused, unfocused) x (elevated, unelevated) _appearances_ work? That's already 4 different states.
* (focused, unfocused) x (elevated, unelevated) x (light, dark) x (readonly, not) x (connections alive, dead)
* #16554
* https://github.com/microsoft/terminal/issues/17780#issuecomment-2643208323
*
* Should these all be in the base settings file, or a separate settings file?
* IE, should we have
* `elevatedTheme`, `elevatedDefaultProfile`, `profiles.elevatedDefaults` OR
* `admin-settings.json`
* Should there be a entirely separate `globals` block for elevated settings, ala #9992?


Other Admin QoL issues

* #15391 "Run as Admin" (where the admin account != your current user account) uses the settings from the admin account, not your own.
* #14517
* #12985
* #4459
* #13284

Contributor guide

Open the contributing guide

Research direction

Start by reading the linked themes, appearance config, and dropdown customization issues, then review the listed elevated-session bugs. Compare the user stories and open questions to identify a scoped implementation path. Done would require a decided design that resolves elevated versus unelevated settings and the related appearance states.

Written by the indexing model from the issue text.

Assessment

Domain
desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.