allusive-dev / compfy

A Compositor for X11 based on Picom. No Longer Maintained in favor of Picom v12!
203 stars 23 forks source link

Exclude Move/Resizing Animations #43

Open daricoder opened 9 months ago

daricoder commented 9 months ago

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.

allusive-dev commented 9 months ago

Hey @daricoder I assume you mean the animations of windows when you are say switching them between layouts or monitors or dragging them, those being the animating of movement updates?

daricoder commented 9 months ago

Sorry for the delay 🙃 . Ehmm no 🤔, I mean that you can exclude smooth movement for certain types of windows. Just like the animations of opening (animation-open-exclude) and closing (animation-unmap-exclude) of windows, the same would be filtering the animation of smoothness but for the movement of windows.

Certain windows have animations created by rubato and these animations worked well since picom did not include animations. Now the rubato animation doesn't look good because it interferes with the compfy motion animation as I use rubato to interpolate the window motion. I think it would be nice if you could exclude the motion animation for certain window types letting the user create their own animations.

The animation I use is rubato's bouncy -> search for bouncy

allusive-dev commented 9 months ago

@daricoder If you are just looking to exclude open and unmap animations take a look at this page in the wiki.

If you are looking for something else please let me know.

daricoder commented 9 months ago

Yes, I just edited my previous comment. What I am asking is to exclude the window movement animation (not open or close animation) to be able to let users define their own movement animation. In my case I use a notification window that has a motion tweening animation and it interferes with the smooth motion of compfy.

allusive-dev commented 9 months ago

let users define their own movement animation.

Hm. So let users declare their own animations (for open/unmap) using a custom syntax?

daricoder commented 9 months ago

I would suggest that smooth motion can be disabled for certain types of windows. Something like "animation-move-exclude" This way it allows the user to decide whether to create their own animations with their own libraries or use compfy's smooth motion animation.

daricoder commented 9 months ago

Maybe in the future you could see the best way to map the open and close animations (zoom, slide-up, etc.). It would be something like renaming "animation-for-open-window" to "animation-default-open-window" and the old "animation-for-open-window" to map animations to windows like: animation-for-open-window = ["class_g:slide-left = 'Rofi'", ]; I don't know these are just some ideas lol.

allusive-dev commented 9 months ago

I would suggest that smooth motion can be disabled for certain types of windows.

I'm not sure what the difference between that and animations as a whole is?

animation-for-open-window = ["class_g:slide-left = 'Rofi'", ];

This is not possible at the moment I have tried in. Passing a string into a string with a entptr being : is beyond my knowledge currently.

daricoder commented 9 months ago

I'm not sure what the difference between that and animations as a whole is?

animations=true enables animations for both opening, closing, moving and resizing windows.

You already exclude the animations for opening and closing windows with animation-open-exclude and animation-unmap-exclude but you do not exclude the animation for their movement. If you disable or exclude the animation for movement then you will let the user implement their own movement animation so that it does not interfere. In my case, I have some windows that work as widgets and have their own movement animation where compfy interferes.

allusive-dev commented 9 months ago

I see. I'll take a look into it.