GithubHelp home page GithubHelp logo

allusive-dev / compfy Goto Github PK

View Code? Open in Web Editor NEW
206.0 9.0 23.0 780 KB

A Compositor for X11 based on Picom. No Longer Maintained in favor of Picom v12!

Meson 0.61% C 99.28% Nix 0.11%
aur-packages compositor compton linux picom compfy x11

compfy's People

Contributors

aliyss avatar allusive-dev avatar iogamaster avatar xrun1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

compfy's Issues

Incorrect handling of Herbstluftwm tabbed frames

What is the issue
When multiple windows are in a frame that uses the max layout (one window visible at a time, showing a tab bar if configured to do so), opening/closing/switching between windows results in a wrong animation where they appear to fly in and out from the top-left corner of the top-left-most monitor.
Empty frames also display visual garbage unless I run picom with --wm-support=awesome.

Here is a basic HLWM config script to reproduce the setup (Copy to a ~/.config/herbstluftwm folder and name the file autostart, then herbstluftwm --locked to launch the WM from a TTY). With the specified keybinds:

  • Mod4-Return to open a terminal in the default frame (kitty by default)
  • Mod4-Ctrl-l to split that frame to the right and focus it, with standard picom it should just be transparent with a black border
  • Mod4-Alt-h/l to resize the frame
  • Mod4-Return to open a second terminal
  • Mod4-Return to open a third terminal as a tab, this time the animation is wrong
  • Switch between the tabs with Mod4-space and Mod4-Shift-space
  • Close a tab or empty frame with Mod4-x

What did you expect
Transparent frames and correct animations

Relevant Images or Videos:

normal.mp4
allusive.mp4

Your configuration

active-opacity = 1.000000;
animation-clamping = false;
backend = "glx";
fade-delta = 10;
fade-exclude = [  ];
fade-in-step = 0.028000;
fade-out-step = 0.030000;
fading = true;
glx-no-stencil = true;
inactive-opacity = 1.000000;
opacity-rule = [  ];
shadow = true;
shadow-exclude = [ "window_type *= 'tooltip'" , "! name~=''" , "_GTK_FRAME_EXTENTS@:c" , "class_g = 'slop'" ];
shadow-offset-x = 0;
shadow-offset-y = 0;
shadow-opacity = 0.300000;
shadow-radius = 5;
vsync = true;
wintypes: { dropdown_menu = { opacity = 1.000000; }; popup_menu = { opacity = 1.000000; }; };
xinerama-shadow-crop = true;

Package Version: v1.2.6
Build Method: NixOS flake with Home Manager
WM: Herbstluftwm

Build errors with llvm 17 and musl

../src/options.c:188:57: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion]
    {"animation-open-exclude", required_argument, NULL, 814, "animation open exclude list"},
                                                        ^~~
../src/options.c:189:52: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
    {"animation-unmap-exclude", required_argument, NULL, 815, "animation unmap exclude list"},
                                                   ^~~~
/usr/include/stddef.h:9:14: note: expanded from macro 'NULL'
#define NULL ((void*)0)
             ^~~~~~~~~~
../src/options.c:189:58: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion]
    {"animation-unmap-exclude", required_argument, NULL, 815, "animation unmap exclude list"},
                                                         ^~~
../src/options.c:787:9: error: call to undeclared function 'parse_rule_corners'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
                        if (!parse_rule_corners(&opt->corner_rules, optarg))
                             ^
9 errors generated.
[28/31] Compiling C object src/picom.p/win.c.o
FAILED: src/picom.p/win.c.o
ccache cc -Isrc/picom.p -Isrc -I../src -Isubprojects/test.h -I../subprojects/test.h -I/usr/include/pixman-1 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -std=c11 -O0 -g '-DPICOM_VERSION="vgit-5c118"' -D_GNU_SOURCE -DHAS_STDC_PREDEF_H -DCONFIG_LIBCONFIG -DCONFIG_REGEX_PCRE -DCONFIG_REGEX_PCRE_JIT -DCONFIG_OPENGL -DGL_GLEXT_PROTOTYPES -DCONFIG_DBUS -DHAS_INOTIFY -MD -MQ src/picom.p/win.c.o -MF src/picom.p/win.c.o.d -o src/picom.p/win.c.o -c ../src/win.c
../src/win.c:1465:20: error: incompatible pointer to integer conversion assigning to 'int' from 'void *' [-Wint-conversion]
                w->corner_radius = val;

Maximized Windows Don't Fade When Closed [XFCE]

Hello! First of all, congratulations on your compositor! This has been the best fork of Picom I've used so far. The animations and transitions are just perfect.

However, there is an issue that I've been experiencing with all Picom-related forks: maximized windows simply do not fade when closing. They close abruptly, as if the fade effect has not been set. So far, this has been the only issue I've had regarding janking when using your compositor. If it could be possible to fix this, it would be just perfect.

I am using version 1.6.0, built with Meson and Ninja.
Debian 11
XFCE (with the compositor turned off, of course)

corners-rule broken if corner-radius = 0

I'm unsure if this is a bug, but I did find something strange that happens on my system. If I don't have a nonzero value for my corner-radius, corners-rule doesn't work at all, even if I give radius values to the windows I do want to be curved. I've attached part of my dotfile just in case. Hope to hear back!

CPU: Intel i5-11400H
GPU: Intel UHD / RTX 3050 Laptop
OS: Arch Linux
WM: i3
picom.conf.txt

Windows becoming black after moving or being focused.

What is the issue
When I move a window and switch focus to another one, the former turns black.
I can restore windows' contents by switching workspaces, resizing them, or moving them and switching focus again.
No relevant warnings seem to show up in compfy's output.

What did you expect
Windows not ever turning black.

Relevant Images or Videos:
https://files.catbox.moe/2581sf.mp4

Your configuration
Nvidia GTX 1650 with proprietary driver 535.104.05-1 on Artix Linux.
Compfy config at https://pastebin.com/tx4e35ng.

Package Version: 9891afe (also, compfy -v reports 1.7.0 even though 1.7.1 is out?)
Build Method: built manually.
WM: Xfwm4.

setting workspace switch animation doesnt do anything

setting animation-for-workspace-switch-in and animation-for-workspace-switch-out has no effect

here is my config file

corner-radius = 5
corner-radius-rules = "10:class_g *?= 'dmenu'"
rounded-corners-exclude = "class_g = 'dwm'";

shadow = true

animations = true
animation-for-open-window = "zoom"
animation-for-workspace-switch-in = "slide-down"
animation-for-workspace-switch-out = "slide-up"
fading = true
fade-in-step = 0.03
fade-out-step = 0.03

backend = "glx";
use-damage = false;

when I switch workspaces it still goes to the left

distro: artix linux (with runit)
WM: dwm

blur not working in awesomewm-git

What is the issue
The blur settings do not work for me as a result I have semi-transparent windows.
Shadows, animations and fading work very well.

What did you expect
I expected the blur to work the same as in picom

Your configuration
my test config is:
#.config/compfy/compfy.conf
fading = true;
blur-background=true;
blur-method = "dual_kawase";
backend="glx";
blur-strength=6;
active-opacity=1;
frame-opacity=1;
blur-kern = "3x3box";
blur-background-frame = false;
blur-background-fixed = true;
vsync = true;
glx-no-stencil = true;

Package Version:
v1.7.0
Build Method:
meson setup -Dupdate_checks=true . build

WM:
wm: awesomewm (git version: awesome v4.3-1606-g0e5fc4575-dirty (Too long) )

repeated GLX errors

What is the issue
A bunch of errors get repeatedly thrown, all related to glx.
May be related to #31 , doesn't seem likely though, since there are a lot less errors in that issue and there are no Xlib errors here

What did you expect
No errors

Relevant Images or Videos:
2023-11-14_16-20
2023-11-14_16-18

Your configuration
picom.conf.txt

Package Version: 1.5.0, also happens on 1.4.3

Build Method: as described in the readme
WM: awesomewm git version

Closing Window Animation leaves artifacts.

When I switch workspaces, randomly appears a little square on the screen (sometimes more than one).
if I switch back and forth it eventually disappears but it's quite irritating.
Visually it appears as if programs are zooming out but instead of disappearing they are oddly minimized

I use EndeavourOS and Qtile
Let me know if I need to provide any further info

in the attached zip is my picom config and screen recording showing the glitch

Archive.zip

Animation loop in i3 tabbed/stacked mode

What is the issue
In i3wm, when i have 3 or more windows in tabbed or stacked mode, there are window animations but they do not stop

What did you expect
Animations stop in 1 seconds or less. But didn't stop and is unusable

Relevant Images or Videos:

Peek.24-11-2023.14-43.mp4

Your configuration
compfy.txt

Package Version:
compfy (v1.7.0)
Standalone X11 compositor

Build Method:
aur

WM:
i3wm

Assertion failed: ps->server_grabbed

<-- Please fill in all the forms below that are relevant then delete this line -->

What is the issue
Assertion failure within this project

What did you expect
Program runs

Relevant Images or Videos:

Assertion failed: ps->server_grabbed (../src/c2.c: c2_match: 1671)
Aborted

Your configuration
Default, no configuration file is present

Package Version: f796e60
Build Method: Source (meson setup -Dregex=false build)
WM: dwm

Original picom runs fine.

Open and close animations look weird

What is the issue
Open and close animations clip the window and the blurred background pops out while the open and close animations are performed

What did you expect
I expected the windows to expand and shrink correctly according to the open and close animation.

It seems that the window does not follow the animation of the blurred background with respect to the size but with the positions causing the clipping when it shrinks and the overflow when the background expands.

Relevant Images or Videos:
https://github.com/allusive-dev/compfy/assets/64455469/28fad5e1-dce3-4114-890e-393b0bce12f9

configuration:
blur-background=true;
blur-whitelist=false

blur-method = "dual_kawase";
backend="glx";
blur-strength=3;
active-opacity=1;
frame-opacity=1;
blur-kern = "3x3box";

shadow = true;
shadow-radius = 20;
shadow-opacity = 0.2
shadow-offset-x = -18;
shadow-offset-y = -18;

fading = true;

animations=true
animation-for-open-window="zoom"
animation-stiffness = 110
animation-window-mass = 0.8
animation-dampening = 5

corner-radius = 12

Package Version:
v1.7.0

Build Method:
meson setup -Dupdate_checks=true . build

WM:
awesomewm-git

Crash with error (0.3.2)

Kernel: 6.2
OS: Majaro
CPU: amd 5950X
GPU: Nvidia 3090
DE: Awesome 4.3

[ 15.10.2023 14:08:02.077 glx_bind_pixmap ERROR ] Failed to query info of pixmap 0x01e00fea.
[ 15.10.2023 14:08:02.077 win_paint_shadow ERROR ] Window 0x002220a2 is missing shadow data.

Happens randomly. More often immediately after changing config file

picom.conf.txt
My config

Janky animations

After upgrading to 1.2.1, the animations seem to get worse and worse over time.
Based on the fact that others seem to have not issues at all, it seems that this only happens in AwesomeWM

Here's a video from after about 15 minutes of using it:

2023-10-31.11-27-13.mp4

As also seen in the video, picom seems to be calling invalid X extension events 161 and 146:
2023-10-31_11-31

The animations are already janky right after starting picom, but (at least to my eyes) they only get worse.

Window Border Management with picom

A feature I have wanted alot is being able to declare borders with picom instead of using your WM of choice. I'm not sure how other WM manage borders but in xmonad there is no way to specify specific windows that have their borders rendered.

I don't know how to implement this and am looking for a C developer who might be able to help with coding this.

Animations for Workspaces

<-- Please fill in all the forms below that are relevant then delete this line -->

What is the issue
Feature Request for animations of workspaces in BSPWM and other WMs. When switching workspaces, it should animate the whole visible desktop instead of individual windows.

What did you expect
The whole workspace animates with a different animation than windows.

Package Version: v1.4.3
Build Method: AUR
WM: BSPWM

Resizing window in BSPWM causes seizure

the issue : whenever i resize a window in bspwm the widow/windows gets a seizure

what do you expect : not getting a seizure

Video: ( Sry for the quality uploading here wasn't working had to choose a random place to upload ) video

Logs: compfy.log

Your configuration : https://github.com/NotMurPh/DotFiles ( compfy isn't in there yet )
compfy configuration : compfy.txt ( I renamed it to .txt from .conf for github )

Package Version: compfy 1.7.2-1
Build Method: yay (aur)
WM: BSPWM

OS: Arch Linux
KERNEL: 6.6.1-arch1-1
CPU: 13th Gen Intel Core i5-13600KF
GPU: NVIDIA GeForce RTX 3070 Ti
GPU DRIVER: NVIDIA 545.29.02 ( i use nvidia-open kernel modules )
image
RAM: 16 GB

thanks for this amazing fork ๐Ÿฅฐ

Animations causes really high power usage

What is the issue
Turning on animations causes a 2-4 watt increase in power usage reported by powertop. Disabling animations drops compfy from being the highest power consumption (idle without running something power hungry like a game) to being fairly lightweight. Animations don't just make the stats worse they decrease the amount of battery life I actually get.

What I've tried

  • Disabling & re-enabling other settings (only animations had noticeable changes
  • Different Backends
  • enabling/disabling wm patch option
  • comparing to picom (similar performance in regards to power consumption without animations

Relevant info
Compfy version 1.7.2 installed with pacman

Neofetch for sysinfo:
neofetch

Power top without animations
ptNoAnim
t animations

Power Top with animations
ptAnim

My Config

wm-support = "herb"

#################################
#         ANIMATIONS            #
#################################

animations = true;
animation-stiffness = 120;
animation-window-mass = 0.5;
animation-dampening = 12;
animation-clamping = false;
animation-for-open-window = "zoom";
animation-for-unmap-window = "zoom";

animation-open-exclude = [
    "class_g = 'Polybar'"
]

animation-unmap-exclude = [
    "class_g = 'Polybar'"
]

#################################
#           Corners             #
#################################

corner-radius = 14;
rounded-corners-exclude = [
  "class_g = 'Rofi'"
];

#################################
#           Fading              #
#################################

fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;

#################################
#   Transparency / Opacity      #
#################################

inactive-opacity = 0.65;
frame-opacity = 1.0;
inactive-opacity-override = false;
active-opacity = 1.0;

inactive-exclude = [
  "class_g = 'firefox'",
  "class_g = 'Rofi'"
];

#################################
#     Background-Blurring       #
#################################
blur-background = true;
blur-method = "dual_kawase";

blur-strength = 5;
blur-whitelist = false;

blur-exclude = [
  "class_g = 'Polybar'"
];

#################################
#       General Settings        #
#################################

daemon = true;

backend = "glx";

log-level = "info";

BSPWM starts with blackscreen until i reload config.

After i log in from SDDM to BSPWM my screen is black no Polybar no background but i can open e.g. a terminal which has animations and all my Picom configurations.
If i reload my BSPWM config everything works normaly and very very good i love it so far.

EDIT: And i have like 6 lines of error in the Terminal all the same like this :
[ 04.11.2023 02:51:10.858 _gl_fill ERROR ] GLX error at line 699: GL_INVALID_FRAMEBUFFER_OPERATION

This was not an issue with the normal Picom from the official repos.

I am using Arch Linux with an NVIDIA 3060 gls is enabled.
Picom is installed via paru.

I tried disabling my wallpaper script for an animated background and start with feh.
Disabled every wallpaper.
Fixed my Polybar startup script.
But nothing helps.

Maybe i messed up the Picom config.

#################################
#             Shadows           #
#################################


# Enabled client-side shadows on windows. Note desktop windows 
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, 
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = true;

# The blur radius for shadows, in pixels. (defaults to 12)
shadow-radius = 20
# shadow-radius = 7;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
# shadow-opacity = .75

# The left offset for shadows, in pixels. (defaults to -15)
shadow-offset-x = -20
# shadow-offset-x = -7;

# The top offset for shadows, in pixels. (defaults to -15)
shadow-offset-y = -18
# shadow-offset-y = -7;

# Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead.
#
# no-dock-shadow = false

# Don't draw shadows on drag-and-drop windows. This option is deprecated, 
# you should use the *wintypes* option in your config file instead.
#
# no-dnd-shadow = false

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Do not paint shadows on shaped windows. Note shaped windows 
# here means windows setting its shape through X Shape extension. 
# Those using ARGB background is beyond our control. 
# Deprecated, use 
#   shadow-exclude = 'bounding_shaped'
# or 
#   shadow-exclude = 'bounding_shaped && !rounded_corners'
# instead.
#
# shadow-ignore-shaped = ''

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  #"class_g = 'firefox'",
  # "class_g = 'Dunst'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use 
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = "" 

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false


#################################
#           Fading              #
#################################


# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = false

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
fade-exclude = [
  "class_g = 'slop'",
  "class_g = 'jgmenu'",
]

# Do not fade on window open/close.
no-fading-openclose = true 

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
no-fading-destroyed-argb = true


#################################
#   Transparency / Opacity      #
#################################


# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
# inactive-opacity = 0.8;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
# frame-opacity = 0.7;

# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
# menu-opacity = 1.0

# popup_menu = { opacity = 0.8; }
# dropdown_menu = { opacity = 0.8; }

# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [ 
  "class_g = 'Cairo-clock'",
  "class_g = 'Bar'",
  "class_g = 'slop'",
];

# 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"`. picom-trans is recommended over this. 
# Note we don't make any guarantee about possible conflicts with other 
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
opacity-rule = [
  "90:class_g      = 'Alacritty'",
  "90:class_g       = 'Polybar'",
  "100:class_g      = 'firefox'",
  "90:class_g       = 'Rofi'",
];


#################################
#     Background-Blurring       #
#################################


# Parameters for background blurring, see the *BLUR* section for more information.
blur-method = "dual_kawase"
blur-radius = 3
blur-strenght = 5
#
# blur-deviation = false

# Blur background of semi-transparent / ARGB windows. 
# Bad in performance, with driver-dependent behavior. 
# The name of the switch may change without prior notifications.
#
blur-background = true 

# Blur background of windows when the window frame is not opaque. 
# Implies:
#    blur-background 
# Bad in performance, with driver-dependent behavior. The name may change.
#
blur-background-frame = false


# Use fixed blur strength rather than adjusting according to window opacity.
blur-background-fixed = false


# Specify the blur convolution kernel, with the following format:
# example:
#   blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
#
# blur-kern = ''
#blur-kern="3x3box"

blur-rule = [
  "class_g = 'Alacritty'",
  "class_g = 'Polybar'",
  "class_g = 'Rofi'"
]

# Exclude conditions for background blur.
# blur-background-exclude = []
blur-background-exclude = [
 # "window_type = 'dock'",
  #"window_type = 'desktop'",
  "_GTK_FRAME_EXTENTS@:c"
];

#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
daemon = true

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#

backend = "glx";
# backend = "xrender";

# corner default = 12
corner-radius = 12;

# border default = 1
round-borders = 1;
rounded-corners-exclude = [
 # "class_g = 'Polybar'",
  "class_g = 'i3lock'",
]

# Enable/disable VSync.
# vsync = false
vsync = true

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no 
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them 
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
detect-rounded-corners = true;

# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
#
# detect-client-opacity = false
detect-client-opacity = true;

# Specify refresh rate of the screen. If not specified or 0, picom will 
# try detecting this with X RandR extension.
#
# refresh-rate = 60
# refresh-rate = 60

# Limit picom to repaint at most once every 1 / 'refresh_rate' second to 
# boost performance. This should not be used with 
#   vsync drm/opengl/opengl-oml
# as they essentially does sw-opti's job already, 
# unless you wish to specify a lower refresh rate than the actual value.
#
# sw-opti = 

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, 
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, 
# provided that the WM supports it.
#
# use-ewmh-active-win = false

# Unredirect all windows if a full-screen opaque window is detected, 
# to maximize performance for full-screen windows. Known to cause flickering 
# when redirecting/unredirecting windows.
#
# unredir-if-possible = false

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows 
# in the same group focused at the same time.
#
# detect-transient = false
detect-transient = true

# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same 
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if 
# detect-transient is enabled, too.
#
# detect-client-leader = false
detect-client-leader = true

# Resize damaged region by a specific number of pixels. 
# A positive value enlarges it while a negative one shrinks it. 
# If the value is positive, those additional pixels will not be actually painted 
# to screen, only used in blur calculation, and such. (Due to technical limitations, 
# with use-damage, those pixels will still be incorrectly painted to screen.) 
# Primarily used to fix the line corruption issues of blur, 
# in which case you should use the blur radius value here 
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, 
# with a 5x5 one you use `--resize-damage 2`, and so on). 
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color. 
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. 
# Might cause incorrect opacity when rendering transparent content (but never 
# practically happened) and may not work with blur-background. 
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# GLX backend: Avoid rebinding pixmap on window damage. 
# Probably could improve performance on rapid window content changes, 
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information. 
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
use-damage = false

# Use X Sync fence to sync clients' draw calls, to make sure all draw 
# calls are finished before picom starts drawing. Needed on nvidia-drivers 
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents. 
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` 
# in the source tree for examples.
#
# glx-fshader-win = ''

# Force all windows to be painted with blending. Useful if you 
# have a glx-fshader-win that could turn opaque pixels transparent.
#
force-win-blend = true

# Do not use EWMH to detect fullscreen windows. 
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value. 
# Brightness of a window is estimated by averaging all pixels in the window, 
# so this could comes with a performance hit. 
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter. 
# If using the "TRACE" log level, it's better to log into a file 
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "warn";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr. 
# Otherwise, logs will to written to the given file, though some of the early 
# logs might still be written to the stderr. 
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = '/path/to/your/log/file'

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = '/path/to/your/log/file'

# Window type settings
# 
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: 
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility", 
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu", 
#     "tooltip", "notification", "combo", and "dnd".
# 
# Following per window-type options are available: ::
# 
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
# 
#   opacity:::
#     Controls default opacity of the window type.
# 
#   focus:::
#     Controls whether the window of this type is to be always considered focused. 
#     (By default, all window types except "normal" and "dialog" has this on.)
# 
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you 
#     normally won't be able to see. Useful when the window has parts of it 
#     transparent, and you want shadows in those areas.
# 
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become 
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection, 
#     you can set this to `true`.
#
wintypes:
{
  tooltip = { fade = true; shadow = false; opacity = 1.0; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 1.0; }
  dropdown_menu = { opacity = 1.0; }
};

#################################
#          Animations           #
#################################

animations: true;

animation-stiffness = 300
animation-window-mass = 0.8
animation-dampening = 20
animation-clamping = false

animation-for-open-window = "zoom"; #open window
animation-for-unmap-window = "zoom"; #minimize window
animation-for-menu-window = "zoom";



Sorry for the mess its just the Original config maybe there is something wrong.

Thank You for helping

Blur broken on 1.0.3

Blur seems to not be working after upgrading to 1.0.3

I tested this on all non-legacy backends, without the --experimental-backends flag of course.
2023-10-30_13-47
Also notice the weirdness of the window corners? You might wanna take a look at PR #1 on the pijulius fork. This only happens on AwesomeWM

Here's my neofetch for some extra info that may or may not be needed:
nf

Xfce4-panel corner rules override panel tooltips

What is the issue
The following config options do not work in conjunction with one another.

#################################
#             Corners           #
#################################

corner-radius = 15.0;
round-borders = 1;

corners-rule = [
  "0:window_type = 'tooltip'",
 ];

rounded-corners-exclude = [
  "name *= 'xfce4-panel'",
];

The goal is to not allow corners on xfce-panel, while having rounded tool tips stemming from the panel.

before

after

3

When running Compfy in shell, I get these two errors when hovering to generate a tooltip:

Xlib: ignoring invalid extension event 146
Xlib: ignoring invalid extension event 161

Running 1.7.2-1 on xfwm4

Picom Crashes - Update

Hello Everyone,
I just wanted to make it clear that I am aware of the crashing issues that are happening.

I also want to let everyone know I am working very hard to fix this problem as soon as possible!

The Issue

My current assumption is that transient windows are crashing picom when they are animated. I say assumption because there was no errors setup to indentify issues with animation besides user errors under the configuration file.

I am testing fixes and will continue testing fixes until this is resolved so please hang in there.

[Question] Specific support for bspwm

Hello,

This is maybe more of a question rather than a bug/feature request. I noticed in the latest commits that some patches for dwm were added, I was wondering whether something similar is potentially required for bspwm.

Thanks!

Should this fork become its own Project?

Hey Everyone,
Firstly I want to say thank you for all the support recently.
As of posting this we have nearly reached 100 stars on GitHub and many more downloads on Arch and other systems!

I wanted to bring up this discussion since recently there has been pressure to merge my changes with upstream, though that was never my plan it seems like it could be considered inevitable since this project is still picom.

That is why I have brought this up, I am considering turning this into its own project no longer directly related to picom. Though I would still plan to bring in stable updates from yshui/picom and of course still provide credit to contributors to that package.

This would include a rename of the project (new name is still not decided, (will probably make it a community post)), and some other large refactors.

This is a big step for this project of mine so I want to hear everyone's opinions on whether this is the way forward.

AwesomeWM - Rounded Corner Glitches

@naan187

I just released a test build to try to fix the problem.

If you can build the package manually please build this release.

If you cannot build manually please let me know.

If you are able to build it with no issues let me know if that update has fixed the problem or if anything else happens.
(Do not worry about the following errors if they come up in the console.
_gl_ffill ERROR - Invalid framebuffer
Xlib: invalid extension event
win_set_flags - Flags set on destroyed window.
)

Issue Manually Installing

when I run
meson setup --buildtype=release build

I get the following error:
ERROR: File media/icons/48x48/compton.png does not exist.

Can you post a guide non-arch users if the installation steps differ from other picom forks?

Workspace switching shows wallpaper

When switching workspaces, wallpaper flashes briefly when fading/animations are enabled. Could the wallpaper be ignored or replaced with just #000? If wallpaper is not set, it looks fine.

Using i3wm.

I found out what clamping does lol

@allusive-dev I found out what animation-clamping does. I was messing around with trying to get that bouncy effect to the animations and I just couldnt so then I tried to disable animation clamping and... (I had my mass at 10 at the time)
https://youtu.be/u96Vj6If1EY (I had to upload it to youtube because the file is too big for github)

Example Issue

<-- Please fill in all the forms below that are relevant then delete this line -->

What is the issue:

Something doesn't not work

What did you expect:

It should work

Relevant Images or Videos:

None

Your configuration

picom.conf.txt

Package Version: 1.2.3
Build Method: NixOS Custom Package
WM: XMonad

Core dumped after updating to `1.4.0`

This happens if you are not using a Display Manager because the DESKTOP_SESSION variable is not set.

If you are here from the console error you also must apply these steps.

You can fix this by adding the following to your shell's rc file.

export DESKTOP_SESSION="your-window-manager"

Everything but the mouse randomly freezes

What is the issue
Everything but the mouse randomly freezes, all apps still work in the background, sound still plays, games still update but I cant see anything until I change window focus and it fixes itself. I am on Arch fully updated with a 2080ti using the Nvidia drivers. This was also a bug on the upstream I posted here: yshui/picom#1152 before trying to see if Compfy had it fixed.
What did you expect
That my screen would not freeze and it would just work.
Relevant Images or Videos: NA

Your configuration


wm-support = "awesome";

#Animations
animations = true;

#Corners
corner-radius = 15;

rounded-corners-exclude = [
  "class_g = 'awesome'",
]

#Shadows
shadow = false;

#Fade
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;

# Opacity
active-opacity = 1;
inactive-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
opacity-rule = [
    "70:class_g = 'Alacritty' && !focused",
    "70:class_g = 'Pcmanfm' && !focused",
    "70:class_g = 'Mousepad' && !focused",
    "90:class_g = 'discord' && !focused"
];


#Background Blur
blur-background = true;
blur-whitelist=false;
blur-method = "dual_kawase";
blur-strength = 6;

#General Settings
backend = "glx";
vsync = true;

log-level = "info";

Package Version: 1.7.2
Build Method: AUR
WM: Awesome WM

Window clipping on AwesomeWM

What is the issue
Windows get clipped with slide animations and on sudden size changes on awesomewm

What did you expect
No clipping, just sliding windows

Relevant Images or Videos:

simplescreenrecorder-2023-11-16_18.44.11.mp4

(see bottom of windows)

simplescreenrecorder-2023-11-16_18.30.07.mp4

Your configuration
compfy.conf.txt

Package Version: 1.6.6
Build Method: as described in README
WM: awesome

Crash with fatal error (0.3.2)

Kernel: 6.2
OS: Majaro
CPU: amd 5950X
GPU: Nvidia 3090
DE: Awesome 4.3

[ 15.10.2023 13:59:59.572 x_new_id FATAL ERROR ] We seems to have run of XIDs. This is either a bug in the X server, or a resource leakage in the compositor. Please open an issue about this problem. The compositor will die.
zsh: IOT instruction (core dumped)  picom

Also noticed friezes some freeze when after 2-3 hour and i switch screen work space.

picom.conf.txt
My config

||| Submit Feature Requests Here |||

This discussion is for requesting features to be added.

Please try to be as explicit as possible about the feature you want added to make it easier for me to understand what exactly you are wanting.

If you see a feature request that you also want please leave a reaction on the comment so that I know more people want it.

Lastly I cannot guarantee every request will be added, but I will try my best to add as many as I can.

Moving windows is really laggy.

What is the issue
Moving a window around has a significant amount of lag.

Might be related to #46, I get a single CPU core pegged at 100%.

What did you expect
To be instant (on picom it is).

Relevant Images or Videos:
https://youtu.be/OKpkCMseRS8

Your configuration
CPU: AMD Ryzen 7 5700X
GPU: AMD ATI Radeon RX 6700
Memory: 32GB

Package Version: 1.7.2
Build Method: AUR
WM: Openbox

Expected/Normal RAM Usage?

Not really an issue, I just want to know, what is the normal or expected RAM usage of compfy?
Because it is using 2.93 GiB memory on my computer right now, opening two windows of Firefox, some terminals, spotify, and polybar. Is that normal or a problem?

Rules for corners and shadow for Polybar break the compositor.

What is the issue - Any edits involving Polybar (corners-rule, rounded-corners-exclude, and shadow-exclude) kill the compositor. The area Polybar occupies has rounded corners and a shadow. Attempting to exclude these causes the crashing.

What did you expect - The changes to be implemented.

Relevant Images or Videos:
ArcoLinux_2023-11-14_15-10-48

Your configuration - ArcoLinux, kernel 6.6.1-arch1-1

Package Version: - 1.5.0-1
Build Method: - Installed with Paru
WM: - i3wm

Rounded corners are black on most windows

On some windows, the rounded corners work perfectly. However, most windows (kitty, electron-based, gtk, qt, etc...) have rounded corners that are filled in. Note that changing detect-rounded-corners does not fix it.

`Assertion failed: ps->server_grabbed (../src/c2.c: c2_match: 1684)`

What is the issue
Assertion failure when checking for a regex or if the server has something grabbed

What did you expect
Picom runs as normal

Your configuration
Default

Package Version: 44e4be6
Build Method: Source
WM: dwm

~/src/picom-allusive $ git log --pretty=oneline
44e4be6afee4946ff28ef995ebb0f3aed5382b40 (HEAD -> main, origin/main, origin/HEAD) Update README.md
3a3c0751cc54f548fa8638c1fcb9ef5f636bcb9a (tag: 1.5.0) Update to pcre2 in relation to #29
05bb2cd3e054b1e22a3b511ce7a5678e8f12017b Merge pull request #32 from IogaMaster/improved-flake
~/src/picom-allusive $ git log --pretty=oneline | head -2
44e4be6afee4946ff28ef995ebb0f3aed5382b40 Update README.md
3a3c0751cc54f548fa8638c1fcb9ef5f636bcb9a Update to pcre2 in relation to #29
~/src/picom-allusive $ git branch
* main
~/src/picom-allusive $ rm -rf build ; meson setup -Dregex=true build
The Meson build system
Version: 1.2.3
Source dir: /home/meow/src/picom-allusive
Build dir: /home/meow/src/picom-allusive/build
Build type: native build
Project name: picom
Project version: 1.5.0
C compiler for the host machine: ccache cc (gcc 13.2.0 "cc (GCC) 13.2.0")
C linker for the host machine: cc ld.bfd 2.41
Host machine cpu family: x86_64
Host machine cpu: x86_64
Has header "stdc-predef.h" : YES 
Compiler for C supports arguments -Wcast-function-type: YES 
Compiler for C supports arguments -Wignored-qualifiers: YES 
Compiler for C supports arguments -Wmissing-parameter-type: YES 
Compiler for C supports arguments -Wnonnull: YES 
Compiler for C supports arguments -Wshadow: YES 
Compiler for C supports arguments -Wno-type-limits: YES 
Compiler for C supports arguments -Wold-style-declaration: YES 
Compiler for C supports arguments -Woverride-init: YES 
Compiler for C supports arguments -Wsign-compare: YES 
Compiler for C supports arguments -Wtype-limits: YES 
Compiler for C supports arguments -Wuninitialized: YES 
Compiler for C supports arguments -Wshift-negative-value: YES 
Compiler for C supports arguments -Wunused-but-set-parameter: YES 
Compiler for C supports arguments -Wunused-parameter: YES 
Compiler for C supports arguments -Wimplicit-fallthrough=2: YES 
Compiler for C supports arguments -Wno-unknown-warning-option: NO 
Compiler for C supports arguments -Wno-missing-braces: YES 
Compiler for C supports arguments -Wconversion: YES 
Compiler for C supports arguments -Wempty-body: YES 

Executing subproject test.h 

test.h| Project name: test.h
test.h| Project version: undefined
test.h| C compiler for the host machine: ccache cc (gcc 13.2.0 "cc (GCC) 13.2.0")
test.h| C linker for the host machine: cc ld.bfd 2.41
test.h| Build targets in project: 0
test.h| Subproject test.h finished.

Found pkg-config: /usr/bin/pkg-config (2.0.3)
Found CMake: /usr/bin/cmake (3.27.7)
Run-time dependency libev found: NO (tried pkgconfig and cmake)
Library ev found: YES
Library m found: YES
Run-time dependency x11 found: YES 1.8.7
Run-time dependency x11-xcb found: YES 1.8.7
Run-time dependency xcb-renderutil found: YES 0.3.10
Run-time dependency xcb-image found: YES 0.4.1
Run-time dependency xext found: YES 1.3.5
Run-time dependency pixman-1 found: YES 0.42.2
Run-time dependency xcb-render found: YES 1.16
Run-time dependency xcb-damage found: YES 1.16
Run-time dependency xcb-randr found: YES 1.16
Run-time dependency xcb-sync found: YES 1.16
Run-time dependency xcb-composite found: YES 1.16
Run-time dependency xcb-shape found: YES 1.16
Run-time dependency xcb-xinerama found: YES 1.16
Run-time dependency xcb-xfixes found: YES 1.16
Run-time dependency xcb-present found: YES 1.16
Run-time dependency xcb-glx found: YES 1.16
Run-time dependency xcb found: YES 1.16
Has header "uthash.h" : YES 
Run-time dependency libconfig found: YES 1.7.3
Run-time dependency libpcre2-8 found: YES 10.42
Run-time dependency gl found: YES 1.2
Run-time dependency egl found: YES 1.5
Run-time dependency dbus-1 found: YES 1.15.8
Build targets in project: 1

picom 1.5.0

  Subprojects
    test.h: YES

  User defined options
    regex : true

Found ninja-1.9 at /usr/bin/ninja
~/src/picom-allusive $ ninja -C build 
ninja: entering directory 'build'
[1/31] Compiling C object src/picom.p/backend_gl_egl.c.o
[2/31] Compiling C object src/picom.p/backend_gl_shaders.c.o
[3/31] Compiling C object src/picom.p/backend_gl_blur.c.o
[4/31] Compiling C object src/picom.p/backend_gl_glx.c.o
[5/31] Compiling C object src/picom.p/backend_gl_gl_common.c.o
[6/31] Compiling C object src/picom.p/backend_driver.c.o
[7/31] Compiling C object src/picom.p/backend_backend.c.o
[8/31] Compiling C object src/picom.p/backend_dummy_dummy.c.o
[9/31] Compiling C object src/picom.p/backend_xrender_xrender.c.o
[10/31] Compiling C object src/picom.p/backend_backend_common.c.o
[11/31] Compiling C object src/picom.p/dbus.c.o
[12/31] Compiling C object src/picom.p/opengl.c.o
[13/31] Compiling C object src/picom.p/config_libconfig.c.o
[14/31] Compiling C object src/picom.p/file_watch.c.o
[15/31] Compiling C object src/picom.p/atom.c.o
[16/31] Compiling C object src/picom.p/cache.c.o
[17/31] Compiling C object src/picom.p/event.c.o
[18/31] Compiling C object src/picom.p/options.c.o
[19/31] Compiling C object src/picom.p/log.c.o
[20/31] Compiling C object src/picom.p/kernel.c.o
[21/31] Compiling C object src/picom.p/render.c.o
[22/31] Compiling C object src/picom.p/string_utils.c.o
[23/31] Compiling C object src/picom.p/diagnostic.c.o
[24/31] Compiling C object src/picom.p/utils.c.o
[25/31] Compiling C object src/picom.p/vsync.c.o
[26/31] Compiling C object src/picom.p/config.c.o
[27/31] Compiling C object src/picom.p/x.c.o
[28/31] Compiling C object src/picom.p/c2.c.o
[29/31] Compiling C object src/picom.p/win.c.o
[30/31] Compiling C object src/picom.p/picom.c.o
../src/win.c: In function 'win_update_focused':
../src/win.c:152:23: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  152 |                 if (ps, w, ps->o.focus_blacklist, NULL) {
      |                       ^
../src/win.c:152:26: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  152 |                 if (ps, w, ps->o.focus_blacklist, NULL) {
      |                          ^
../src/win.c:152:49: warning: left-hand operand of comma expression has no effect [-Wunused-value]
  152 |                 if (ps, w, ps->o.focus_blacklist, NULL) {
      |                                                 ^
../src/win.c: In function 'win_determine_rounded_corners':
../src/win.c:1555:34: warning: assignment to 'int' from 'void *' makes integer from pointer without a cast [-Wint-conversion]
 1555 |                 w->corner_radius = val;
      |                                  ^
[31/31] Linking target src/picom
~/src/picom-allusive $ build/src/picom
Assertion failed: ps->server_grabbed (../src/c2.c: c2_match: 1684)
Aborted

The previous issue was locked, so i opened a new one.

Possible Memory Leak when Animating

What is the issue
When running compfy with bspwm, any time I switch desktops or a window otherwise animates there is an increase in RAM usage. Killing the compfy process does not free the RAM. The additional RAM is not cache RAM, if I continue to switch desktops I can max out RAM usage and crash my computer.

What did you expect
Either animations cause temporary RAM usage or the additional RAM is freed properly when compfy is stopped.

Your configuration
I am still using the default example configuration from /etc/xdg/compfy.conf.example for compfy, copied to ~/.config/compfy/compfy.conf.example.

Relevant Images/Videos
No images or videos but I did wrap the compfy -b process in valgrind (using valgrind -s --leak-check=full compfy -b > valout 2>&1) and received the following. I think for this to really be useful I'd have to run it again having built compfy with different flags:

Valgrind Output
==2312== Memcheck, a memory error detector
==2312== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==2312== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==2312== Command: compfy -b
==2312==
==2325== Syscall param writev(vector[0]) points to uninitialised byte(s)
==2325==    at 0x4ECB484: writev (writev.c:26)
==2325==    by 0x4ABA3DD: UnknownInlinedFun (xcb_conn.c:296)
==2325==    by 0x4ABA3DD: _xcb_conn_wait.part.0 (xcb_conn.c:553)
==2325==    by 0x4ABA55F: UnknownInlinedFun (xcb_out.c:469)
==2325==    by 0x4ABA55F: _xcb_out_send (xcb_out.c:470)
==2325==    by 0x4ABA7D6: _xcb_out_flush_to (xcb_out.c:495)
==2325==    by 0x4ABC0BE: xcb_request_check (xcb_in.c:753)
==2325==    by 0x1150B6: ??? (in /usr/bin/compfy)
==2325==    by 0x4DE2CCF: (below main) (libc_start_call_main.h:58)
==2325==  Address 0x544d139 is 4,537 bytes inside a block of size 21,176 alloc'd
==2325==    at 0x4848953: calloc (vg_replace_malloc.c:1595)
==2325==    by 0x4ABCF35: xcb_connect_to_fd (xcb_conn.c:368)
==2325==    by 0x4ABD7BD: xcb_connect_to_display_with_auth_info (xcb_util.c:553)
==2325==    by 0x49A5612: _XConnectXCB (xcb_disp.c:78)
==2325==    by 0x49968EA: XOpenDisplay (OpenDis.c:129)
==2325==    by 0x114218: ??? (in /usr/bin/compfy)
==2325==    by 0x4DE2CCF: (below main) (libc_start_call_main.h:58)
==2325==
==2312==
==2312== HEAP SUMMARY:
==2312==     in use at exit: 16,520 bytes in 10 blocks
==2312==   total heap usage: 143 allocs, 133 frees, 24,624 bytes allocated
==2312==
==2312== LEAK SUMMARY:
==2312==    definitely lost: 0 bytes in 0 blocks
==2312==    indirectly lost: 0 bytes in 0 blocks
==2312==      possibly lost: 0 bytes in 0 blocks
==2312==    still reachable: 16,520 bytes in 10 blocks
==2312==         suppressed: 0 bytes in 0 blocks
==2312== Reachable blocks (those to which a pointer was found) are not shown.
==2312== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==2312==
==2312== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==2325==
==2325== Process terminating with default action of signal 15 (SIGTERM)
==2325==    at 0x4ECBBB7: epoll_wait (epoll_wait.c:30)
==2325==    by 0x4959AB5: ??? (in /usr/lib/libev.so.4.0.0)
==2325==    by 0x495C692: ev_run (in /usr/lib/libev.so.4.0.0)
==2325==    by 0x115F05: ??? (in /usr/bin/compfy)
==2325==    by 0x4DE2CCF: (below main) (libc_start_call_main.h:58)
==2325==
==2325== HEAP SUMMARY:
==2325==     in use at exit: 1,386,536 bytes in 8,927 blocks
==2325==   total heap usage: 1,395,603 allocs, 1,386,676 frees, 103,307,890 bytes allocated
==2325==
==2325== 80 bytes in 1 blocks are possibly lost in loss record 122 of 176
==2325==    at 0x4841828: malloc (vg_replace_malloc.c:442)
==2325==    by 0x4FF9DE7: RegisterStubCallbacks (GLdispatch.c:426)
==2325==    by 0x4FFA4CB: __glDispatchInit (GLdispatch.c:202)
==2325==    by 0x50730CB: __glXInit (libglx.c:2079)
==2325==    by 0x4004EED: call_init (dl-init.c:90)
==2325==    by 0x4004EED: call_init (dl-init.c:27)
==2325==    by 0x4004FDB: _dl_init (dl-init.c:137)
==2325==    by 0x401B2CF: ??? (in /usr/lib/ld-linux-x86-64.so.2)
==2325==    by 0x1: ???
==2325==    by 0x1FFF000C3E: ???
==2325==    by 0x1FFF000C45: ???
==2325==
==2325== 80 bytes in 1 blocks are possibly lost in loss record 123 of 176
==2325==    at 0x4841828: malloc (vg_replace_malloc.c:442)
==2325==    by 0x4FF9DE7: RegisterStubCallbacks (GLdispatch.c:426)
==2325==    by 0x4FFA6FE: __glDispatchRegisterStubCallbacks (GLdispatch.c:445)
==2325==    by 0x4CED07A: __libGLInit (libgl.c:48)
==2325==    by 0x4004EED: call_init (dl-init.c:90)
==2325==    by 0x4004EED: call_init (dl-init.c:27)
==2325==    by 0x4004FDB: _dl_init (dl-init.c:137)
==2325==    by 0x401B2CF: ??? (in /usr/lib/ld-linux-x86-64.so.2)
==2325==    by 0x1: ???
==2325==    by 0x1FFF000C3E: ???
==2325==    by 0x1FFF000C45: ???
==2325==
==2325== 1,234,512 bytes in 8,573 blocks are definitely lost in loss record 176 of 176
==2325==    at 0x4841828: malloc (vg_replace_malloc.c:442)
==2325==    by 0x4B48876: UnknownInlinedFun (pixman-region.c:213)
==2325==    by 0x4B48876: pixman_rect_alloc.lto_priv.1 (pixman-region.c:465)
==2325==    by 0x4B4BF05: pixman_op.lto_priv.1 (pixman-region.c:828)
==2325==    by 0x4B53BCE: pixman_region32_subtract (pixman-region.c:1987)
==2325==    by 0x14832B: ??? (in /usr/bin/compfy)
==2325==    by 0x11A985: ??? (in /usr/bin/compfy)
==2325==    by 0x11B8BB: ??? (in /usr/bin/compfy)
==2325==    by 0x49590CA: ev_invoke_pending (in /usr/lib/libev.so.4.0.0)
==2325==    by 0x495CD0F: ev_run (in /usr/lib/libev.so.4.0.0)
==2325==    by 0x115F05: ??? (in /usr/bin/compfy)
==2325==    by 0x4DE2CCF: (below main) (libc_start_call_main.h:58)
==2325==
==2325== LEAK SUMMARY:
==2325==    definitely lost: 1,234,512 bytes in 8,573 blocks
==2325==    indirectly lost: 0 bytes in 0 blocks
==2325==      possibly lost: 160 bytes in 2 blocks
==2325==    still reachable: 151,864 bytes in 352 blocks
==2325==         suppressed: 0 bytes in 0 blocks
==2325== Reachable blocks (those to which a pointer was found) are not shown.
==2325== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==2325==
==2325== Use --track-origins=yes to see where uninitialised values come from
==2325== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
==2325==
==2325== 1 errors in context 1 of 4:
==2325== Syscall param writev(vector[0]) points to uninitialised byte(s)
==2325==    at 0x4ECB484: writev (writev.c:26)
==2325==    by 0x4ABA3DD: UnknownInlinedFun (xcb_conn.c:296)
==2325==    by 0x4ABA3DD: _xcb_conn_wait.part.0 (xcb_conn.c:553)
==2325==    by 0x4ABA55F: UnknownInlinedFun (xcb_out.c:469)
==2325==    by 0x4ABA55F: _xcb_out_send (xcb_out.c:470)
==2325==    by 0x4ABA7D6: _xcb_out_flush_to (xcb_out.c:495)
==2325==    by 0x4ABC0BE: xcb_request_check (xcb_in.c:753)
==2325==    by 0x1150B6: ??? (in /usr/bin/compfy)
==2325==    by 0x4DE2CCF: (below main) (libc_start_call_main.h:58)
==2325==  Address 0x544d139 is 4,537 bytes inside a block of size 21,176 alloc'd
==2325==    at 0x4848953: calloc (vg_replace_malloc.c:1595)
==2325==    by 0x4ABCF35: xcb_connect_to_fd (xcb_conn.c:368)
==2325==    by 0x4ABD7BD: xcb_connect_to_display_with_auth_info (xcb_util.c:553)
==2325==    by 0x49A5612: _XConnectXCB (xcb_disp.c:78)
==2325==    by 0x49968EA: XOpenDisplay (OpenDis.c:129)
==2325==    by 0x114218: ??? (in /usr/bin/compfy)
==2325==    by 0x4DE2CCF: (below main) (libc_start_call_main.h:58)
==2325==
==2325== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)

I run compfy from bspwmrc

#! /bin/sh

pgrep -x compfy > /dev/null || compfy -b
pgrep -x sxhkd > /dev/null || sxhkd &
pgrep -x polybar > /dev/null || polybar example &

xrandr --output DisplayPort-1 --off
bspc monitor DisplayPort-1 -r

xsetroot -cursor_name left_ptr

bspc monitor -d 1 2 3 4 5 6 7 8 9 10

bspc config border_width 2
bspc config window_gap 12

bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true

Package Version: 1.7.2-1
Build Method: Arch makepkg
WM: bspwm

Hardware Utilisation Spikes

I have experienced excessive overload in the compfy process when I change the focus of windows and this overload is maintained all the time, activating the cooling, consuming a large amount of battery. The tests I did were focused on not overloading compfy, running few animations (when compfy was restarted), two to three windows and only focus changes between them. The serious problem is that it remains until you kill the compfy process. Help me knowing what I'm doing wrong or what it is due to.

I expected it not to be maintained for the entire lifetime of compfy. Let him consume what he has to consume only for the time in which great effort is required.

recording_1.mp4

I use the same configuration as in my last issues

blur background not working

Configuration
running compfy with:

compfy -b --config ~/.config/compfy/compfy.conf --backend glx

blur settings

blur = true;
blur-method="kernel";
blur-exclude = [
    "class_g = 'firefox'"
];
blur-whitelist=false;

Package Version:
v1.7.0
Build Method:
Installed from AUR with pacman
WM:
herbstluftwm

Exclude Move/Resizing Animations

There is a way to disable or exclude window movement animations for a certain type of window. I have some windows that have their own movement animation. In the specific case I used Lua's rubato library to create the animation but this animation interferes with the compfy motion animation.

Override animation type for specific windows

I can write rules to exclude windows from open/close animations, but I think it'd be cool to be able to set different animations for certain windows. I'm imagining a configuration syntax based on opacity-rule like the following (this could maybe replace animation-open-exclude and animation-unmap-exclude):

animation-open-rule = [
  "slide-down:window_type = 'tooltip'",
  "none:class_g = 'Conky'"
]

animation-unmap-rule = [
  "slide-up:window_type = 'tooltip'",
  "none:class_g = 'Conky'"
]

Bezier css convert

This is not really an issue, more like asking for help.

I tried hyprland lately, again, to see if I can use it daily, the answer is no. But cool thing about its animation settings is it use bezier css value, I don't even understand that, and just copy values from a website about bezier. I really like this one. How can I replicate that in compfy?

I just installed compfy and it is working smoothly, like wow, I did not know that X can achieve this so easily. Many thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.