Investigate: AcrylicBlur always on in an inactive window #9976

Closed
opened 2026-01-31 02:08:51 +00:00 by claunia · 87 comments
Owner

Originally created by @harounhajem on GitHub (Aug 3, 2020).

Proposed feature:
The option to always have AcrylicBlur turned on even when the window loses focus. I'm a power-user and understand the GPU implications if blur is always turned on, but I'm willing to pay that price for the beauty of a blurred background. I've seen it in other UWP apps so it is possible.

Terminal

Current behavior :
AcrylicBlur is turned off, it dips to the default background color, when the window(terminal) loses focus, which is "default" behavior for UWP.

Originally created by @harounhajem on GitHub (Aug 3, 2020). **Proposed feature:** The option to always have AcrylicBlur turned on even when the window loses focus. I'm a power-user and understand the GPU implications if blur is always turned on, but I'm willing to pay that price for the beauty of a blurred background. I've seen it in other UWP apps so it is possible. ![Terminal](https://user-images.githubusercontent.com/17148955/89184781-96817300-d599-11ea-8962-2907f707341d.png) **Current behavior :** AcrylicBlur is turned off, it dips to the default background color, when the window(terminal) loses focus, which is "default" behavior for UWP.
Author
Owner

@zadjii-msft commented on GitHub (Aug 3, 2020):

I've seen it in other UWP apps so it is possible.

Which applications have you seen this in? The system standard AcrylicBrush (the one we're using) disables acrylic when the window loses focus, which isn't something we can control.

@zadjii-msft commented on GitHub (Aug 3, 2020): > I've seen it in other UWP apps so it is possible. Which applications have you seen this in? The system standard `AcrylicBrush` (the one we're using) disables acrylic when the window loses focus, which isn't something we can control.
Author
Owner

@electronic-dk commented on GitHub (Aug 3, 2020):

@zadjii-msft I've definitely seen it in a couple of apps, this one comes to mind first:
https://github.com/JasonStein/Notepads

@electronic-dk commented on GitHub (Aug 3, 2020): @zadjii-msft I've definitely seen it in a couple of apps, this one comes to mind first: https://github.com/JasonStein/Notepads
Author
Owner

@zadjii-msft commented on GitHub (Aug 3, 2020):

Ah yea, that one's special though. They're not using the actual system acrylic brush. They're actually rolling their own acrylic brush, using the same combination of effects as the acrylic brush, but with the "disable when the window loses focus" effect disabled.

We absolutely could copy that mechanism (just roll our own), but we just need someone to write that code 😄 I think we've got a dupe sitting around here somewhere for that...

@zadjii-msft commented on GitHub (Aug 3, 2020): Ah yea, that one's _special_ though. They're not using the actual system acrylic brush. They're actually rolling their own acrylic brush, using the same combination of effects as the acrylic brush, but with the "disable when the window loses focus" effect disabled. We absolutely _could_ copy that mechanism (just roll our own), but we just need someone to write that code 😄 I think we've got a dupe sitting around here somewhere for that...
Author
Owner

@harounhajem commented on GitHub (Aug 3, 2020):

@zadjii-msft Thanks for the quick reply. I've had the same discussion with the team working on FluentTerminal, they advised me to fork it from NotePads and make a pull-request in the FluentTerminal project. But unfortunately I didn't have the time to complete it.

However it would be an awesome feature to have and it follows Microsoft Fluent Design principles. I really hope that there is time to implement this feature in alongside this projects roadmap.

Thanks for a great terminal and we are looking forward to the upcoming releases.

@harounhajem commented on GitHub (Aug 3, 2020): @zadjii-msft Thanks for the quick reply. I've had the same discussion with the team working on [FluentTerminal](https://github.com/felixse/FluentTerminal), they advised me to fork it from NotePads and make a pull-request in the FluentTerminal project. But unfortunately I didn't have the time to complete it. However it would be an awesome feature to have and it follows [Microsoft Fluent Design](https://www.microsoft.com/design/fluent/#/) principles. I really hope that there is time to implement this feature in alongside this projects roadmap. Thanks for a great terminal and we are looking forward to the upcoming releases.
Author
Owner

@zadjii-msft commented on GitHub (Aug 3, 2020):

To be fair, Microsoft Fluent Design -> Style for Windows apps -> Acrylic specifically calls out not using acrylic for unfocused windows:

In addition, both background acrylic and in-app acrylic appear as a solid color:

  • When the user turns off transparency in Settings > Personalization > Color
  • When Battery Saver mode is activated
  • When the app runs on low-end hardware

In addition, only background acrylic will replace its translucency and texture with a solid color:

  • When an app window on desktop deactivates
  • When the Windows app is running on phone, Xbox, HoloLens or tablet mode
    (emph. added)

That being said, I'm gonna leave this open for now. If someone wants to add the "unfocused acrylic" brush to the terminal (behind an off-by-default global setting), I'm not really opposed to stopping them tbh.

@zadjii-msft commented on GitHub (Aug 3, 2020): To be fair, [Microsoft Fluent Design](https://www.microsoft.com/design/fluent/#/windows) -> [Style for Windows apps](https://docs.microsoft.com/en-us/windows/uwp/design/style/) -> [Acrylic](https://docs.microsoft.com/en-us/windows/uwp/design/style/acrylic) specifically calls out _not_ using acrylic for unfocused windows: > In addition, both background acrylic and in-app acrylic appear as a solid color: > > * When the user turns off transparency in Settings > Personalization > Color > * When Battery Saver mode is activated > * When the app runs on low-end hardware > > In addition, only background acrylic will replace its translucency and texture with a solid color: > > * **When an app window on desktop deactivates** > * When the Windows app is running on phone, Xbox, HoloLens or tablet mode (_emph. added_) That being said, I'm gonna leave this open for now. If someone wants to add the "unfocused acrylic" brush to the terminal (behind an off-by-default global setting), I'm not really opposed to stopping them tbh.
Author
Owner

@0x7c13 commented on GitHub (Aug 3, 2020):

To be fair, Microsoft Fluent Design -> Style for Windows apps -> Acrylic specifically calls out not using acrylic for unfocused windows:

In addition, both background acrylic and in-app acrylic appear as a solid color:

  • When the user turns off transparency in Settings > Personalization > Color
  • When Battery Saver mode is activated
  • When the app runs on low-end hardware

In addition, only background acrylic will replace its translucency and texture with a solid color:

  • When an app window on desktop deactivates
  • When the Windows app is running on phone, Xbox, HoloLens or tablet mode
    (emph. added)

That being said, I'm gonna leave this open for now. If someone wants to add the "unfocused acrylic" brush to the terminal (behind an off-by-default global setting), I'm not really opposed to stopping them tbh.

Hi all, notepads author here. I am glad to help if you guys don't mind.

My two cents regarding to that design principle for how to properly use acrylic effect: They are absolutely right but for apps like terminal, they can be special since they are not product for "average consumer" and I personally treat the terminal as one advanced dev tool. These kind of apps can go out of box here.

@0x7c13 commented on GitHub (Aug 3, 2020): > To be fair, [Microsoft Fluent Design](https://www.microsoft.com/design/fluent/#/windows) -> [Style for Windows apps](https://docs.microsoft.com/en-us/windows/uwp/design/style/) -> [Acrylic](https://docs.microsoft.com/en-us/windows/uwp/design/style/acrylic) specifically calls out _not_ using acrylic for unfocused windows: > > > In addition, both background acrylic and in-app acrylic appear as a solid color: > > > > * When the user turns off transparency in Settings > Personalization > Color > > * When Battery Saver mode is activated > > * When the app runs on low-end hardware > > > > In addition, only background acrylic will replace its translucency and texture with a solid color: > > > > * **When an app window on desktop deactivates** > > * When the Windows app is running on phone, Xbox, HoloLens or tablet mode > > (_emph. added_) > > That being said, I'm gonna leave this open for now. If someone wants to add the "unfocused acrylic" brush to the terminal (behind an off-by-default global setting), I'm not really opposed to stopping them tbh. Hi all, notepads author here. I am glad to help if you guys don't mind. My two cents regarding to that design principle for how to properly use acrylic effect: They are absolutely right but for apps like terminal, they can be special since they are not product for "average consumer" and I personally treat the terminal as one advanced dev tool. These kind of apps can go out of box here.
Author
Owner

@zadjii-msft commented on GitHub (Aug 3, 2020):

That's totally fair, and we're already outside the box here since the body of the Terminal isn't really a "transient surface" either 😝

@zadjii-msft commented on GitHub (Aug 3, 2020): That's totally fair, and we're already outside the box here since the body of the Terminal isn't really a "transient surface" either 😝
Author
Owner

@electronic-dk commented on GitHub (Aug 3, 2020):

I wonder if this effect really uses that much GPU so that it's explicitly requested to turn it off on all types of devices. I feel like it should work fine in background on laptops connected to AC and desktop PCs so it's only justifiable for mobile devices or if the energy saving mode is on. With that being said, I really hope WinUI team will reconsider this aspect and make it optional. Unfortunately, I can't remember if there is a ticket in the WinUI repo for this matter.

@electronic-dk commented on GitHub (Aug 3, 2020): I wonder if this effect really uses that much GPU so that it's explicitly requested to turn it off on all types of devices. I feel like it should work fine in background on laptops connected to AC and desktop PCs so it's only justifiable for mobile devices or if the energy saving mode is on. With that being said, I really hope WinUI team will reconsider this aspect and make it optional. Unfortunately, I can't remember if there is a ticket in the WinUI repo for this matter.
Author
Owner

@SinanAkkoyun commented on GitHub (Aug 5, 2020):

Just do it. Everyone wants acrylic in background and blur amount settings.

@SinanAkkoyun commented on GitHub (Aug 5, 2020): Just do it. Everyone wants acrylic in background and blur amount settings.
Author
Owner

@harounhajem commented on GitHub (Aug 6, 2020):

Just do it. Everyone wants acrylic in background and blur amount settings.

If you like the idea you could join the dev. effort or like 👍 the post and spread the word so other developer can like 👍 it. The more likes a feature gets the more likely it will be develop. 😎

@harounhajem commented on GitHub (Aug 6, 2020): > > > Just do it. Everyone wants acrylic in background and blur amount settings. If you like the idea you could join the dev. effort or like 👍 the post and spread the word so other developer can like 👍 it. The more likes a feature gets the more [likely it will be develop](https://github.com/microsoft/terminal/blob/master/CONTRIBUTING.md#terminal-contributors-guide). 😎
Author
Owner

@SinanAkkoyun commented on GitHub (Aug 6, 2020):

Yes, how hard is joining the dev team? Or can I just contribute?

@SinanAkkoyun commented on GitHub (Aug 6, 2020): Yes, how hard is joining the dev team? Or can I just contribute?
Author
Owner

@zadjii-msft commented on GitHub (Aug 6, 2020):

It's an open source project, and we're happy to accept community contributions. This issue is even marked "Help Wanted"
image

which means it's one of the easier tasks for a member of the community to implement.

@zadjii-msft commented on GitHub (Aug 6, 2020): It's an open source project, and we're happy to accept community contributions. This issue is even marked "Help Wanted" ![image](https://user-images.githubusercontent.com/18356694/89525253-83de8800-d7ab-11ea-9ed4-8586a2658af1.png) which means it's one of the easier tasks for a member of the community to implement.
Author
Owner

@SinanAkkoyun commented on GitHub (Aug 6, 2020):

It's an open source project, and we're happy to accept community contributions. This issue is even marked "Help Wanted"
image

which means it's one of the easier tasks for a member of the community to implement.

Thank you, I will see if I can make a small difference

@SinanAkkoyun commented on GitHub (Aug 6, 2020): > It's an open source project, and we're happy to accept community contributions. This issue is even marked "Help Wanted" > ![image](https://user-images.githubusercontent.com/18356694/89525253-83de8800-d7ab-11ea-9ed4-8586a2658af1.png) > > which means it's one of the easier tasks for a member of the community to implement. Thank you, I will see if I can make a small difference
Author
Owner

@harounhajem commented on GitHub (Aug 14, 2020):

@zadjii-msft Is it possible to get some guidance on where to make the changes to prohibit solid background on lost focus, as well where to read the settings values. Saw that the repo was written in C++, thought the application was an UWP and written in C#, which would have been much easier for me to start with.

@harounhajem commented on GitHub (Aug 14, 2020): @zadjii-msft Is it possible to get some guidance on where to make the changes to prohibit solid background on lost focus, as well where to read the settings values. Saw that the repo was written in C++, thought the application was an UWP and written in C#, which would have been much easier for me to start with.
Author
Owner

@zadjii-msft commented on GitHub (Aug 14, 2020):

If you'd like to do this, you'll need to copy the HostBackdropAcrylicBrush from here, put port the code to C++/WinRT. If you can egt the brush working as a replacement to the standard AcrylicBrush, then I can help figure out the setting later 😝

The Terminal is a C++/WinRT application, which means many of the same APIs that are available to UWP apps are availabie to use in C++, just via their C++ projection instead of the C# one.

The Terminal isn't really a "UWP" app - it uses "UWP XAML" for its UI, but typically UWP also implies some other restrictions like needing to run in an app container. The Terminal is one of a new breed of hybrid Win32/UWP applications that get to use the best of both worlds.

Also FYI UWP applications don't need to be written in C# - you could have a pure UWP app built with C++ if you wanted 😉

@zadjii-msft commented on GitHub (Aug 14, 2020): If you'd like to do this, you'll need to copy the `HostBackdropAcrylicBrush` from [here](https://github.com/JasonStein/Notepads/blob/master/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs), put port the code to C++/WinRT. If you can egt the brush working as a replacement to the standard AcrylicBrush, then I can help figure out the setting later 😝 The Terminal is a C++/WinRT application, which means many of the same APIs that are available to UWP apps are availabie to use in C++, just via their C++ projection instead of the C# one. The Terminal isn't really a "UWP" app - it uses "UWP XAML" for its UI, but typically UWP also implies some other restrictions like needing to run in an app container. The Terminal is one of a new breed of hybrid Win32/UWP applications that get to use the best of both worlds. Also FYI UWP applications don't _need_ to be written in C# - you could have a pure UWP app built with C++ if you wanted 😉
Author
Owner

@driver1998 commented on GitHub (Aug 18, 2020):

huh, so this is actually possible on UWP? I always think this "always on faky acrylic" is only possible on desktop apps (with a bunch of undocumented DWM APIs).

@driver1998 commented on GitHub (Aug 18, 2020): huh, so this is actually possible on UWP? I always think this "always on faky acrylic" is only possible on desktop apps (with a bunch of undocumented DWM APIs).
Author
Owner

@zadjii-msft commented on GitHub (Aug 18, 2020):

I'm not sure if that's possible for a pure UWP app, but the Terminal is fortunately a desktop application, so we don't need to worry about that 😉 Plus, the compositor APIs are pretty well documented, so it's not like Notepads is doing anything that's a particularly bad hack.

@zadjii-msft commented on GitHub (Aug 18, 2020): I'm not sure if that's possible for a pure UWP app, but the Terminal is fortunately a desktop application, so we don't need to worry about that 😉 Plus, the compositor APIs are pretty well documented, so it's not like Notepads is doing anything that's a particularly bad hack.
Author
Owner

@WVVxm commented on GitHub (Oct 16, 2020):

Interesting. I found acrylic working when terminal is inactive on remote desktop.
https://webmshare.com/wZ6OJ
t1
t2

@WVVxm commented on GitHub (Oct 16, 2020): Interesting. I found acrylic **working** when terminal is inactive on remote desktop. https://webmshare.com/wZ6OJ ![t1](https://user-images.githubusercontent.com/54934396/96256544-75062400-0feb-11eb-8dc0-6dd8b2c202e5.png) ![t2](https://user-images.githubusercontent.com/54934396/96256556-77687e00-0feb-11eb-9f5c-b29ebb35a03d.png)
Author
Owner

@reinux commented on GitHub (Dec 2, 2020):

Could it just paint part of the desktop wallpaper with a glass effect instead of actually using Acrylic? Or maybe have that as an option?

Some old Linux terminals in the early 2000s did a thing where it would just paint the desktop wallpaper image at reduced contrast, and it would move the source rect based on where the window was relative to the wallpaper.

This has a few advantages:

  • It isn't subject to Windows' Glass/Acrylic rules
  • The user can choose a wallpaper they like and that won't clash with the text color
  • The effect can be cached (although I think the perf/energy issue is way overstated -- see below)

I made a mockup a couple years ago in WPF:

ezgif-7-ad2b25eee91b

I think in a real Windows app, in order for there not to be juddering, it would need to either be able to redraw as soon as the window moves (I never figured out how to do this), or just not update the background for half a second or so after the window stops moving.

I wonder if this effect really uses that much GPU so that it's explicitly requested to turn it off on all types of devices.

Even back on Vista hardware back in 2007, when there were a ton of false rumors about its resource consumption, Aero Glass being a culprit for battery consumption was ruled out by anyone who tested the theory both in benchmarks and in practical use. It was reducing battery life by less than 1%. The only modern computer I can think of that wouldn't have a GPU that could handle glass in under 0.1% of its energy consumption is a Raspberry Pi.

@reinux commented on GitHub (Dec 2, 2020): Could it just paint part of the desktop wallpaper with a glass effect instead of actually using Acrylic? Or maybe have that as an option? Some old Linux terminals in the early 2000s did a thing where it would just paint the desktop wallpaper image at reduced contrast, and it would move the source rect based on where the window was relative to the wallpaper. This has a few advantages: - It isn't subject to Windows' Glass/Acrylic rules - The user can choose a wallpaper they like and that won't clash with the text color - The effect can be cached (although I think the perf/energy issue is way overstated -- see below) I made a mockup a couple years ago in WPF: ![ezgif-7-ad2b25eee91b](https://user-images.githubusercontent.com/5127297/100915923-e7db3980-3489-11eb-9c72-9150b9059149.gif) I think in a real Windows app, in order for there not to be juddering, it would need to either be able to redraw as soon as the window moves (I never figured out how to do this), or just not update the background for half a second or so after the window stops moving. > I wonder if this effect really uses that much GPU so that it's explicitly requested to turn it off on all types of devices. Even back on Vista hardware back in 2007, when there were a ton of false rumors about its resource consumption, Aero Glass being a culprit for battery consumption was ruled out by anyone who tested the theory both in benchmarks and in practical use. It was reducing battery life by less than 1%. The only modern computer I can think of that wouldn't have a GPU that could handle glass in under 0.1% of its energy consumption is a Raspberry Pi.
Author
Owner

@Chaphasilor commented on GitHub (May 9, 2021):

Just a quick thought: https://github.com/microsoft/terminal/pull/8392 introduced style settings for when the terminal is unfocused. This (probably) means that, once this feature is implemented/ported, the Enable Acrylic setting could just be duplicated to give the user more control how they want the effect to behave.
For example, I'd actually like the effect to only show when the window in unfocused, so that it "blends in" with the background.

Making use of the linked PR would enable this right away, basically without any additional overhead :)

@Chaphasilor commented on GitHub (May 9, 2021): Just a quick thought: https://github.com/microsoft/terminal/pull/8392 introduced style settings for when the terminal is unfocused. This (probably) means that, once this feature is implemented/ported, the `Enable Acrylic` setting could just be duplicated to give the user more control how they want the effect to behave. For example, I'd actually like the effect to *only* show when the window in unfocused, so that it "blends in" with the background. Making use of the linked PR would enable this right away, basically without any additional overhead :)
Author
Owner

@pcone commented on GitHub (Aug 27, 2021):

Just chiming in with a use case beyond "it looks pretty" because I don't think it's been mentioned yet - this would be super useful combined with the 'Always on top' appearance setting to let me keep a terminal window visible without it obscuring other stuff on the same monitor. I often want to keep an eye on something running in terminal like a build while not really interacting with it much.

Ideally there would be a separate opacity setting for focused and unfocused.

@pcone commented on GitHub (Aug 27, 2021): Just chiming in with a use case beyond "it looks pretty" because I don't think it's been mentioned yet - this would be super useful combined with the 'Always on top' appearance setting to let me keep a terminal window visible without it obscuring other stuff on the same monitor. I often want to keep an eye on something running in terminal like a build while not really interacting with it much. Ideally there would be a separate opacity setting for focused and unfocused.
Author
Owner

@Spydernaz commented on GitHub (Sep 13, 2021):

Hey all, is anyone currently working on this? This is something I would really love and am willing to have a go at implementing it.

@Spydernaz commented on GitHub (Sep 13, 2021): Hey all, is anyone currently working on this? This is something I would really love and am willing to have a go at implementing it.
Author
Owner

@zadjii-msft commented on GitHub (Sep 13, 2021):

No one's working on this currently, so go right ahead! You might want to take a look at

8ea2c902c1/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs

as a starting place. That's C#, but it'll be a fairly good reference for what needs to be done here. I'd also recommend maybe branching off of #11180, since that slightly re-works how opacity works in the Terminal

@zadjii-msft commented on GitHub (Sep 13, 2021): No one's working on this currently, so go right ahead! You might want to take a look at https://github.com/JasonStein/Notepads/blob/8ea2c902c1b1a35deb913503559c40e18708c9e5/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs as a starting place. That's C#, but it'll be a fairly good reference for what needs to be done here. I'd also recommend maybe branching off of #11180, since that slightly re-works how opacity works in the Terminal
Author
Owner

@Spydernaz commented on GitHub (Sep 14, 2021):

@zadjii-msft, thanks for the pointers 😄 will take a look at these for some guidance. Also, it seems like the branch/PR you commented isn't passing though.
Also; side note, I was building the dev branch to make sure I can but it runs super slow, is there any tricks to make the build quicker (like a --skipTests or smth in C++)

@Spydernaz commented on GitHub (Sep 14, 2021): @zadjii-msft, thanks for the pointers 😄 will take a look at these for some guidance. Also, it seems like the branch/PR you commented isn't passing though. Also; side note, I was building the dev branch to make sure I can but it runs super slow, is there any tricks to make the build quicker (like a --skipTests or smth in C++)
Author
Owner

@zadjii-msft commented on GitHub (Sep 14, 2021):

Also, it seems like the branch/PR you commented isn't passing though.

Meh yea, I forgot to build some of the test code. Don't worry too much about those ones not building, I'll go sort those out now.

Also; side note, I was building the dev branch to make sure I can but it runs super slow, is there any tricks to make the build quicker (like a --skipTests or smth in C++)

Yea, that's kinda been a crusade I've been pushing for a while. C++/WinRT code can be a real pain to build, especially the first time when it's compiling the pch.h's. My trick is only ever deploying CascadiaPackage:
image

That'll skip all the test projects, and just build the Terminal. That's usually good enough for my inner loop. I had a more complicated setup too where I'd only ever build individual dll's, and then patch them into the package directory, but that's more fraught with footguns so I'll not go into details on that 😛

@zadjii-msft commented on GitHub (Sep 14, 2021): > Also, it seems like the branch/PR you commented isn't passing though. Meh yea, I forgot to build some of the test code. Don't worry too much about those ones not building, I'll go sort those out now. > Also; side note, I was building the dev branch to make sure I can but it runs super slow, is there any tricks to make the build quicker (like a --skipTests or smth in C++) Yea, that's kinda been a crusade I've been pushing for a while. C++/WinRT code can be a real pain to build, especially the first time when it's compiling the `pch.h`'s. My trick is only ever deploying CascadiaPackage: ![image](https://user-images.githubusercontent.com/18356694/133246555-75192b0f-c0bc-4952-8413-fc512de4976c.png) That'll skip all the test projects, and just build the Terminal. That's usually good enough for my inner loop. I had a more complicated setup too where I'd only ever build individual dll's, and then patch them into the package directory, but that's more fraught with footguns so I'll not go into details on that 😛
Author
Owner

@Spydernaz commented on GitHub (Sep 14, 2021):

Awesome! Thanks for the help / advice, I will have a look at pulling the branch and building it.

Yea, that's kinda been a crusade I've been pushing for a while. C++/WinRT code can be a real pain to build, especially the first time when it's compiling the pch.h's. My trick is only ever deploying CascadiaPackage:

Thanks, I'll give this a try and hope it builds quicker :)

I had a more complicated setup too where I'd only ever build individual dll's, and then patch them into the package directory, but that's more fraught with footguns so I'll not go into details on that 😛

As a newbie I will skip your perilous setup 😆

@Spydernaz commented on GitHub (Sep 14, 2021): Awesome! Thanks for the help / advice, I will have a look at pulling the branch and building it. >Yea, that's kinda been a crusade I've been pushing for a while. C++/WinRT code can be a real pain to build, especially the first time when it's compiling the pch.h's. My trick is only ever deploying CascadiaPackage: Thanks, I'll give this a try and hope it builds quicker :) > I had a more complicated setup too where I'd only ever build individual dll's, and then patch them into the package directory, but that's more fraught with footguns so I'll not go into details on that 😛 As a newbie I will skip your perilous setup 😆
Author
Owner

@JoshuaRifareal commented on GitHub (Oct 21, 2021):

any updates on this?

@JoshuaRifareal commented on GitHub (Oct 21, 2021): any updates on this?
Author
Owner

@zadjii-msft commented on GitHub (Oct 21, 2021):

Nope. We'll make sure to update this thread when there is. In the meantime, might I recommend the Subscribe button?
image
That way you'll be notified of any updates to this thread, without needlessly pinging everyone on this thread ☺️

@zadjii-msft commented on GitHub (Oct 21, 2021): Nope. We'll make sure to update this thread when there is. In the meantime, might I recommend the Subscribe button? ![image](https://user-images.githubusercontent.com/18356694/91237459-5cbb0c80-e700-11ea-9347-b9b1ec2813b1.png) That way you'll be notified of any updates to this thread, without needlessly pinging everyone on this thread ☺️
Author
Owner

@furby-tm commented on GitHub (Dec 5, 2021):

Weirdly here on Windows 11 build 22509.1011, acrylic stopped working entirely both on the stable and preview releases -- so I initially went to fix that, and then additionally was able to fix the acrylic on focused and non-focused states.

Not the cleanest, at all!! But I patched this issue: https://github.com/Wabi-Studios/Windows-Always-Blurred-Terminal

Can clean it way up for an actual PR if you guys are interested. Was messing with a bunch of things when I was in there, haha.

I can provide a build when I get the chance to fix the deployment on azure.

@furby-tm commented on GitHub (Dec 5, 2021): Weirdly here on Windows 11 build 22509.1011, acrylic stopped working entirely both on the stable and preview releases -- so I initially went to fix that, and then additionally was able to fix the acrylic on focused and non-focused states. Not the cleanest, at all!! But I patched this issue: https://github.com/Wabi-Studios/Windows-Always-Blurred-Terminal Can clean it way up for an actual PR if you guys are interested. Was messing with a bunch of things when I was in there, haha. I can provide a build when I get the chance to fix the deployment on azure.
Author
Owner

@zadjii-msft commented on GitHub (Dec 6, 2021):

@furby-tm Interesting. Looking through that diff is... challenging, since there's so many other random dependency updates and merges in it. But it looks like the substantial part of it boils down to

  • Add mux:BackdropMaterial.ApplyToRootOrPageBackground="True" to the root TerminalPage
  • change any acrylic brushes we're using to BackgroundSource(AcrylicBackgroundSource::Backdrop) instead of AcrylicBackgroundSource::HostBackdrop

any idea why that fixes it? The BackdropMaterial.ApplyToRootOrPageBackground docs are... sparse... I was under the impression that was only supposed to work with Mica, but if that works with Acrylic too, that's a nifty discovery.

I'm a tad bit worried that the <Grid x:Name="Root" Background="{ThemeResource CustomAcrylicInAppLuminosity}"> bit is making it hard for the TermControls to be able to set their own individual colors/BG brushes, but that could probably get sorted out. I'm mostly just curious how this works. We'd obviously accept a (cleaned up 🤣) PR. This seems way simpler than the Notepads solution.

@zadjii-msft commented on GitHub (Dec 6, 2021): @furby-tm Interesting. Looking through that diff is... challenging, since there's so many other random dependency updates and merges in it. But it looks like the substantial part of it boils down to * Add `mux:BackdropMaterial.ApplyToRootOrPageBackground="True"` to the root `TerminalPage` * change any acrylic brushes we're using to `BackgroundSource(AcrylicBackgroundSource::Backdrop)` instead of `AcrylicBackgroundSource::HostBackdrop` any idea _why_ that fixes it? The [`BackdropMaterial.ApplyToRootOrPageBackground` docs](https://docs.microsoft.com/en-us/windows/winui/api/microsoft.ui.xaml.controls.backdropmaterial.applytorootorpagebackground?view=winui-2.7) are... sparse... I was under the impression that was only supposed to work with Mica, but if that works with Acrylic too, that's a nifty discovery. I'm a tad bit worried that the `<Grid x:Name="Root" Background="{ThemeResource CustomAcrylicInAppLuminosity}">` bit is making it hard for the `TermControl`s to be able to set their own individual colors/BG brushes, but that could probably get sorted out. I'm mostly just curious _how_ this works. We'd obviously accept a (cleaned up 🤣) PR. This seems way simpler than the Notepads solution.
Author
Owner

@furby-tm commented on GitHub (Dec 6, 2021):

@zadjii-msft Oh my! Haha. You actually read through that terrible commit 🤣! I am terribly sorry -- Yes that about sums it up! And actually I don't believe applying the Mica material is of much use here, in terms of acrylic; and

Re:
change any acrylic brushes we're using to BackgroundSource(AcrylicBackgroundSource::Backdrop) instead of AcrylicBackgroundSource::HostBackdrop

You are spot on with this, on top of this, I found many unnecessary bits on the usage of SolidBrush vs just using the AcrylicBrush -- especially as it pertains to the background's brush. And the only reason I implemented <Grid x:Name="Root" Background="{ThemeResource CustomAcrylicInAppLuminosity}"> was because on this Windows 11 build 22509.1011 , that acrylic is the only one working:
image

As seen by the XAML Controls Gallery here ^ But that's a separate issue, haha.

But yes, I can definitely go back and make a commit less than 25 lines of code most likely.

WOW! I am so sorry you had to read through all of that 🤦

@furby-tm commented on GitHub (Dec 6, 2021): @zadjii-msft Oh my! Haha. You actually read through that terrible commit 🤣! I am terribly sorry -- Yes that about sums it up! And actually I don't believe applying the Mica material is of much use here, in terms of acrylic; and Re: _change any acrylic brushes we're using to BackgroundSource(AcrylicBackgroundSource::Backdrop) instead of AcrylicBackgroundSource::HostBackdrop_ You are spot on with this, on top of this, I found many unnecessary bits on the usage of `SolidBrush` vs just using the `AcrylicBrush` -- especially as it pertains to the background's brush. And the only reason I implemented `<Grid x:Name="Root" Background="{ThemeResource CustomAcrylicInAppLuminosity}">` was because on this Windows 11 build **22509.1011** , that acrylic is the only one working: ![image](https://user-images.githubusercontent.com/18516968/144871157-cf9e6bb3-5756-4732-8aa2-abcb449296e4.png) As seen by the XAML Controls Gallery here ^ But that's a separate issue, haha. But yes, I can definitely go back and make a commit less than 25 lines of code most likely. WOW! I am so sorry you had to read through all of that 🤦
Author
Owner

@zadjii-msft commented on GitHub (Dec 6, 2021):

on this Windows 11 build 22509.1011 , that acrylic is the only one working

Oh jeez, you might be running into #11880, which is an OS level bug 😨

@zadjii-msft commented on GitHub (Dec 6, 2021): > on this Windows 11 build **22509.1011** , that acrylic is the only one working Oh jeez, you might be running into #11880, which is an OS level bug 😨
Author
Owner

@furby-tm commented on GitHub (Dec 6, 2021):

@zadjii-msft Yep! Haha I live and work out of my terminal and could not stand another second of opaqueness, so I needed to solve it ASAP. And while I was at it, it seemed simple enough to figure out a solution to the extremely annoying "unblur" when moving off focus, and it sure was!

So maybe thank goodness for the occasional OS level bug to start thinking outside the box a little bit 😉

I do have a job, so you should see a polished PR by sometime late tonight - and as well as my temporary workaround to get acrylic working on build 22509.1011 if a OS patch isn't expected anytime soon.

#7158 #11880

Who doesn't like killing two birds with one stone?


Quick update, been a busy week. But have not forgotten and am still planning on making a PR when I get some down time. @zadjii-msft just keep me posted if someone gets to fixing this before I get a chance to, much appreciated!

@furby-tm commented on GitHub (Dec 6, 2021): @zadjii-msft Yep! Haha I live and work out of my terminal and could not stand another second of opaqueness, so I needed to solve it ASAP. And while I was at it, it seemed simple enough to figure out a solution to the extremely annoying "unblur" when moving off focus, and it sure was! So maybe thank goodness for the occasional OS level bug to start thinking outside the box a little bit 😉 I do have a job, so you should see a polished PR by sometime late tonight - and as well as my temporary workaround to get acrylic working on build **22509.1011** if a OS patch isn't expected anytime soon. #7158 #11880 Who doesn't like killing two birds with one stone? --- Quick update, been a busy week. But have not forgotten and am still planning on making a PR when I get some down time. @zadjii-msft just keep me posted if someone gets to fixing this before I get a chance to, much appreciated!
Author
Owner

@LuigiImVector commented on GitHub (Jan 12, 2022):

@furby-tm maybe you could join your solution with the "Unfocused Appearance" menu available in Terminal Preview (PR #10317) by also solving #11092

@LuigiImVector commented on GitHub (Jan 12, 2022): @furby-tm maybe you could join your solution with the "Unfocused Appearance" menu available in [Terminal Preview](https://www.microsoft.com/it-it/p/windows-terminal-preview/9n8g5rfz9xk3) (PR #10317) by also solving #11092
Author
Owner

@PabloRuizCuevas commented on GitHub (Jan 23, 2022):

@furby-tm Is your current version "always blurred terminal" good/stable enough for installing it instead of the original one? I can't stand much more time in opaqueness too, Thanks in advance!

@PabloRuizCuevas commented on GitHub (Jan 23, 2022): @furby-tm Is your current version "always blurred terminal" good/stable enough for installing it instead of the original one? I can't stand much more time in opaqueness too, Thanks in advance!
Author
Owner

@furby-tm commented on GitHub (Jan 24, 2022):

Yes funny enough I actually have been using that build as my daily driver. And sorry guys! I've been super busy!! You guys still want that build? Cleaned up pr?

@furby-tm commented on GitHub (Jan 24, 2022): Yes funny enough I actually have been using that build as my daily driver. And sorry guys! I've been super busy!! You guys still want that build? Cleaned up pr?
Author
Owner

@zadjii-msft commented on GitHub (Jan 24, 2022):

I would still love to see a (cleaned up 😉) PR

@zadjii-msft commented on GitHub (Jan 24, 2022): I would still love to see a (cleaned up 😉) PR
Author
Owner

@PabloRuizCuevas commented on GitHub (Jan 25, 2022):

Sure! and thanks for your reply @furby-tm! It would be amazing to have this feature implemented! Count on me if you need some help testing, or something.

@PabloRuizCuevas commented on GitHub (Jan 25, 2022): Sure! and thanks for your reply @furby-tm! It would be amazing to have this feature implemented! Count on me if you need some help testing, or something.
Author
Owner

@peos3 commented on GitHub (Feb 6, 2022):

@furby-tm Could you provide a working build? I cloned and built your repository, however, I was not able to reproduce the Acrylic Blur effect with an unfocused window. I tried it on Windows 10 (build 19043.1466) and with a recent Windows 11 installation. Do I have to pay attention to anything in particular? Interestingly, the whole thing works when I connect to the respective machine via RDP.

@peos3 commented on GitHub (Feb 6, 2022): @furby-tm Could you provide a working build? I cloned and built your repository, however, I was not able to reproduce the Acrylic Blur effect with an unfocused window. I tried it on Windows 10 (build 19043.1466) and with a recent Windows 11 installation. Do I have to pay attention to anything in particular? Interestingly, the whole thing works when I connect to the respective machine via RDP.
Author
Owner

@zadjii-msft commented on GitHub (Feb 7, 2022):

FWIW, when I looked through @furby-tm's fork, I didn't find anything that I would expect to actually fix this. I'm still under the impression that we'd need to roll our own fork of the acrylic brush, in the same way that Notepads does.

I have seen situations in debugging VMs where acrylic was always on (focused or not), but that seemed to be an artifact of the VM, and not something reproducible on a real machine. Perhaps that artifact is what made that fork seemingly work? Only way to know for sure is to get a PR going and test it put locally 😉

@zadjii-msft commented on GitHub (Feb 7, 2022): FWIW, when I looked through @furby-tm's fork, I didn't find anything that I would expect to actually fix this. I'm still under the impression that we'd need to roll our own fork of the acrylic brush, in the same way that Notepads does. I have seen situations in debugging VMs where acrylic was always on (focused or not), but that seemed to be an artifact of the VM, and not something reproducible on a real machine. Perhaps that artifact is what made that fork seemingly work? Only way to know for sure is to get a PR going and test it put locally 😉
Author
Owner

@zadjii-msft commented on GitHub (Jun 21, 2022):

Just some notes as we punt this one out:

  • After the recent change to have a fully transparent BG for the Terminal HWND, this is actually super trivial. Instead of using HostBackdrop acrylic, we can just achieve this with in-app acrylic, because the back of the app is transparent. It's like, a 1 LOC change.
  • Actually doing this requires a bit more work.
    • We need do to this with a setting to enable inactive acrylic, because of battery life concerns.
      • Should this be a global or per-profile setting? That's something to consider.
    • We need to also make sure we contemporaneously do #11092, to make sure that we can actually tell the Control layer to be transparent even in an unfocused appearance.
      • This could probably be done as a precursor PR to actually implementing allowUnfocusedAcrylic as a setting.
    • We should also consider that "Battery Saver Mode" should manually override this setting. See also #9600.
      • Though, if this were gonna come from a community member, I'm okay ignoring those concerns for now

If someone would like to help sort these things out all at once, we'd definitely appreciate the help.


Note

Walkthrough

  • I'd take a look at ControlAppearance.idl, and ControlProperties.h.
    • Move acrylic from CONTROL_SETTINGS to CONTROL_APPEARANCE_SETTINGS.
    • Add a CONTROL_SETTINGS for EnableUnfocusedAcrylic
  • In MTSMSettings.h,
    • add a new global boolean X(bool, EnableUnfocusedAcrylic, "comaptibility.enableUnfocusedAcrylic", true)
    • Similarly to above, move useAcrylic from MTSM_PROFILE_SETTINGS to MTSM_APPEARANCE_SETTINGS
  • Use the global setting when constructing a TerminalSettings in TerminalSettings::_ApplyAppearanceSettings
  • In TermControl.cpp, if EnableUnfocusedAcrylic is set, then switch the backdrop from acrylic.BackgroundSource(Media::AcrylicBackgroundSource::HostBackdrop); to Backdrop

I think that's it?

@zadjii-msft commented on GitHub (Jun 21, 2022): Just some notes as we punt this one out: * After the recent change to have a fully transparent BG for the Terminal HWND, this is actually super trivial. Instead of using HostBackdrop acrylic, we can just achieve this with in-app acrylic, because the back of the app _is transparent_. It's like, a 1 LOC change. * Actually doing this requires a bit more work. * We need do to this with a setting to enable inactive acrylic, because of battery life concerns. * Should this be a global or per-profile setting? That's something to consider. * We need to also make sure we contemporaneously do #11092, to make sure that we can actually tell the Control layer to be transparent even in an unfocused appearance. * This could probably be done as a precursor PR to actually implementing `allowUnfocusedAcrylic` as a setting. * We should also consider that "Battery Saver Mode" should manually override this setting. See also #9600. * Though, if this were gonna come from a community member, I'm okay ignoring those concerns for now If someone would like to help sort these things out all at once, we'd definitely appreciate the help. <hr> > **Note** > ## Walkthrough * I'd take a look at `ControlAppearance.idl`, and `ControlProperties.h`. * Move acrylic from `CONTROL_SETTINGS` to `CONTROL_APPEARANCE_SETTINGS`. * Add a `CONTROL_SETTINGS` for `EnableUnfocusedAcrylic` * In `MTSMSettings.h`, * add a new global boolean `X(bool, EnableUnfocusedAcrylic, "comaptibility.enableUnfocusedAcrylic", true)` * Similarly to above, move `useAcrylic` from `MTSM_PROFILE_SETTINGS` to `MTSM_APPEARANCE_SETTINGS` * Use the global setting when constructing a `TerminalSettings` in `TerminalSettings::_ApplyAppearanceSettings` * In `TermControl.cpp`, if `EnableUnfocusedAcrylic` is set, then switch the backdrop from `acrylic.BackgroundSource(Media::AcrylicBackgroundSource::HostBackdrop);` to `Backdrop` I think that's it?
Author
Owner

@trry-hub commented on GitHub (Feb 27, 2023):

Is there a solution now?

@trry-hub commented on GitHub (Feb 27, 2023): Is there a solution now?
Author
Owner

@fer1s commented on GitHub (Apr 20, 2023):

Some updates?

@fer1s commented on GitHub (Apr 20, 2023): Some updates?
Author
Owner

@zadjii-msft commented on GitHub (Apr 20, 2023):

Nope, nothing to add. We'll make sure to update this thread when there is. In the meantime, might I recommend the Subscribe button?
image
That way you'll be notified of any updates to this thread, without needlessly pinging everyone on this thread ☺️

We basically just need someone to take the notes I outlined above, and just do it. There hasn't been any time for us on the team to do it in the last year. I could write up more specific notes if someone was really interested on doing this themselves. Though, I'd caution - it'll likely be 95% annoying plumbing work, and 5% "just switch the backdrop to in-app acrylic"

@zadjii-msft commented on GitHub (Apr 20, 2023): Nope, nothing to add. We'll make sure to update this thread when there is. In the meantime, might I recommend the Subscribe button? ![image](https://user-images.githubusercontent.com/18356694/91237459-5cbb0c80-e700-11ea-9347-b9b1ec2813b1.png) That way you'll be notified of any updates to this thread, without needlessly pinging everyone on this thread ☺️ We basically just need someone to take the notes I outlined [above](https://github.com/microsoft/terminal/issues/7158#issuecomment-1162080143), and just do it. There hasn't been any time for us on the team to do it in the last year. I could write up more specific notes if someone was really interested on doing this themselves. Though, I'd caution - it'll likely be 95% annoying plumbing work, and 5% "just switch the backdrop to in-app acrylic"
Author
Owner

@MrShortcut commented on GitHub (May 10, 2023):

I am also an advanced user and I agree with everyone here, you want to at least keep the behavior when unfocused keep the acrilyc effect at least

@MrShortcut commented on GitHub (May 10, 2023): I am also an advanced user and I agree with everyone here, you want to at least keep the behavior when unfocused keep the acrilyc effect at least
Author
Owner

@St3fanBC commented on GitHub (May 17, 2023):

+1 on the "I would really like this feature" and make it a per user setting please.

@St3fanBC commented on GitHub (May 17, 2023): +1 on the "I would really like this feature" and make it a per user setting please.
Author
Owner

@AbdullahAlmanei commented on GitHub (May 19, 2023):

Hey @zadjii-msft! I am really interested in giving this a shot. I would love some tips and notes, as I am not extremely familiar with the Terminal repository. I have read the notes you shared earlier, and I believe I have a good idea of how to start. However, I would appreciate notes on what to look out for as I start working on this. Thanks!

@AbdullahAlmanei commented on GitHub (May 19, 2023): Hey @zadjii-msft! I am really interested in giving this a shot. I would love some tips and notes, as I am not extremely familiar with the Terminal repository. I have read the notes you shared earlier, and I believe I have a good idea of how to start. However, I would appreciate notes on what to look out for as I start working on this. Thanks!
Author
Owner

@Jaswir commented on GitHub (May 22, 2023):

Having things in Gifs describing the issue helps me.
Maybe it'll help get this solved faster:

Focussed-Unfocussed-Opacity

@Jaswir commented on GitHub (May 22, 2023): Having things in Gifs describing the issue helps me. Maybe it'll help get this solved faster: ![Focussed-Unfocussed-Opacity](https://github.com/microsoft/terminal/assets/15957528/97536c9d-9f46-4fc7-a1a2-f3c075bf40c7)
Author
Owner

@zadjii-msft commented on GitHub (May 25, 2023):

@AbdullahAlmanei Sorry, got bogged down with Build prep. Honestly, I think the notes just about cover it. The core implementation point of this (switching the AcrylicBrush in the TermControl from hostBackdrop to in-app acrylic) I think is a pretty straightforward change, it's just the plumbing of the settings that might be a bit tedious.

If I'm wrong though and you hit any snags, please feel free to ping me!

@zadjii-msft commented on GitHub (May 25, 2023): @AbdullahAlmanei Sorry, got bogged down with Build prep. Honestly, I think the notes just about cover it. The core implementation point of this (switching the `AcrylicBrush` in the `TermControl` from `hostBackdrop` to in-app acrylic) _I think_ is a pretty straightforward change, it's just the plumbing of the settings that might be a bit tedious. If I'm wrong though and you hit any snags, please feel free to ping me!
Author
Owner

@MrShortcut commented on GitHub (Jun 6, 2023):

@Jaswir The same behavior can be simulated if you make a cutout of the background when it is in acrylic, then in the active settings the background when the focus is not there, the only bad thing is that if you change the background of the desktop it will not have the same effect.

@MrShortcut commented on GitHub (Jun 6, 2023): @Jaswir The same behavior can be simulated if you make a cutout of the background when it is in acrylic, then in the active settings the background when the focus is not there, the only bad thing is that if you change the background of the desktop it will not have the same effect.
Author
Owner

@Jaswir commented on GitHub (Jul 23, 2023):

@AbdullahAlmanei

Are you working on this? Or? I would assume that since it's been about 2 months now I can savely assume you aren't?

This one seems like fun to me.

@Jaswir commented on GitHub (Jul 23, 2023): @AbdullahAlmanei Are you working on this? Or? I would assume that since it's been about 2 months now I can savely assume you aren't? This one seems like fun to me.
Author
Owner

@AbdullahAlmanei commented on GitHub (Jul 23, 2023):

@Jaswir
Not currently, would love to see what you will do with it!

@AbdullahAlmanei commented on GitHub (Jul 23, 2023): @Jaswir Not currently, would love to see what you will do with it!
Author
Owner

@Jaswir commented on GitHub (Jul 24, 2023):

start_plumbing

@Jaswir commented on GitHub (Jul 24, 2023): ![start_plumbing](https://github.com/microsoft/terminal/assets/15957528/1da3955e-7bea-4320-b3f0-caf8ca1e463e)
Author
Owner

@MitchTalmadge commented on GitHub (Jul 24, 2023):

Amazing. Great work @Jaswir

@MitchTalmadge commented on GitHub (Jul 24, 2023): Amazing. Great work @Jaswir
Author
Owner

@Jaswir commented on GitHub (Jul 24, 2023):

It's the plumbing that's the hard part ... Don't get too excited yet, this was the easy part. But any positive feedback will help motivate me <3

@Jaswir commented on GitHub (Jul 24, 2023): It's the plumbing that's the hard part ... Don't get too excited yet, this was the easy part. But any positive feedback will help motivate me <3
Author
Owner

@MitchTalmadge commented on GitHub (Jul 24, 2023):

Sure -- but if you get stuck I'm sure someone would be happy to pick up where you left off :) Seeing that it's possible at all is the most important thing.

Do we have a consensus on which options to change/add? This will change existing behavior, so I wonder if we need to find a way to migrate previous users in such a way that it won't change for them. For example, maybe two settings:

  • Focused Window Appearance: Acrylic/Solid
  • Unfocused Window Appearance: Acrylic/Solid

Then we can migrate the existing users to Focused:Acrylic, Unfocused:Solid. These two options also give more customization; for example I suspect a lot of people will want it reversed -- have it be solid when focused, acrylic when unfocused.

And then of course for low power mode / battery saver, we override and choose Solid always.

Just my two cents -- I have no authority in the matter.

@MitchTalmadge commented on GitHub (Jul 24, 2023): Sure -- but if you get stuck I'm sure someone would be happy to pick up where you left off :) Seeing that it's possible at all is the most important thing. Do we have a consensus on which options to change/add? This will change existing behavior, so I wonder if we need to find a way to migrate previous users in such a way that it won't change for them. For example, maybe two settings: - Focused Window Appearance: Acrylic/Solid - Unfocused Window Appearance: Acrylic/Solid Then we can migrate the existing users to Focused:Acrylic, Unfocused:Solid. These two options also give more customization; for example I suspect a lot of people will want it reversed -- have it be solid when focused, acrylic when unfocused. And then of course for low power mode / battery saver, we override and choose Solid always. Just my two cents -- I have no authority in the matter.
Author
Owner

@Jaswir commented on GitHub (Jul 28, 2023):

Hi Folks,

Thanks for the positive feedback.
Thought I'd keep you in the loop and send an update on the progress.
Did part of the plumbing and this is what I got so far.

plumbing_global_done_maybe_share_92

I am just a contributor for authority related stuff chat with @zadjii-msft

@Jaswir commented on GitHub (Jul 28, 2023): Hi Folks, Thanks for the positive feedback. Thought I'd keep you in the loop and send an update on the progress. Did part of the plumbing and this is what I got so far. ![plumbing_global_done_maybe_share_92](https://github.com/microsoft/terminal/assets/15957528/3c42d99a-67de-4145-bf41-ce3995035136) I am just a contributor for authority related stuff chat with @zadjii-msft
Author
Owner

@Jaswir commented on GitHub (Jul 28, 2023):

The same behavior can be simulated if you make a cutout of the background when it is in acrylic, then in the active settings the background when the focus is not there, the only bad thing is that if you change the background of the desktop it will not have the same effect.

@MrShortcut Making a cutout of the background what do you mean? I don't understand. I want to test whether this case is handled as well.

@Jaswir commented on GitHub (Jul 28, 2023): > The same behavior can be simulated if you make a cutout of the background when it is in acrylic, then in the active settings the background when the focus is not there, the only bad thing is that if you change the background of the desktop it will not have the same effect. @MrShortcut Making a cutout of the background what do you mean? I don't understand. I want to test whether this case is handled as well.
Author
Owner

@MrShortcut commented on GitHub (Jul 31, 2023):

The same behavior can be simulated if you make a cutout of the background when it is in acrylic, then in the active settings the background when the focus is not there, the only bad thing is that if you change the background of the desktop it will not have the same effect.

@MrShortcut Making a cutout of the background what do you mean? I don't understand. I want to test whether this case is handled as well.

Recortes as screenshot of your bg in the desktop

@MrShortcut commented on GitHub (Jul 31, 2023): > > The same behavior can be simulated if you make a cutout of the background when it is in acrylic, then in the active settings the background when the focus is not there, the only bad thing is that if you change the background of the desktop it will not have the same effect. > > @MrShortcut Making a cutout of the background what do you mean? I don't understand. I want to test whether this case is handled as well. Recortes as screenshot of your bg in the desktop
Author
Owner

@Jaswir commented on GitHub (Jul 31, 2023):

@MrShortcut

Recortes as screenshot of your bg in the desktop

??? Can you/someone show this with a gif or something please

@Jaswir commented on GitHub (Jul 31, 2023): @MrShortcut > Recortes as screenshot of your bg in the desktop ??? Can you/someone show this with a gif or something please
Author
Owner

@MitchTalmadge commented on GitHub (Jul 31, 2023):

It's not a feature, @MrShortcut is making a suggestion of a hacky workaround for a fake "acrylic blur" (take a screenshot of your desktop, then blur it in e.g. Photoshop, and set it as a photo background). Not something you need to worry about. It was just a suggestion for a way to make the window still look blurred until the actual blur-while-inactive feature that you're working on was implemented.

@MitchTalmadge commented on GitHub (Jul 31, 2023): It's not a feature, @MrShortcut is making a suggestion of a hacky workaround for a fake "acrylic blur" (take a screenshot of your desktop, then blur it in e.g. Photoshop, and set it as a photo background). Not something you need to worry about. It was just a suggestion for a way to make the window still look blurred until the actual blur-while-inactive feature that you're working on was implemented.
Author
Owner

@Cellhawk commented on GitHub (Aug 1, 2023):

Hey people, user here... What about making an option to have the window go non-blur transparent when unfocused, instead of solid?

@Cellhawk commented on GitHub (Aug 1, 2023): Hey people, user here... What about making an _option_ to have the window go non-blur transparent when unfocused, instead of solid?
Author
Owner

@zadjii-msft commented on GitHub (Aug 1, 2023):

That is like, literally what this thread is about.

@zadjii-msft commented on GitHub (Aug 1, 2023): That is like, literally what this thread is about.
Author
Owner

@Cellhawk commented on GitHub (Aug 1, 2023):

That is like, literally what this thread is about.

As far as I am aware, the thread is about keeping the blur when unfocused. I am talking about switching from blur to no blur (clear transparent), when unfocused. That way, it would still fall into the system wide specifications, as (temporary) alternative.

Basically have an option for "When unfocused, switch background to:"

  1. Solid
  2. Transparent (without AcrylicBlur effect)
@Cellhawk commented on GitHub (Aug 1, 2023): > That is like, literally what this thread is about. As far as I am aware, the thread is about keeping the blur when unfocused. I am talking about switching from blur to no blur (clear transparent), when unfocused. That way, it would still fall into the system wide specifications, as (temporary) alternative. Basically have an option for "When unfocused, switch background to:" 1. Solid 2. Transparent (without AcrylicBlur effect)
Author
Owner

@zadjii-msft commented on GitHub (Aug 1, 2023):

Good point! I mixed up the two threads. They've become so intertwined in my head that I forgot that we never de-duped them! That's what I get for triaging before having enough coffee.

  • This thread was correctly about allowing acrylic when unfocused.
  • #11092 was about enabling opacity as both an appearance setting, allowing it to be set differently in both focused and unfocused terminals.

The two have become entirely intertwined, and I forgot they didn't get merged. My b.

  • We need to move UseAcrylic (from here: a4340af1e7/src/cascadia/TerminalControl/IControlSettings.idl (L34)) into IControlAppearance, next to Opacity.
  • We need to enlighten the TermControl to reload both opacity and acrylic when the focus state changes.
  • We need to add a global setting that controls if unfocused acrylic is possible
    • So that people can disable that behavior.
    • If that's disabled, and they've got useAcrylic in their profile's unfocused appearance settings, then we'll just treat that as solid (? or vintage full transparancy? tbd.)
  • We need to move the plumbing for UseAcrylic in the profile settings (from a4340af1e7/src/cascadia/TerminalSettingsModel/MTSMSettings.h (L75C21-L75C21)) to MTSM_APPEARANCE_SETTINGS

All together, that will allow the full matrix of (acrylic or vintage) x (some amount of transparancy) x (for a focused or unfocused terminal).

Sorry for the confusion!

@zadjii-msft commented on GitHub (Aug 1, 2023): Good point! I mixed up the two threads. They've become so intertwined in my head that I forgot that we never de-duped them! That's what I get for triaging before having enough coffee. * **This thread** was correctly about allowing acrylic when unfocused. * #11092 was about enabling `opacity` as both an _appearance_ setting, allowing it to be set differently in both focused and unfocused terminals. The two have become entirely intertwined, and I forgot they didn't get merged. My b. * We need to move UseAcrylic (from here: https://github.com/microsoft/terminal/blob/a4340af1e79914c11cd3f268b34650f050557a2b/src/cascadia/TerminalControl/IControlSettings.idl#L34) into `IControlAppearance`, next to `Opacity`. * We need to enlighten the TermControl to reload both opacity and acrylic when the focus state changes. * We need to add a global setting that controls if unfocused acrylic is possible * So that people can disable that behavior. * If that's disabled, and they've got useAcrylic in their profile's unfocused appearance settings, then we'll just treat that as _solid_ (? or vintage full transparancy? tbd.) * We need to move the plumbing for `UseAcrylic` in the profile settings (from https://github.com/microsoft/terminal/blob/a4340af1e79914c11cd3f268b34650f050557a2b/src/cascadia/TerminalSettingsModel/MTSMSettings.h#L75C21-L75C21) to `MTSM_APPEARANCE_SETTINGS` All together, that will allow the full matrix of (acrylic or vintage) x (some amount of transparancy) x (for a focused or unfocused terminal). Sorry for the confusion!
Author
Owner

@MitchTalmadge commented on GitHub (Aug 1, 2023):

Hey people, user here... What about making an option to have the window go non-blur transparent when unfocused, instead of solid?

That's a good idea, maybe a nice way to implement it would be to add a third option, "transparent," to the two additional settings I proposed here: https://github.com/microsoft/terminal/issues/7158#issuecomment-1648326305

@MitchTalmadge commented on GitHub (Aug 1, 2023): > Hey people, user here... What about making an _option_ to have the window go non-blur transparent when unfocused, instead of solid? That's a good idea, maybe a nice way to implement it would be to add a third option, "transparent," to the two additional settings I proposed here: https://github.com/microsoft/terminal/issues/7158#issuecomment-1648326305
Author
Owner

@zadjii-msft commented on GitHub (Aug 1, 2023):

I mean, that's basically the same. Goal here is basically:

"profiles":
{
    "list":
    [
        {
            "commandline": "pwsh.exe",
            "name": "A",
            "unfocusedAppearance":
            {
                "useAcrylic": false,
                "opacity": 100,
            },
            "useAcrylic": true,
            "opacity": 50,
        },
        {
            "commandline": "pwsh.exe",
            "name": "B",
            "unfocusedAppearance":
            {
                "useAcrylic": true,
                "opacity": 50,
            },
            "useAcrylic": true,
            "opacity": 50,
        },
        {
            "commandline": "pwsh.exe",
            "name": "C",
            "unfocusedAppearance":
            {
                "useAcrylic": true,
                "opacity": 50,
            },
            "useAcrylic": false,
            "opacity": 100,
        },
        {
            "commandline": "pwsh.exe",
            "name": "D",
            "unfocusedAppearance":
            {
                "useAcrylic": true,
                "opacity": 0,
            },
            "useAcrylic": false,
            "opacity": 0,
        },
    ]
}
  • A: possible today. 50% transparent acrylic when focused, otherwise, opaque.
  • B: 50% transparent acrylic always.
  • C: Unfocused is 50% transparent acrylic, focused is fully opaque.
  • D: Why the hell not. Fully transparent when focused, "fully transparent acrylic" when unfocused.

Or literally any other permutation.

@zadjii-msft commented on GitHub (Aug 1, 2023): I mean, that's basically the same. Goal here is basically: ```json "profiles": { "list": [ { "commandline": "pwsh.exe", "name": "A", "unfocusedAppearance": { "useAcrylic": false, "opacity": 100, }, "useAcrylic": true, "opacity": 50, }, { "commandline": "pwsh.exe", "name": "B", "unfocusedAppearance": { "useAcrylic": true, "opacity": 50, }, "useAcrylic": true, "opacity": 50, }, { "commandline": "pwsh.exe", "name": "C", "unfocusedAppearance": { "useAcrylic": true, "opacity": 50, }, "useAcrylic": false, "opacity": 100, }, { "commandline": "pwsh.exe", "name": "D", "unfocusedAppearance": { "useAcrylic": true, "opacity": 0, }, "useAcrylic": false, "opacity": 0, }, ] } ``` * **A**: possible today. 50% transparent acrylic when focused, otherwise, opaque. * **B**: 50% transparent acrylic always. * **C**: Unfocused is 50% transparent acrylic, focused is fully opaque. * **D**: Why the hell not. Fully transparent when focused, "fully transparent _acrylic_" when unfocused. Or literally any other permutation.
Author
Owner

@MitchTalmadge commented on GitHub (Aug 1, 2023):

That looks fantastic. I love that configuration scheme.

@MitchTalmadge commented on GitHub (Aug 1, 2023): That looks fantastic. I love that configuration scheme.
Author
Owner

@MrShortcut commented on GitHub (Aug 2, 2023):

It's not a feature, @MrShortcut is making a suggestion of a hacky workaround for a fake "acrylic blur" (take a screenshot of your desktop, then blur it in e.g. Photoshop, and set it as a photo background). Not something you need to worry about. It was just a suggestion for a way to make the window still look blurred until the actual blur-while-inactive feature that you're working on was implemented.

exactly the alternative solution for me, use the powershell in full screen (ALT+ENTER), focus the terminal, take screenshot, save the screenshot, and use the screenshot as background in powershell, hacky method while the main feature unfocusedAcrilicBlur is ready an deployed.

@MrShortcut commented on GitHub (Aug 2, 2023): > It's not a feature, @MrShortcut is making a suggestion of a hacky workaround for a fake "acrylic blur" (take a screenshot of your desktop, then blur it in e.g. Photoshop, and set it as a photo background). Not something you need to worry about. It was just a suggestion for a way to make the window still look blurred until the actual blur-while-inactive feature that you're working on was implemented. exactly the alternative solution for me, use the powershell in full screen (ALT+ENTER), focus the terminal, take screenshot, save the screenshot, and use the screenshot as background in powershell, hacky method while the main feature unfocusedAcrilicBlur is ready an deployed.
Author
Owner

@Jaswir commented on GitHub (Aug 5, 2023):

@0x7c13

So are you like the actual inventor of Notepad ??? :O

@Jaswir commented on GitHub (Aug 5, 2023): @0x7c13 So are you like the actual inventor of Notepad ??? :O
Author
Owner

@Jaswir commented on GitHub (Aug 7, 2023):

Update: the plumbing is going well!

@Jaswir commented on GitHub (Aug 7, 2023): Update: the plumbing is going well!
Author
Owner

@MrShortcut commented on GitHub (Aug 10, 2023):

with the hacky method my powershell looks like this
image

@MrShortcut commented on GitHub (Aug 10, 2023): with the hacky method my powershell looks like this ![image](https://github.com/microsoft/terminal/assets/111198238/db585e91-48df-4d74-92fd-54f0aab364e9)
Author
Owner

@Jaswir commented on GitHub (Aug 10, 2023):

Got the plumbing done and working now AFAIK! Ofcourse, you'll only see it working when I apply/implement THAT functionality and send a gif of that :D

@Jaswir commented on GitHub (Aug 10, 2023): Got the plumbing done and working now AFAIK! Ofcourse, you'll only see it working when I apply/implement `THAT `functionality and send a gif of that :D
Author
Owner

@Jaswir commented on GitHub (Aug 21, 2023):

Thought I'd send you an update.

Acrylic focused, non acrylic unfocused:
acrylic_foc_transparent_unfo2

image

Functionality for different acrylic in focused and unfocused is there, code really ugly though ;) (also some bugs probably).

@Jaswir commented on GitHub (Aug 21, 2023): Thought I'd send you an update. Acrylic focused, non acrylic unfocused: ![acrylic_foc_transparent_unfo2](https://github.com/microsoft/terminal/assets/15957528/729f5049-860f-42ba-8d76-6ba68c7a4eb2) ![image](https://github.com/microsoft/terminal/assets/15957528/6efde49d-af98-4f81-bbd4-df84066656ac) Functionality for different acrylic in focused and unfocused is there, code really ugly though ;) (also some bugs probably).
Author
Owner

@Jaswir commented on GitHub (Sep 2, 2023):

image

A hero was born 😎

It took a while but they say if you’re patient you’ll be rewarded.
Funny thing is I am not patient at all.

Anyway after 3 years there you go ;)

PS:
This PR is split up in two parts #7158 covers allowing Acrylic to be set differently in both focused and unfocused terminals. And EnableUnfocusedAcrylic Global Setting that controls if unfocused acrylic is possible so that people can disable that behavior.

#11092 will be about enabling opacity as both an appearance setting, allowing it to be set differently in both focused and unfocused terminals. The other part of this PR I will cover in 11092

@Jaswir commented on GitHub (Sep 2, 2023): ![image](https://github.com/microsoft/terminal/assets/15957528/bc891ec3-96d1-4ca4-af0a-487318c8871c) A hero was born 😎 It took a while but they say if you’re patient you’ll be rewarded. Funny thing is I am not patient at all. Anyway after 3 years there you go ;) PS: This PR is split up in two parts #7158 covers allowing Acrylic to be set differently in both focused and unfocused terminals. And EnableUnfocusedAcrylic Global Setting that controls if unfocused acrylic is possible so that people can disable that behavior. #11092 will be about enabling opacity as both an appearance setting, allowing it to be set differently in both focused and unfocused terminals. The other part of this PR I will cover in 11092
Author
Owner

@Jaswir commented on GitHub (Sep 7, 2023):

So there's 2 brushes to make the terminal Acrylic: Backdrop and HostBackDrop.
The Backdrop brush is used to make the unfocused terminal have Acrylic.

I noticed they're somewhat different the HostBackdrop one is brighter and it's more transparent sometimes in the edges. This is the default behaviour of the brushes not much I can do about it. But can use the Backdrop only for unfocused terminals

Which one you like better? I posted them below so you can vote.

@Jaswir commented on GitHub (Sep 7, 2023): So there's 2 brushes to make the terminal Acrylic: Backdrop and HostBackDrop. The Backdrop brush is used to make the unfocused terminal have Acrylic. I noticed they're somewhat different the HostBackdrop one is brighter and it's more transparent sometimes in the edges. This is the default behaviour of the brushes not much I can do about it. But can use the Backdrop only for unfocused terminals Which one you like better? I posted them below so you can vote.
Author
Owner

@mpusch88 commented on GitHub (Sep 7, 2023):

HostBackdrop looks better in my opinion - I take it there is no way to implement that for unfocused as well?

Keep up the good work!

@mpusch88 commented on GitHub (Sep 7, 2023): HostBackdrop looks better in my opinion - I take it there is no way to implement that for unfocused as well? Keep up the good work!
Author
Owner

@Jaswir commented on GitHub (Sep 7, 2023):

A: has HostBackdrop for focused and Backdrop to make unfocused Acrylic work
edgecase_backdrop_acrylic

@Jaswir commented on GitHub (Sep 7, 2023): A: has HostBackdrop for focused and Backdrop to make unfocused Acrylic work ![edgecase_backdrop_acrylic](https://github.com/microsoft/terminal/assets/15957528/14eab766-17bf-40c4-a37f-825ca3fd1343)
Author
Owner

@Jaswir commented on GitHub (Sep 7, 2023):

B: has Backdrop for focused and unfocused
edgecase_backdrop_acrylic_option_old

@Jaswir commented on GitHub (Sep 7, 2023): B: has Backdrop for focused and unfocused ![edgecase_backdrop_acrylic_option_old](https://github.com/microsoft/terminal/assets/15957528/f3aa1688-09c6-4fe1-87f7-aeab0154db6d)
Author
Owner

@Jaswir commented on GitHub (Sep 7, 2023):

HostBackdrop looks better in my opinion - I take it there is no way to implement that for unfocused as well?

Keep up the good work!

No

@Jaswir commented on GitHub (Sep 7, 2023): > HostBackdrop looks better in my opinion - I take it there is no way to implement that for unfocused as well? > > Keep up the good work! No
Author
Owner

@apaydev commented on GitHub (Sep 7, 2023):

So, this was already merged. May be a bit of a dumb question, but, do we need to wait for an update so that this is available, or can we just take some code and slap it into the settings.json file?

@apaydev commented on GitHub (Sep 7, 2023): So, this was already merged. May be a bit of a dumb question, but, do we need to wait for an update so that this is available, or can we just take some code and slap it into the settings.json file?
Author
Owner

@Jaswir commented on GitHub (Sep 8, 2023):

@ADPenrose

You can always git clone the developer version from here: https://github.com/microsoft/terminal
And build and run it using the READMe.md. If you really wanna try it out.

For more information about when the update will be available exactly in the Terminal Preview version @zadjii-msft can help with that and @DHowett too I think .

@Jaswir commented on GitHub (Sep 8, 2023): @ADPenrose You can always git clone the developer version from here: https://github.com/microsoft/terminal And build and run it using the READMe.md. If you really wanna try it out. For more information about when the update will be available exactly in the Terminal Preview version @zadjii-msft can help with that and @DHowett too I think .
Author
Owner

@shanevogue commented on GitHub (Sep 11, 2023):

Amazing! Thank you! Great Work!

@shanevogue commented on GitHub (Sep 11, 2023): Amazing! Thank you! Great Work!
Author
Owner

@Jaswir commented on GitHub (Sep 13, 2023):

For updates on allowing opacity to be set differently in both focused and unfocused terminals.
I suggest subscribing to:
https://github.com/microsoft/terminal/issues/11092

@Jaswir commented on GitHub (Sep 13, 2023): For updates on allowing opacity to be set differently in both focused and unfocused terminals. I suggest subscribing to: https://github.com/microsoft/terminal/issues/11092
Author
Owner

@Jaswir commented on GitHub (Sep 26, 2023):

@ADPenrose
Guess what's going to be released today! :
https://github.com/microsoft/terminal/releases

@Jaswir commented on GitHub (Sep 26, 2023): @ADPenrose Guess what's going to be released today! : https://github.com/microsoft/terminal/releases
Author
Owner

@apaydev commented on GitHub (Sep 26, 2023):

@Jaswir You just made my day haha! Thanks a lot c:

@apaydev commented on GitHub (Sep 26, 2023): @Jaswir You just made my day haha! Thanks a lot c:
Author
Owner

@schm1dtmac commented on GitHub (Jan 27, 2024):

@Jaswir Any idea if these changes could also be extended to tab-row Acrylic, or would that require a substantial amount of additional work beyond what was already implemented for window background Acrylic? (Not sure whether this would go in a separate issue or not though)

@schm1dtmac commented on GitHub (Jan 27, 2024): @Jaswir Any idea if these changes could also be extended to tab-row Acrylic, or would that require a substantial amount of additional work beyond what was already implemented for window background Acrylic? (Not sure whether this would go in a separate issue or not though)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#9976