diff options
| author | allusive-dev <[email protected]> | 2023-11-04 17:49:36 +1100 |
|---|---|---|
| committer | allusive-dev <[email protected]> | 2023-11-04 17:49:36 +1100 |
| commit | 927c507effb47b35fd4d98c4818fb64f96d5bf5e (patch) | |
| tree | 8a8b6162f4b61040ef61d0ebd39d24ca12435bd9 | |
| parent | updated default values (diff) | |
| download | compfy-927c507effb47b35fd4d98c4818fb64f96d5bf5e.tar.xz compfy-927c507effb47b35fd4d98c4818fb64f96d5bf5e.zip | |
added inactive and active opacity exclude lists
| -rw-r--r-- | picom.sample.conf | 13 | ||||
| -rw-r--r-- | src/win.c | 42 |
2 files changed, 44 insertions, 11 deletions
diff --git a/picom.sample.conf b/picom.sample.conf index bcd7849..7111256 100644 --- a/picom.sample.conf +++ b/picom.sample.conf @@ -1,6 +1,6 @@ # Enables patches for specific window managers. -# Currently patched: "awesome", "dwm" +# Currently patched: "awesome", "dwm", "herb" wm-support = "none"; ################################# @@ -102,7 +102,11 @@ shadow-offset-y = -15; # FADING IS REQUIRED FOR CLOSING ANIMATIONS fading = true; -# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# +# CHANGING FADING SETTINGS MAKE A BIG DIFFERENCE TO HOW ANIMATIONS APPEAR. ITS NOT RECCOMENDED TO CHANGE FADE SETTINGS. +# + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.03) fade-in-step = 0.03; # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) @@ -144,10 +148,7 @@ active-opacity = 1.0 # Specify a list of conditions of windows that should never be considered focused. # focus-exclude = [ # "class_g = 'Cairo-clock'" -#]; - -# Use fixed inactive dim value, instead of adjusting according to window opacity. -# inactive-dim-fixed = 1.0 +#]; # Specify a list of opacity rules, in the format `PERCENT:PATTERN`, # like `50:name *= "Firefox"`. @@ -1134,12 +1134,24 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { } else if (w->opacity_is_set && ps->o.inactive_opacity_override) { if (ps->o.support_for_wm == WM_SUPPORT_DWM) { if (win_is_focused_raw(ps, w)) { - opacity = w->opacity_set; + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = w->opacity_set; + } } else if (!win_is_focused_raw(ps, w)) { if (ps->o.inactive_opacity == 1.0) { opacity = w->opacity_set; } else { - opacity = ps->o.inactive_opacity; + if (c2_match(ps, w, ps->o.inactive_opacity_blacklist, NULL)) { + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } + } else { + opacity = ps->o.inactive_opacity; + } } } } else { @@ -1149,7 +1161,15 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { if (ps->o.inactive_opacity == 1.0) { opacity = w->opacity_set; } else { - opacity = ps->o.inactive_opacity; + if (c2_match(ps, w, ps->o.inactive_opacity_blacklist, NULL)) { + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } + } else { + opacity = ps->o.inactive_opacity; + } } } } @@ -1160,9 +1180,21 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { // Respect active_opacity only when the window is physically // focused if (win_is_focused_raw(ps, w)) { - opacity = ps->o.active_opacity; + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } } else if (!w->focused) { - opacity = ps->o.inactive_opacity; + if (c2_match(ps, w, ps->o.inactive_opacity_blacklist, NULL)) { + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } + } else { + opacity = ps->o.inactive_opacity; + } } } |