Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a setting to manually set the Pane highlight color #3061

Open
zadjii-msft opened this issue Oct 4, 2019 · 7 comments
Open

Add a setting to manually set the Pane highlight color #3061

zadjii-msft opened this issue Oct 4, 2019 · 7 comments
Labels
Area-Settings Issues related to settings and customizability, for console or terminal Area-Theming Anything related to the theming of elements of the window Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal.

Comments

@zadjii-msft
Copy link
Member

Follow up from #994 and PR:#3060

In the aforementioned PR, we're just using the accent color for highlighting the pane. We should let that be a customizable global setting.

Questions:

  • There's been discussion before about allowing custom theming, hypothetically powered by XAML. Would we want to wait for that discussion to be had before we do this?
    • We'd probably want to change it from using SystemAccentColor to some FocusedPaneBorder color resource, that we define by default to be SystemAccentColor, should we decide to pursue this option
    • If we do want to do this in XAML later, would enabling it in the json now negatively impact that future scenario?
@zadjii-msft zadjii-msft added Area-User Interface Issues pertaining to the user interface of the Console or Terminal Area-Settings Issues related to settings and customizability, for console or terminal Product-Terminal The new Windows Terminal. Issue-Task It's a feature request, but it doesn't really need a major design. labels Oct 4, 2019
@ghost ghost added the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Oct 4, 2019
@zadjii-msft zadjii-msft added this to the Terminal Backlog milestone Oct 4, 2019
@DHowett-MSFT DHowett-MSFT removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Oct 23, 2019
@javierdlg

This comment was marked as off-topic.

@zadjii-msft

This comment was marked as off-topic.

@SkyTrix
Copy link

SkyTrix commented Jul 20, 2020

Not sure if this should be a separate issue, but in addition to this, it would be nice to be able to completely hide the focused pane border when the Terminal isn't the active application. I often have a few panes open on a separate screen where the focused pane border becomes more of a distraction than a help when the Terminal isn't the active window and I'm just glancing over at the outputs of the different panes.

@zadjii-msft zadjii-msft added Area-Theming Anything related to the theming of elements of the window and removed Area-User Interface Issues pertaining to the user interface of the Console or Terminal labels Aug 4, 2021
@zadjii-msft zadjii-msft removed this from the Terminal Backlog milestone Aug 4, 2021
@zadjii-msft zadjii-msft added this to the Terminal v3.0 milestone Aug 4, 2021
ghost pushed a commit that referenced this issue Dec 9, 2022
…eme` (#14486)

We couldn't do this before, because `App::Current().Resources().Lookup()` would always return the OS theme version of a resource. That thread has lengthy details on why.

FORTUNATELY FOR US, this isn't the first time we've dealt with this. We've come up with a workaround in the past, and we can just use it again here. 

Closes #3917

This will also make #3061 easy 😉
@zadjii-msft zadjii-msft moved this to Should be written in Terminal Walkthroughs Feb 6, 2023
@zadjii-msft
Copy link
Member Author

Note

Walkthrough

  • Start by adding a new Theme object for Panes:
    • PaneTheme in Theme.idl, quite similar to TabRowTheme in the same file
    • Add a single ThemeColor ActiveBorderColor to that runtimeclass.
    • In MTSMSettings.h, define a new MTSM_THEME_PANE_SETTINGS, again taking cues from the tab row version. The key for this one should just be "pane"
    • Add a THEME_OBJECT(PaneTheme, MTSM_THEME_PANE_SETTINGS); to Theme.h
    • Add the pane theme to the other places theme objects appear in Theme.cpp as well.
  • The "hard" part: actually plumb that color through to the panes
    • Pane currently uses a static `Brush for the border colors. It probably shouldn't.
    • TerminalPage::_updateThemeColors is what updates theme colors to the tabs, the window, etc. Similarly, it should plumb that through to all the panes.
      • WalkTree is a really handy helper for doing something to every pane.
    • Make sure that a null or otherwise omitted pane.activeBorderColor still uses accent by default
  • While you're here, probably add a similar pane.inactiveBorderColor, for controlling the appearance of the inactive pane border color.

Once this is done, if you wanted to get really ambitious, you could follow up with a similar property to configure the pane hover color, ala #8564.

@zadjii-msft zadjii-msft moved this from Should be written to Walkthrough in issue in Terminal Walkthroughs Feb 6, 2023
@carlos-zamora carlos-zamora modified the milestones: Up Next, Terminal v1.23 Aug 1, 2024
@peter-lee20
Copy link

Hello, can I take a stab at this?

@Haaziq386
Copy link

@zadjii-msft where is the Theme.idl file i.e in which folder ?

@zadjii-msft
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Settings Issues related to settings and customizability, for console or terminal Area-Theming Anything related to the theming of elements of the window Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal.
Projects
Status: Walkthrough in issue
Development

Successfully merging a pull request may close this issue.

7 participants