hyprwm / Hypr

Hypr is a tiling window manager written in modern C++.
BSD 3-Clause "New" or "Revised" License
1.06k stars 32 forks source link

Picom transparency isnt applied to inactive windows #64

Closed ExperiBass closed 2 years ago

ExperiBass commented 2 years ago

Please describe the bug Picoms transparency is only applied to the active window.

Steps to reproduce:

Expected behavior Picoms opacity should be applied.

Screenshots image

i3:

2022-Apr-13-15-35-05

vaxerski commented 2 years ago

can't you like... set opacity for all to X and opacity for active to Y? Because the WM does everything it should EWMH-wise to signify which window is active.

ExperiBass commented 2 years ago

that i don't know, I'm not that knowledgeable in picom but i dont see a transparency option to affect all windows, just active and inactive.

vaxerski commented 2 years ago

that I do not know either, it was a question after all. I don't think hypr is missing any EWMH stuff for inactive windows

aarchangel64 commented 2 years ago

can't you like... set opacity for all to X and opacity for active to Y? Because the WM does everything it should EWMH-wise to signify which window is active.

You can do this in picom by setting active-opacity = 1.0; and wintypes as follows:

wintypes: {
    normal = { opacity = 0.5 };
};

However, doing this now has the opposite problem, where the active window's opacity isn't set:

Screenshot_20220419_220914

vaxerski commented 2 years ago

As I'm looking through picom's source, it seems that it uses xprop -root -notype -f _NET_ACTIVE_WINDOW 32x '$0' _NET_ACTIVE_WINDOW which should work, and indeed does for me:

image

maybe try yshui/picom-next? It's the most recent picom fork.

vaxerski commented 2 years ago

Found it. Use

use-ewmh-active-win=true

in picom.conf.

I've also pushed a small update to support one more active atom.

aarchangel64 commented 2 years ago

Also make sure to set mark-ovredir-focused = false; if it's set to true, I had this accidentally enabled.