Generic Animations (BeGeneric ;-)

Various KDE 1.-4. Improvements

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

14
Score 81.1%
Description:


*** CONTINUED AS "BE::Animated" ***
https://sourceforge.net/p/bekwinfx/

A generic animation effect for kwin.
Think of BeDropped on steroids.

It allows you to -per window type- combine various animations on
- Opacity
- Scale
- Position
- Size
- Rotation
- Brightness
- Saturation

on (so far)
- Window Added (Show)
- Window Closed
- Window Minimized
- Window Unminimized

and could by this replace the Scale, Fade, Glide effects and most of BeDropped.

It also fades opacity changes but so far lacks support for at least Un/Shading and Un/Maximization (requires some addition to KWin for 4.8)

Since it's mostly a demo for the AnimationEffect class which i'd like to add to KWin for 4.8 so that various effects can be rebased onto it it is really important to have a lot of testing, feedback and bug reports on this to have the class in perfect shape for KWin.

Thanks a lot, much fun creating animations and feel free to share them (eg. post them here or whatever)
Last changelog:

7 years ago

0.7b
-----
*** HOTFIX *** workaround for a bug in KWin 4.8.0 - many thanks to Florian S. for patient testing

0.7a
-----
* unifies damage calculation of scaling and translation. Should fix remaining glitches.

Still: Test! Stress it with complex funny animation combos and try the show paint effect to check it doesn't repaint too much either ("Fly my pretties, fly" :-)

0.7
-----
* mostly performance related. Doesn't repaint the entire screen but only the relevant area (but for the rotation)
This is prone to repaint glitches, so test it and feel free to report.

0.6
-----
* skip resize animations for just shown windows (plasma extenders?)
* add experimental support to substitute the "sliding popups" effect (disable it in case)


0.5
-----
Bugfix release:
a) windows that cross the top or left edge of the screen didn't animate the position
b) resize signals were sometimes connected twice (don't ask me why)


0.4
-----
* BAD NEWS:
We're using QEasingCurve's now, what means all your animation shapes are now wrong - sorry (but it's not gonna change again, promised)
Notice that all other settings remain valid, so you actually 'only' have to step through your animations and fix the shape.

* GOOD NEWS everyone ;-)
- There's now "Implicit activation" which matches windows being activated for show/unminimize events (if those are animated)
- There's more control on virtual desktop changes
- Would you please stop playing with the maximize button now? ...
Ie. the release highlight are probably animated resizes =) They could need visual improvement, like blending, though =)

* Fixed a theoretic segfault
* Tried to "unscarify" the UI (w/o massive changes) - maybe it got worse. Shout out loud.
* Animated Opacity & Size changes are (now) configurable
* There's a PKGBUILD, so Arch users can just call... well, an Arch user is supposed to know or figure that :P


0.3
-------
* 3 more animation shapes (overshoot either direction)
* ignore slidingPopups (plasma notifications)
* if there's a delay, the window stays at the source position until the animation starts
* dbus interface (you can also define custom animation aliases and call them via dbus - just so far the config UI can't and you'll have to edit them by hand ;-)
* i recall to have fixed two or three bugs, but forgot which :P

0.2
-------
* Fixed a bunch of ui bugs, including pointless value restrictions ;-)
* Fixed "relativity" handling for several transition modes
* Added Gaussian animation shape (allowing bumps)
* Added support for deactivating windows animations
* Added support for desktop change animations
* Probably forgot some other changes ;-)

sxe

6 years ago

I'm not sure if this happened in KDE 4.9 as well but i cannot compile begeneric anymore.

Here is the error:
http://wklej.org/id/930156

Would be nice to get some help.

Thanks

Report

C

thomas12777

6 years ago

Please obtain the sources from here:
https://sourceforge.net/p/bekwinfx/

And do no longer build against the bundled versions of animationeffect - the class is maintained in kwin and up-to-date there.
(The git sources and probably even this package should actually have them completely deactivated - was only required for KDE 4.8)

Report

masterdany88

7 years ago

I really like Your animation.
They are smooth, fast, acurate.
But configuration is so hard.
After two hours of trying to set it in my way I gave up. You are developer so You understand it, but not a regular user.
So my request is that:
can You add menu when users can easily choose between behaviour with few ready configuration that they would work out of box?
and the menu advanced for "advanced users" and there the current configuration window?
I will be pleased.
cause manually it imposible to get nice animations.
especially for minimalise animation.

Report

C

thomas12777

7 years ago

I'd rather like to know what si specifically challenging - understanding the events or setting up an animation and in latter case what in particular (like selecting matching window types or understanding the value scales or whatever)

If i wanted to ship some presets and allow customization i could have spared the rather complex config ui and asked ppl. to write config strings by hand ;-)

Report

masterdany88

7 years ago

Hello I would like ot ask You about dis error?


CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Performing Test _OFFT_IS_64BIT - Failed
-- Found KDE 4.8 include dir: /usr/include
-- Found KDE 4.8 library dir: /usr/lib
-- Found the KDE4 kconfig_compiler preprocessor: /usr/bin/kconfig_compiler
-- Found automoc4: /usr/bin/automoc4
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!
Configuration failed :-(

Report

masterdany88

7 years ago


sudo apt-get install kde-workspace-dev

it helps on kubuntu 12.04/ 64 bit

Report

masterdany88

7 years ago

Hey. I would like to change setting. But Its hard for me, would You like to give us some ready settings that I could only import and save???

Report

C

thomas12777

7 years ago

copied from page 2 of the forum ;-)

[Effect-GenericAnimations]
ActivationAnimations=289:Scale:0:500:1,1.1:5:0:
AddAnimations=65535:Opacity:0:300::1:0:0,0;33:Scale:0:300::2:0:0,0;2048:Scale:528:300::2:0:0,0;17408:Scale:66:300::2:0:0,0
CloseAnimations=65535:Opacity:4096:600:0,0:2:0:;2048:Scale:528:600:0,0:1:0:;17408:Scale:2:600:0,0:1:0:
DeactivationAnimations=
EnteringDesktopAnimations=65535:Position:2304:500::2:0:-1,0
LeavingDesktopAnimations=65535:Position:8194:300:-1,1:0:0:
MinimizeAnimations=33:Position:4:600:0,-1:6:0:
UnminimizeAnimations=33:Position:128:400::2:0:0,-1

Report

AlejandroNova

7 years ago

Thanks for all your hard work in Bespin, and now, in this.

Any ETA about proper minimizing and virtual desktop switching support? Will the required KWin pieces fall into place for KDE 4.9?

Report

C

thomas12777

7 years ago

By proper virtual desktop support i assume you mean to keep the changing window static (as if it as set to be on all desktops?)
That should be no problem for 4.9

Regarding proper minimization: in case that points "minimize to taskbar" that's rather out of scope, because
a) minimize to taskbar is usually broken on the taskbar not exporting the target rect - but that's actually said to be fixed in 4.8 (for plasma taskbars)
b) one would have to add a "iconRect" anchor for this purpose.

(b) would actually be possible right now, but pretty special casing (esp. since i don't use taskbars ;-)
Given that the sublying class will power easy-to-use JavaScript usage in 4.9, replacing several existent effects, i'm not sure whether it would make sense here (notably since you can just use the minimize effect instead)

Report

AlejandroNova

7 years ago

I don't want to use any other effect, because your BeGeneric library:

- Has acceleration, so, it can emulate the soft, slick closing effects of Aero (one of the few things I really like about Windows)
- Runs at full speed always. KWin native effects always look jerky if I compare them with BeGeneric.

So, if you are going to replace all effects with this for KDE 4.9, I congratulate you and thank you. But... can something be made? :)

Report

C

thomas12777

7 years ago

I can probably add a "proprietary" anchor to the effect on top of the class anchors, determining target rects is usually out of scope of the animation class.

To prevent misunderstandings: i doubt this particular effect will enter kwin, but instead many effects will be rewritten in JavaScript using the animation class being the working horse of this effect (since that is only about event interception, it will hardly be an issue) - what means that you can easily add such effect and even distribute it via GHNS

Report

FSchulz

7 years ago

Hey!

Any idea why it don't work for me with KDE 4.8? I recompiled it and reinstalled it with KDE 4.8, but the systemsetting dialog says, that it can't activate the effect.

Best regards!

Report

C

thomas12777

7 years ago

- installed to correct path?
- if you had an outdated lib in place when kwin started, the Qt plugin system it might not touch that lib again (so restart "kwin --replace")
- run kbuildsycoca4
- run "kcmshell4 kwincompositing" from konsole and watch for lines containing generic animations

Just recompiled it yesterday evening when my distro shipped 4.8 - worked out of the box (and should, since i've used it to do the class for KWin 4.8 - so it's been in my 4.8 installation all the time)

Report

FSchulz

7 years ago

- Mmmh... what is the correct path?
- I did a restart, before I compiled it, so I think the lib was not outdated.
- run kbuildsycoca4. Check - did it.
- run "kcmshell4 kwincompositing" from konsole and watch for lines containing generic animations --> I get this:

kcmshell(6810)/kdecore (KPluginInfo) KPluginInfo::kcmServices: found 1 offers for "kwin4_effect_generic_animations"

I use Archlinux and installed KDE 4.8 a few hours ago. Don't know why I have those problems. :(

Best regards!

Report

FSchulz

7 years ago

Ok sorry for all this traffic, but now it works. Don't ask me why... But I deleted my whole KDE and I go through my whole config folders and deleted all configs and now it works! Sorry for the "panic" ;), it was my systems fault. The good point is, that I now have a absolutly clean KDE ;)

Best regards and thanks for your help! :)

Report

FSchulz

7 years ago

Ah f***.

Now KWin crashes like hell, when I use begeneric a few minutes. And it crashes often. Every 30 seconds or something like this. I don't know why. I can't reproduce it. Sometimes I go over my icontasks-plasmoid (the build-in version) to launch something and sometimes I do nothing. Here is my config, maybe it relates to this:

[Effect-GenericAnimations]
ActivationAnimations=289:Scale:0:320:1,1.02:46:0:
AddAnimations=63455:Opacity:0:500::0:0:0,0;2048:Scale:528:300::2:0:0,0;17408:Scale:258:300:1,1:2:0:1,0.01;1:Scale:0:500:1,1.1:46:0:;32:Scale:258:600:1,1:7:0:1,0.01;2048:Opacity:0:300::0:0:0,0;32:Opacity:0:600::15:0:0,0
CloseAnimations=63455:Opacity:4096:500:0.01,0:0:0:;2048:Scale:528:300:0,0:1:0:;17408:Scale:2:500:0,0:1:0:;32:Scale:258:600:1,0:3:0:1,1;1:Scale:64:500:1,0.01:1:0:1,1;2048:Opacity:0:300:0,0:0:0:;32:Opacity:0:600:0.01,0:15:0:
DeactivationAnimations=
EnteringDesktopAnimations=
EnteringDesktopReverseAnimations=
ImplicitActivationAnimations=
LeavingDesktopAnimations=
LeavingDesktopReverseAnimations=
MinimizeAnimations=33:Position:8196:620:0,0.5:35:0:;33:Opacity:0:620:0.01,1:0:0:1,1
Opacity=true
SlidingPopups=true
UnMaximize=true
UnminimizeAnimations=33:Position:3200:620::35:0:0.01,0.5;33:Opacity:0:620:1,1:0:0:0.01,0.5

It is in my kwinrc. Also I activated this other effects:

-Eltern-Fenster abdunkeln
-Nach hinten rutschen
-Abmeldung
-Andmelden
-Bildschirmfoto
-Dashboard
-Gleiten (at desktop change)
-Transparenz
-Verwischen
-3D Fenstergalerie
-Arbeitsflächen-Umschalter (Raster)
-Fenster zeigen
-Umriss
-Programmstartanzeige

I have a nvidia with the 290. driver.

Best regards!

Report

C

thomas12777

7 years ago

Thanks, it's most likely this
http://bugs.kde.org/show_bug.cgi?id=292614

which ends up in an unresolvable pure virtual function call, but might be a stack corruption and could be related to this fix
https://git.reviewboard.kde.org/r/103733/

and will (in case) ultimately be resolved by this one
https://git.reviewboard.kde.org/r/103742/


For now, please try to alter animationeffect.cpp:~664

void AnimationEffect::_windowDeleted( EffectWindow* w )
{
Q_D(AnimationEffect);
d->m_animations.remove( w );
}

to

void AnimationEffect::_windowDeleted( EffectWindow* w )
{
Q_D(AnimationEffect);
d->m_zombies.remove( w );
d->m_animations.remove( w );
}

Recompile and check whether the bug still occurs.
This is important.

Report

C

thomas12777

7 years ago

The "out of my mind" patch was just wrong, the current version contains the workaround anyway (it's still required)

Report

C

thomas12777

7 years ago

The "out of my mind" patch was just wrong, the current version contains the workaround anyway (it's still required)

Report

masterdany88

7 years ago

try with 4.8.1

Report

FSchulz

7 years ago

/home/flo/generic_animations-kwin-fx/animationeffect.cpp: In Elementfunktion »void KWin::AnimationEffect::updateDamageAreas()«:
/home/flo/generic_animations-kwin-fx/animationeffect.cpp:565:20: Warnung: Aufzählungswert »Clipping« wird nicht von switch behandelt [-Wswitch]
/home/flo/generic_animations-kwin-fx/animationeffect.cpp: In Elementfunktion »void KWin::AnimationEffect::_windowDeleted(KWin::EffectWindow*)«:
/home/flo/generic_animations-kwin-fx/animationeffect.cpp:664:15: Fehler: »KWin::EffectWindowList« hat kein Element namens »remove«
make[2]: *** [CMakeFiles/kwin4_effect_generic_animations.dir/animationeffect.o] Fehler 1
make[1]: *** [CMakeFiles/kwin4_effect_generic_animations.dir/all] Fehler 2
make: *** [all] Fehler 2

No remove funktion?

Best regards!

Report

C

thomas12777

7 years ago

You don't - the custom installation will just override the files installed by the package - the package system doesn't notice that at all.
When you uninstall the package, all files of the custom install will be removed as well (or rather instead)

Otherwise you can just manipulate the configure script and change the build type there.

Report

FSchulz

7 years ago

Ok, thanks for the explanation. :)

Here it is:

Application: KWin (kwin), signal: Segmentation fault
Using host libthread_db library "/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f17bd4bb7c0 (LWP 6434))]

Thread 2 (Thread 0x7f179b7f7700 (LWP 6440)):
#0 0x00007f17b8019bc4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1 0x00007f17b9756bd2 in ?? () from /usr/lib/libQtScript.so.4
#2 0x00007f17b9756c09 in ?? () from /usr/lib/libQtScript.so.4
#3 0x00007f17b8f002da in ?? () from /usr/lib/libGL.so.1
#4 0x00007f17b8015e7a in start_thread () from /lib/libpthread.so.0
#5 0x00007f17bccedb7d in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f17bd4bb7c0 (LWP 6434)):
[KCrash Handler]
#6 0x00007f1798e1659e in KWin::AnimationEffect::prePaintScreen (this=<optimized out>, data=..., time=18) at /home/flo/generic_animations-kwin-fx/animationeffect.cpp:231
#7 0x00007f17bd07ce39 in ?? () from /usr/lib/libkdeinit4_kwin.so
#8 0x00007f17a0073022 in ?? () from /usr/lib/kde4/kwin4_effect_builtins.so
#9 0x00007f17bd07ce39 in ?? () from /usr/lib/libkdeinit4_kwin.so
#10 0x00007f17bd07ce39 in ?? () from /usr/lib/libkdeinit4_kwin.so
#11 0x00007f17bd05b87b in ?? () from /usr/lib/libkdeinit4_kwin.so
#12 0x00007f17bd07234d in ?? () from /usr/lib/libkdeinit4_kwin.so
#13 0x00007f17bd055df8 in ?? () from /usr/lib/libkdeinit4_kwin.so
#14 0x00007f17b83bce49 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#15 0x00007f17b7512854 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#16 0x00007f17b75176d3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007f17bc7d1646 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#18 0x00007f17b83a40ac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#19 0x00007f17b83d4f02 in ?? () from /usr/lib/libQtCore.so.4
#20 0x00007f17b83d59e4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#21 0x00007f17b75b6d48 in ?? () from /usr/lib/libQtGui.so.4
#22 0x00007f17b83a2e92 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#23 0x00007f17b83a30e7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#24 0x00007f17b83a7c45 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#25 0x00007f17bd00b616 in kdemain () from /usr/lib/libkdeinit4_kwin.so
#26 0x00007f17bcc2c38d in __libc_start_main () from /lib/libc.so.6
#27 0x0000000000400671 in _start ()


Best regards!

Report

C

thomas12777

7 years ago

please recompile aside the package manager.
call configure; cd build; ccmake .
there replace "Release" by "Debug", press, "c", "g" and "q"
then make && sudo make install

restart kwin, wait for the crash and post the backtrace (this one just says "crashes in this library", but not because of what)

Report

7 years ago

0.7b
-----
*** HOTFIX *** workaround for a bug in KWin 4.8.0 - many thanks to Florian S. for patient testing

0.7a
-----
* unifies damage calculation of scaling and translation. Should fix remaining glitches.

Still: Test! Stress it with complex funny animation combos and try the show paint effect to check it doesn't repaint too much either ("Fly my pretties, fly" :-)

0.7
-----
* mostly performance related. Doesn't repaint the entire screen but only the relevant area (but for the rotation)
This is prone to repaint glitches, so test it and feel free to report.

0.6
-----
* skip resize animations for just shown windows (plasma extenders?)
* add experimental support to substitute the "sliding popups" effect (disable it in case)


0.5
-----
Bugfix release:
a) windows that cross the top or left edge of the screen didn't animate the position
b) resize signals were sometimes connected twice (don't ask me why)


0.4
-----
* BAD NEWS:
We're using QEasingCurve's now, what means all your animation shapes are now wrong - sorry (but it's not gonna change again, promised)
Notice that all other settings remain valid, so you actually 'only' have to step through your animations and fix the shape.

* GOOD NEWS everyone ;-)
- There's now "Implicit activation" which matches windows being activated for show/unminimize events (if those are animated)
- There's more control on virtual desktop changes
- Would you please stop playing with the maximize button now? ...
Ie. the release highlight are probably animated resizes =) They could need visual improvement, like blending, though =)

* Fixed a theoretic segfault
* Tried to "unscarify" the UI (w/o massive changes) - maybe it got worse. Shout out loud.
* Animated Opacity & Size changes are (now) configurable
* There's a PKGBUILD, so Arch users can just call... well, an Arch user is supposed to know or figure that :P


0.3
-------
* 3 more animation shapes (overshoot either direction)
* ignore slidingPopups (plasma notifications)
* if there's a delay, the window stays at the source position until the animation starts
* dbus interface (you can also define custom animation aliases and call them via dbus - just so far the config UI can't and you'll have to edit them by hand ;-)
* i recall to have fixed two or three bugs, but forgot which :P

0.2
-------
* Fixed a bunch of ui bugs, including pointless value restrictions ;-)
* Fixed "relativity" handling for several transition modes
* Added Gaussian animation shape (allowing bumps)
* Added support for deactivating windows animations
* Added support for desktop change animations
* Probably forgot some other changes ;-)

12345678910
14
product-maker mirkogennari Oct 19 2015 9 excellent
product-maker RAIDENSUB Jun 12 2012 9 excellent
product-maker tobaj Feb 20 2012 9 excellent
product-maker Pyruzan Dec 13 2011 9 excellent
product-maker pvt14 Dec 12 2011 9 excellent
product-maker TommyCZ Nov 28 2011 9 excellent
product-maker deabru Nov 22 2011 9 excellent
product-maker sxe Nov 21 2011 9 excellent
product-maker FSchulz Oct 31 2011 9 excellent
product-maker OdinEidolon Oct 18 2011 9 excellent
product-maker nikore90 Oct 04 2011 9 excellent
product-maker srog Oct 03 2011 9 excellent
product-maker Contrast Oct 02 2011 9 excellent
product-maker FraSMOG Oct 02 2011 9 excellent
product-maker Base: 4 x 5.0 Ratings
AlejandroNova
Mar 01 2012
LGD
Feb 24 2012
paperclip
Jan 27 2012
saftsocken
Jan 23 2012
TommyCZ
Nov 28 2011
deabru
Nov 22 2011
sxe
Nov 21 2011
marcotangaro
Nov 20 2011
pedromc
Nov 19 2011
FSchulz
Nov 07 2011
OdinEidolon
Oct 18 2011
TheRob
Oct 17 2011
naolloan
Oct 14 2011
Contrast
Oct 02 2011
File (click to download) Version Description PackagetypeArchitecture Downloads Date Filesize DL OCS-Install MD5SUM
*Needs ocs-url or ocs-store to install things
Pling
0 Affiliates
Details
license
version
0.7b
updated Jan 30 2012
added Oct 02 2011
downloads 24h
0
page views 24h 4