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

Display current tab's icon as the taskbar icon #6556

Closed
Tracked by #13392
dstaley opened this issue Jun 18, 2020 · 7 comments
Closed
Tracked by #13392

Display current tab's icon as the taskbar icon #6556

dstaley opened this issue Jun 18, 2020 · 7 comments
Labels
Area-Settings Issues related to settings and customizability, for console or terminal Help Wanted We encourage anyone to jump in on these. Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. Resolution-Won't-Fix We're just really obstinate about this. There's probably a good reason.
Milestone

Comments

@dstaley
Copy link

dstaley commented Jun 18, 2020

image

Description of the new feature/enhancement

I'd love to have the ability to select a custom Terminal icon from a limited set of icons packaged with the application by Microsoft. Particularly, I'd love the ability to use this icon from @cinnamon-msft.

Proposed technical implementation details (optional)

This isn't asking for completely arbitrary icons; the scope would be limited to a set of included icons. I also believe that means it's not in scope of #4000.

As for a potential solution, I'm not sure which of the Windows APIs Terminal has access to. If Win32 APIs can be called, I think WM_SETICON could be a good place to start.

@dstaley dstaley added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Jun 18, 2020
@ghost ghost added Needs-Tag-Fix Doesn't match tag requirements Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting labels Jun 18, 2020
@WSLUser
Copy link
Contributor

WSLUser commented Jun 18, 2020

Let's keep Windows Terminal from being political. You could technically change your icon yourself by replacing the existing icon with the one of your choice. However I can see a feature request for this in general (you can already set an icon inside Terminal in settings.json as a background, this would just be near duplicate code that changes the main icon instead.)

I would still rather see this particular feature request as an extension.

@zadjii-msft
Copy link
Member

I'm gonna keep this discussion strictly technical.

There's no way I'm aware of to dynamically change the tile in the Start Menu. I'm pretty sure that's something that the platform hasn't provided any sort of API for, so that's out of the question.

The next idea would be setting the icon in the taskbar. #1871 covers some of that discussion, but that's mostly just "show the profile's icon as a badge on the taskbar". I'm not really sure if it's possible to generically replace the entire icon for an application at runtime, and if we could, I'd bet that it would revert to the default when the app was closed. Since #1871 seems specific to using the icon as a badge, I'm gonna convert this issue into "use the profile icon as the taskbar icon". I don't know if WM_SETICON would work, or how we'd convert a image into an HICON, but that's probably the hardest bit of work.

Then of course, as the least visible solution, you can already set the icon for the tab itself. Since that's already a possible solution, I'm not gonna discuss that too much more.

@zadjii-msft zadjii-msft changed the title Add support for Pride icon Display current tab's icon as the taskbar icon Jun 18, 2020
@zadjii-msft zadjii-msft added Area-Settings Issues related to settings and customizability, for console or terminal Help Wanted We encourage anyone to jump in on these. Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. and removed Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. labels Jun 18, 2020
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Jun 18, 2020
@zadjii-msft zadjii-msft added this to the Terminal Backlog milestone Jun 18, 2020
@dstaley
Copy link
Author

dstaley commented Jun 18, 2020

I'm not really sure if it's possible to generically replace the entire icon for an application at runtime, and if we could, I'd bet that it would revert to the default when the app was closed.

I'm totally fine with that solution! It makes sense that a user-choice would only be reflected at runtime.

Since #1871 seems specific to using the icon as a badge, I'm gonna convert this issue into "use the profile icon as the taskbar icon".

My only worry here is if we default to using the profile icon in all instances, you could find yourself in a situation where you're running both Command Prompt and Windows Terminal at the same time, and they both have the same taskbar icon (since the profile icon for Command Prompt is the Command Prompt icon). I think it would make the most sense to support specifically declaring a taskbar icon for a profile, with the ability to set that property at a global level as well. That way, you can opt-in to having the taskbar icon change, and have a way to say "I don't care which profile is running, just use this icon".

I don't know if WM_SETICON would work, or how we'd convert a image into an HICON, but that's probably the hardest bit of work.

The original intent of the request was to have icons embedded as ICO resources, not arbitrary images, so I believe you could just use LoadIcon with the identifier from the resource definition file. The idea was to only support Microsoft-provided images. If we can find a solution that works with arbitrary images, that's awesome, but if that proves to be difficult I'd rather have just included icons than not have the functionality at all.

@DHowett DHowett removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jun 18, 2020
@electronic-dk
Copy link

@dstaley regarding your second concern about the same taskbar icon for different profiles and the terminal: the proposal there is to have it as a small overlay over the default terminal icon not to replace it entirely, so that you wouldn't confuse it with the actual prompt if it's running alongside the terminal, so I don't really think this should be an issue.

@dstaley
Copy link
Author

dstaley commented Jun 19, 2020

@electronic-dk #1871 covers the badge use case, this issue is for replacing the entire icon.

@zadjii-msft
Copy link
Member

xlink: #4768 (comment) has the most comprehensive summary of the problem space

@zadjii-msft
Copy link
Member

Talked this over with some taskbar folks. Looks like this is going to be largely impossible. The Taskbar really doesn't expect an app to be changing its icon at runtime. There are technically tricks we could play (by doing Aumid/RelaunchIcon trickery), but that would essentially cause the Taskbar to think the Terminal was a different app each time. Our window would get moved to the end of the taskbar order. Pinning to the taskbar would also be weird. I'm sure there are more edge cases here that they didn't just rattle off the top of their head too.

On the bright side, #1871 looks very possible, so that might have to be the solution in this space.

@zadjii-msft zadjii-msft added the Resolution-Won't-Fix We're just really obstinate about this. There's probably a good reason. label Aug 17, 2023
@zadjii-msft zadjii-msft closed this as not planned Won't fix, can't repro, duplicate, stale Aug 17, 2023
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 Help Wanted We encourage anyone to jump in on these. Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. Resolution-Won't-Fix We're just really obstinate about this. There's probably a good reason.
Projects
None yet
Development

No branches or pull requests

5 participants