chjj / compton

A compositor for X11.
Other
2.25k stars 503 forks source link

add opacity-exclude? #260

Open ljrk0 opened 9 years ago

ljrk0 commented 9 years ago

UPDATE/SUMMARY:

Is it possible to add opacity-exclude? As you said, opacity-rule may break EWMH, but would a opacity-exclude do so, too?

It would make the scenario I described below possible without breaking EWMH.


Hello,

I've searched through many issues hear but don't find a more or less suitable solution. Maybe I just was blind.

What my problem is, is that I want to specify to which windows the transperency settings should be applied or sth. similar. just doing

opacity-rule = [ "80:name *='NAME'" ];

does not do the trick as I want compton to distinguish between active and inactive. Is this possible?

Or do I need to make a list of all GUI-Apps I use and set their transperency to 99 via opacity rule (or via focuse-exclude)? (I don't use that many GUI-Apps anyhow)

ljrk0 commented 9 years ago

I have to say, I was dumb ;-) There is such an easy solution to this (whoevery may wants to read this):

opacity-rule = [ "80:name ='leonard' && !focused", "100:name='leonard' && focused"]

and "standard" opacity just to 1.

Maybe there's a more easy solution to this. Let me hear, if it isn't time consuming for you. Else, just close the issue ;-)

richardgv commented 9 years ago

Sorry for the late reply, firstly.

An alternative solution is something like -i 0.5 + --focus-exclude '! class_g = "Firefox"', or if you have more one application to match, --focus-exclude '!(class_g = "Firefox" || class_g = "URxvt")'.

Honestly I didn't realize --opacity-rule could be used in that way... :-D Be careful, it breaks _NET_WM_WINDOW_OPACITY support, if the application, WM, or some other tools try to set it.

ljrk0 commented 9 years ago

UPDATE:

Sadly, with focus-exclude I can't set opacity for focused windows to 0.9 without making every window transparent. Thus I need to stick with opacity-rule :/


I'm on i3, so I hope there's no app that might do that^^. I'll try your solution though, it seems to be more "clean". Does focus-exclude affect the performance (like transperency is rendered but just not displayed, as app is on exlude list)?

Anyway, thanks for the reply, I don't think it you are to blame for a late one ;-). I understand it when one is not always too interested in reading through the issues :P

ljrk0 commented 9 years ago

I deleted the updates as they resolved themselves after updating to the latest git version.

richardgv commented 9 years ago

I would prefer you to avoid adding important information to an already-published post, unless you explicitly mention your changes in a new reply. It's just too easy to miss your modifications to the body of the issue.

Does focus-exclude affect the performance (like transperency is rendered but just not displayed, as app is on exlude list)?

No. A (transparent, or opaque) window is rendered only if it's going to be displayed.

Sadly, with focus-exclude I can't set opacity for focused windows to 0.9 without making every window transparent.

Well, that's true. I would recommend against making focused window semi-transparent, by the way: It's more often a distraction/annoyance.

Is it possible to add opacity-exclude? As you said, opacity-rule may break EWMH, but would a opacity-exclude do so, too?

Sorry, I don't really understand what --opacity-exclude is...

ljrk0 commented 9 years ago

I would prefer you to avoid adding important information to an already-published post, unless you explicitly mention your changes in a new reply. It's just too easy to miss your modifications to the body of the issue.

No problem, won't do it again ;-)

Well, that's true. I would recommend against making focused window semi-transparent, by the way: It's more often a distraction/annoyance.

Not for me ;-).

Sorry, I don't really understand what --opacity-exclude is...

As mentioned in the OP (I added it afterwards, won't do so again ^^): I want to have active terminals have opacity 0.9, inactive terminals 0.7. This is only possible (yet?) with opacity-rule - but this breaks _NET_WM_WINDOW_OPACITY support. So I propose a opacity-exclude so you can have something like that:

inactive-opacity = 0.7;
active-opacity = 0.9;
opacity-exlude = [ "class_g = 'SOMETERMINAL'" ];

to make the same things happen - but (maybe?) without breaking _NET_WM_WINDOW_OPACITY. Additionally it makes it all more consistent, as we already have shadow-exlude, fade-exclude, focus-exclude, etc.

agauniyal commented 8 years ago

opacity-exclude: Status?

yshui commented 6 years ago

@agauniyal Hello, with yshui/compton@30c14c06d2eef008a7eeb3c0e23d8a08c8ba37e1 (i.e. the opacity branch), you should be able to set opacity to 100 with opacity-rule. If you can try that and report back, that will be much appreciated.