-
-
Notifications
You must be signed in to change notification settings - Fork 589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
animations #1121
Comments
Forks that implements animation: |
... and mine, https://github.com/dccsillag/picom, which is what pijulius, FT-Labs and fdev31 forked from (and what the long-standing PR #772 was from). |
Oh yeah i kinda forgot about yours.... Thanks for reminding me though :D |
i can't check out the discord thread, looks like the invitation link has expired! i would be happy to hear an update about picom animations 🫠 |
thanks for pointing out. i copied it from the discord badge in the readme but it turned out that it wasn't updated when it was changed so i updated it both in the readme and here.
unfortunately, there are no updates. |
Still want animation support. Done. Here is my public, actively maintained, on the AUR fork of pijulius picom. Now on NixOS and Nixpkgs and I am always looking to add new features. Links: https://github.com/allusive-dev/picom-allusive |
Hi, I want to quickly ( 🤞 ) merge animation support after v11 release (which should be in the next few weeks, again 🤞 ). looks like @FT-Labs' fork is the most comprehensive one? so maybe i will consolidate all the PR's around that. now, I realized I never asked if @FT-Labs wants to merge their branch into this repo, i just assumed they do 😅 I will still do this either way (these are all open source after all), but if @FT-Labs wants to, we can work together and sort this all out faster than I can with only current picom developers. |
And if @FT-Labs's fork has missing features, or there is another fork I need to look at, or something, please leave a comment. |
And I would definitely appreciate @dccsillag's help as well if he has more time and is able to. |
Hello @yshui, Yes, I'm totally up for it. That would be great, because this is a work that needs more than 1 person. Any help would be appreciated, I would be glad to explain what I have done until now and explain all of the steps. |
@yshui |
I'd be happy to help. (Still a bit strained for time, though!) |
I tried out @jasper-at-windswept's fork because I was curious, and the animations are cool, but the following would need some work, imo:
It would also be great to be able to set all animation settings using rules, rather than only being able to exclude windows from opening and unmapping animations. This would allow one tweak animations in a very fine-grained way, it'd be great for e.g. menus, docks, launchers, notifications, etc. Here is a recording (i3wm): picom-animations.mp4For reference, my config is here: https://github.com/zeorin/dotfiles/blob/07f0c9bf789f8baebc40afd3b06c5586b7a0caf8/home-manager/home.nix#L2618-L2803 |
@jasper-at-windswept I intend to take from @FT-Labs 's fork, as IIUC it is the most up-to-date version. |
Hi, can you open a PR from your branch? |
No problem. Looking forward to animations in v11! |
This comment was marked as off-topic.
This comment was marked as off-topic.
Also feel free to try out my fork, it is based on FT-Labs and has animation customization throughout: rules, xprop, wintypes. May be helpful to take particular parts from it (https://github.com/XoDefender/picom) |
@kingdomkind I applied your suggested settings in Picom. The MANUAL has been configured correctly in Awesome, but all client windows appear fully black and are not being rendered by Picom. This seems to be causing significant rendering issues. |
@raven2cz the rule you added shouldn't change rendering when the animation is not triggered though. |
This worked fine for me, using my own window manager (assuming the syntax is fine) |
@kingdomkind Thanks for the info, could you share a link or file with your configuration? I'll try your setup or compare the changes. After all, my |
https://github.com/kingdomkind/pika-archconfig/blob/5414fc26590bad61d3f7f5b437e1a91d0b50c6fb/picom.conf |
@kingdomkind Interesting your configuration works! I'll try to set it all up with it. Thank you very much. This original configuration of mine causes the windows inside not to render at all if I uncomment the animations and rules at the bottom: But that's just for your information. I'll then try to make some compromise between the settings. Thanks! |
@raven2cz i figured out what's wrong, should be fixed now. |
Not sure if it is intended, but I find the following effect a little jarring: During the picom-anim.mp4Is it meant to look this way ? Or am I missing a parameter to have the corners always be rounded ? |
@g-wizzy but the rounded corner is still there? or do you mean the corners at the top? corners are still rounded, but the top half of the window is cropped out so you don't see the top corners. |
@yshui The fact that the corners are cropped during the animation is what I am talking about yes. During the slide-in, the corners at the top are squared, and I was asking if this was intentional. |
yeah, slide-in crops the window. |
is there currently a way to disable animations for a window rule? |
@PassiveLemon, yes, using the |
All I see is how to define animations for specific window types, there's no obvious way to disable them. Well I effectively disabled them by setting these for the match.
Definitely not a solution I like though. Maybe just a simple animations = false? |
@yshui Would it be hard to make the blending respect the transparency, such that it seamlessly transforms from initial window opacity to the final one? Perhaps somehow by shifting the opacity from initial "saved image" to the resulting window, such that the total opacity is transitioning smoothly? |
Is it possible to have the workspaces slide left / right depending on where you switch from.(like hyprland) Eg if im on workspace 2 and go to workspace 3 , it should slide to left and if im on workspace 3 and go to worksapce 2 , it should slide to left PS: The animations look very good, nice job! |
I believe that should work if you enable animations on geometry change? |
@Celibistrial, it was discussed multiple times and, well, it's technically possible, but this behavior severely lacks standardization and there are plenty of caveats and edge cases, so it'll be a mess to implement for a standalone compositor unlike hyprland. |
Oh alright, i don't know how compositors work but would it be possible to dynamically call animations?(tell picom to play side-in animation from a script) |
@Celibistrial, i think yshui told exactly about this somewhere. |
while sliding out the .9 opacity setting is ignored, which looks a little weird. it changes to 100% opacity during the animation. this is not happening with (dis)appear tho. good job btw, the new animations are pretty cool 👍 |
@Celibistrial, i guess this is what i was thinking and talking about: #1262 (comment). |
@DarioDarko while animation is running the values produced by the animation script take precedence over other window rules. you can easily fix this by adding a curve for opacity in you animation script. that being said, i guess for the presets i should include that by default so it works more seamlessly. |
let me explain a bit how it works now. normally, when you do alpha blend, this is what you do: where And when you interpolate between two images, this is what you do: where Now, what we really want to do is to alpha blend the interpolated image over the background, so we substitute in other words, alpha blend with the interpolated image, can be turned into 2 alpha blends, first with the old image then with the new image. and this is what picom does to avoid adding a completely new type of operation - interpolation. there is a catch though, we assumed all the color values are RGB, i.e. they don't have alphas of their own. I haven't figured out the math (and indeed i don't even know if the math will work out the same way) if the colors do have alpha values. |
If we write interpolation as (at beggining we have then it is the same as alpha blend under identifications My thinking is that the following could work. Lets denote the old/new window colors as and we end with so we just have to interpolate/blend between them using This should work generally with different colors and their alphas, and even different background colors. |
Animations are great, but are there any plans to add some API, IPC, or switch to using a full-fledged language(like lua) for animations/scripts? This is sorely lacking. And I think people have many ideas on how to use animations, and although from a technical point of view there is nothing complicated in such desires, but the limitations of DSL will not allow you to do anything like this. |
leaving this pinned for a while for further discussion but prefer creating new issues for bug reports and feature or enhancement requests. |
since there are multiple open issues requesting animations i decided to group them into a single issue to have a more or less centralized discussion, ease the progress tracking and reduce the amount of open issues.
there is also a thread in the #development channel on the discord server to ease the communication between developers interested in implementing animations.
feel free to reserve one of the first posts in this issue if you're interested in structuring it even more.
related issues:
related discussions:
related pull requests:
forks that implement animations:
feel free to post here or ping me on the discord server about additions to the lists above.
The text was updated successfully, but these errors were encountered: