aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallusive-dev <[email protected]>2023-11-04 17:49:36 +1100
committerallusive-dev <[email protected]>2023-11-04 17:49:36 +1100
commit927c507effb47b35fd4d98c4818fb64f96d5bf5e (patch)
tree8a8b6162f4b61040ef61d0ebd39d24ca12435bd9
parentupdated default values (diff)
downloadcompfy-927c507effb47b35fd4d98c4818fb64f96d5bf5e.tar.xz
compfy-927c507effb47b35fd4d98c4818fb64f96d5bf5e.zip
added inactive and active opacity exclude lists
-rw-r--r--picom.sample.conf13
-rw-r--r--src/win.c42
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"`.
diff --git a/src/win.c b/src/win.c
index 1d50313..8c85449 100644
--- a/src/win.c
+++ b/src/win.c
@@ -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;
+ }
}
}