microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
110.18k stars 6.49k forks source link

Make windows Acrylic / Transparent #1084

Open jt-github opened 4 years ago

jt-github commented 4 years ago

Summary of the new feature/enhancement

It would be so awesome (if not necessarily easy to code) to be able to select areas of ANY application that you wanted to make acrylic.

Example: "Acrylicize" Outlook so that everything but the list of messages and the message frame was transparent with a blurred background to help focus the user on what matters (just the next evolution from using the dark theme with it).

Proposed technical implementation details

Such a PowerToy would allow:

  1. Selecting an app
  2. Selecting one or more areas to modify
  3. Seting transparency, blur, tint, and/or other visual effects to be applied to the objects seen through those elements, possibly with some presets like "Windows Acrylic", of course
  4. Selecting what the transparent areas reveal:
    1. The applications beneath it (the way Windows does such things currently)
    2. The desktop background (act as if applications beneath it do not exist)
    3. The applications beneath it when not maximized and the desktop background when maximized (I suggest this be the default because it's awesome)
  5. Enabling/disabling per app (and remember settings while disabled)
  6. Resetting settings per app (to go back to defaults in case things get weird)
  7. Changes to be saved across application close/open and system restarts, of course.
  8. Starting automatically with Windows as a service, etc.

A user should never have to draw areas that should be affected but rather select existing window elements both on classic/legacy applications and UWP apps, just as developers are currently used to doing when using "developer mode" on all modern browsers.

This will obviously cause some serious redraw and possibly some performance issues, so there should probably be warnings to that effect.

jt-github commented 4 years ago

I wrote the original idea on: https://docs.microsoft.com/en-us/windows/uwp/design/style/acrylic (which shows off acrylic's awesomeness, too)

crutkas commented 4 years ago

this would have a big impact on battery life and based on how you're talking about this, we'd have to DOM inspect / inject into the app. That could be ... hard

jt-github commented 4 years ago

It would definitely require more horsepower and yeah, I assumed coding it would be a challenging effort just because of the inspection/injection required, but if any team could pull it off, it's the @powertoys team! :)

prakharb5 commented 3 years ago

There is an old app named Glass8K or something which has ability to turn any app to partly transparent. It can change a window opacity. But it is abandoned sadly. It would be great if simething like that could be implemented.

jt-github commented 3 years ago

Yes, that's Glass2K (as in The Year 2000, probably) by Chime Software and, amazingly, it still works on the latest version of Windows 10, but controlling opacity is only half the game. It's the acrylic affect specifically (that adds in blurring, etc. on top of transparency) that I would love to apply to all windows except the active one.

prakharb5 commented 3 years ago

Yes, that's Glass2K (as in The Year 2000, probably) by Chime Software

Whoops! 😅

COLEplusTEN commented 3 years ago

So did we say screw it?

jt-github commented 3 years ago

I vote for no involvement of spirally grooved solid metal cylinders, but I can totally understand if this is shoved into a backlog since the OS itself doesn't support this (at least natively).

jt-github commented 1 year ago

@gileli121, sorry your post got removed, and I won't mention the name of your app in hopes that I won't also be censored, but it is a cool looking, very full-featured app. Unfortunately, it still uses the old Windows 2000-style of transparency, which is just that: transparency alone. Again, this is a limitation of the OS rather than your app. What I am (and I assume others are) really hoping for is an acrylic effect that can be applied to any window: transparency plus blurring of anything beneath it. In my case, I want everything to have that effect that is not the current foreground window (stacked acrylic for the win!).

Mica in Windows 11 is a lower-power weak-sauce version of acrylic (it uses a pre-blurred background, ignoring windows behind the app), but even that would be pretty neat if it could be applied to as many windows as desired.

MolotovCherry commented 1 year ago

I know I don't speak for the author of this issue, but I'd even initially be happy with a simplified "do the whole window" approach. I am sure if more detailed features are desired (such as sections of windows, etc), it could be added later as well.

If anyone decides to go for this, I'd just rather have something that works right now, even if it's fairly basic features at first.

Anyways, something to enable acrylic on any window is a must!

MolotovCherry commented 1 year ago

Edit: Blanking out this comment since it seems no longer relevant

MolotovCherry commented 1 year ago

@MolotovCherry You know what, you are right. I removed the problematic part of my message. Now it should be better. I did not write any name or link to my app. It is just an example that what you ask is possible to implement

Thanks for sharing possible implementation ideas 🙂

CommandPrompt-Wang commented 1 year ago

https://user-images.githubusercontent.com/62493399/208224540-c49b103c-bcf7-4005-b0ec-4f6f6a193655.mp4

image

like these above?

during my test, i found the function requires ADMIN.

in the video, the program uses SetLayeredWindowAttributes() ->https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setlayeredwindowattributes?redirectedfrom=MSDN

and the most important part is the following:

SetLayeredWindowAttributes(hwnd,RGB(0,0,0),(BYTE) [Transparence Here] ,LWA_ALPHA);
//LWA_ALPHA told this function only focus on the 3rd parameter, 'balpha'

souce here:Documents.zip

Maybe this would help

once again, it reqires ADMIN

cjwijtmans commented 1 year ago

recordedVideo_x264.mp4

image

Off-topic... but what cursor is that?

Kuithei commented 4 months ago

I would use it with a text editor in prolonged typing sessions to be able to avoid burn-in to my display, playing backround video in full screen and have the text/code on top by Always On Top.

A 55KB discontinued freeware from the dark ages (2001) called Glass2k seems to still do the trick on windows 11 Home

solarite1797 commented 3 months ago

bump + lgtm