Generic Animations (BeGeneric ;-)

Various KDE 1.-4. Improvements

Source i (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
Become a Fan
7.9

Available as/for:
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.

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:

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


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

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 ;-)


Ratings & Comments

117 Comments

sxe

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

thomas12777

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)

masterdany88

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.

thomas12777

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 ;-)

masterdany88

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 :-(

masterdany88

sudo apt-get install kde-workspace-dev it helps on kubuntu 12.04/ 64 bit

masterdany88

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???

thomas12777

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

AlejandroNova

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?

thomas12777

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)

AlejandroNova

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? :)

thomas12777

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

FSchulz

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!

thomas12777

- 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)

FSchulz

- 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!

thomas12777

> I use Archlinux and installed KDE 4.8 a few hours ago. Did you use makepkg to create a package and installed it via pacman -U? Path for the lib is /usr/lib/kde4 Does actually the effect fail or the config dialog?

FSchulz

Yes I did it via makepkg and pacman -U. In /usr/lib/kde4 I have: kcm_kwin4_effect_generic_animations.so kwin4_effect_generic_animations.so Mmmh... for me the makepkg-log seems to be a bit short, here it is: [flo@linux-laptop begeneric]$ makepkg -f ==> Erstelle Paket: begeneric 0.7a-1 (So 29. Jan 16:10:05 CET 2012) ==> Prüfe Laufzeit-Abhängigkeiten... ==> Prüfe Buildtime-Abhängigkeiten... ==> Empfange Quellen... -> 145674-generic_animations-kwin-fx-0.7a.txz gefunden ==> Überprüfe Gültigkeit der Quell-Dateien mit md5sums... 145674-generic_animations-kwin-fx-0.7a.txz ... Durchgelaufen ==> Entpacke Quellen... -> Entpacke 145674-generic_animations-kwin-fx-0.7a.txz mit bsdtar ==> Entferne existierendes pkg/ Verzeichnis... ==> Betrete fakeroot Umgebung... ==> Beginne build()... -- Found Qt-Version 4.8.0 (using /usr/bin/qmake) -- Found X11: /usr/lib/libX11.so -- Found KDE 4.7 include dir: /usr/include -- Found KDE 4.7 library dir: /usr/lib -- Found the KDE4 kconfig_compiler preprocessor: /usr/bin/kconfig_compiler -- Found automoc4: /usr/bin/automoc4 -- Found X11: /usr/lib/libX11.so -- Configuring done -- Generating done -- Build files have been written to: /home/flo/build/begeneric/src/generic_animations-kwin-fx [ 0%] Built target kcm_kwin4_effect_generic_animations_automoc [ 50%] Built target kcm_kwin4_effect_generic_animations [ 50%] Built target kwin4_effect_generic_animations_automoc [100%] Built target kwin4_effect_generic_animations [ 0%] Built target kcm_kwin4_effect_generic_animations_automoc [ 50%] Built target kcm_kwin4_effect_generic_animations [ 50%] Built target kwin4_effect_generic_animations_automoc [100%] Built target kwin4_effect_generic_animations Install the project... -- Install configuration: "Release" -- Installing: /home/flo/build/begeneric/pkg/usr/lib/kde4/kwin4_effect_generic_animations.so -- Installing: /home/flo/build/begeneric/pkg/usr/share/kde4/services/kwin/generic_animations.desktop -- Installing: /home/flo/build/begeneric/pkg/usr/lib/kde4/kcm_kwin4_effect_generic_animations.so -- Installing: /home/flo/build/begeneric/pkg/usr/share/kde4/services/kwin/generic_animations_config.desktop kbuildsycoca4 running... ==> Säubere Installation... -> Bereinige andere Dateien... -> Komprimiere Man-Pages und Info-Seiten... -> Entferne unnötige Symbole aus Binär-Dateien und Bibliotheken... ==> Erstelle Paket ... -> Erstelle .PKGINFO Datei... -> Komprimiere Paket ... ==> Verlasse fakeroot Umgebung. Is it alright? Best regards!

thomas12777

yupp, but in case you had it installed aside the package manager before, you'd get an error on pacman -U (cause there're unmanaged files in place) The only thing left would be a wrong header (not matching the one for the actual kwin implementation) leading to different ABI versions. grep -i version /usr/include/kwineffects.h should print sth. about "182"

FSchulz

Mmmh... yep the output is this, so it looks right: [flo@linux-laptop ~]$ grep -i version /usr/include/kwineffects.h the Free Software Foundation; either version 2 of the License, or (at your option) any later version. #define KWIN_EFFECT_API_MAKE_VERSION( major, minor ) (( major ) << 8 | ( minor )) #define KWIN_EFFECT_API_VERSION_MAJOR 0 #define KWIN_EFFECT_API_VERSION_MINOR 182 #define KWIN_EFFECT_API_VERSION KWIN_EFFECT_API_MAKE_VERSION( \ KWIN_EFFECT_API_VERSION_MAJOR, KWIN_EFFECT_API_VERSION_MINOR ) KWIN_EXPORT int effect_version_kwin4_effect_##name() { return KWIN_EFFECT_API_VERSION; } \ Maybe I should remove the .kde4 folder, cause I have also some plasma glitches (in systray I don't see the (i)-icon and I don't see the kopete-icon in tray. Also virtuoso goes crazy, when I acitvate nepomuk. :( So maybe it has something to do with the .kde4 folder. I report back, when I have time to delete and recustomize my kde. Best regards! P.S. The edit-menu for the begeneric-effect works like always.

FSchulz

It also does not work, when I delete the whole .kde4 folder, so the error is somewhere else :(... Best regards!

FSchulz

- 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!

FSchulz

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! :)

FSchulz

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!

thomas12777

-> backtrace. Everything else is just text ;-) The entire thing sounds strage, though - is it a 64bit system?

FSchulz

Yes, it is a 64bit-system. Here is the backtrace: Application: KWin (kwin), signal: Segmentation fault Using host libthread_db library "/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7f629e8f77c0 (LWP 13432))] Thread 2 (Thread 0x7f6280c4e700 (LWP 13437)): #0 0x00007f6299454bc4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f629ab91bd2 in ?? () from /usr/lib/libQtScript.so.4 #2 0x00007f629ab91c09 in ?? () from /usr/lib/libQtScript.so.4 #3 0x00007f629a33b2da in ?? () from /usr/lib/libGL.so.1 #4 0x00007f6299450e7a in start_thread () from /lib/libpthread.so.0 #5 0x00007f629e128b7d in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f629e8f77c0 (LWP 13432)): [KCrash Handler] #6 0x00007f627b9e0bf5 in ?? () from /usr/lib/kde4/kwin4_effect_generic_animations.so #7 0x00007f629e4b7e39 in ?? () from /usr/lib/libkdeinit4_kwin.so #8 0x00007f62814c6022 in ?? () from /usr/lib/kde4/kwin4_effect_builtins.so #9 0x00007f629e4b7e39 in ?? () from /usr/lib/libkdeinit4_kwin.so #10 0x00007f629e4b7e39 in ?? () from /usr/lib/libkdeinit4_kwin.so #11 0x00007f629e49687b in ?? () from /usr/lib/libkdeinit4_kwin.so #12 0x00007f629e4ad34d in ?? () from /usr/lib/libkdeinit4_kwin.so #13 0x00007f629e490df8 in ?? () from /usr/lib/libkdeinit4_kwin.so #14 0x00007f62997f7e49 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4 #15 0x00007f629894d854 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #16 0x00007f62989526d3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #17 0x00007f629dc0c646 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #18 0x00007f62997df0ac in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #19 0x00007f629980ff02 in ?? () from /usr/lib/libQtCore.so.4 #20 0x00007f62998109e4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #21 0x00007f62989f1d48 in ?? () from /usr/lib/libQtGui.so.4 #22 0x00007f62997dde92 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #23 0x00007f62997de0e7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #24 0x00007f62997e2c45 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #25 0x00007f629e446616 in kdemain () from /usr/lib/libkdeinit4_kwin.so #26 0x00007f629e06738d in __libc_start_main () from /lib/libc.so.6 #27 0x0000000000400671 in _start () Best regards!

Pling
0 Affiliates
Details
license
version 0.7b
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 1

More Various KDE 1.-4. Improvements from thomas12777:

kconfig
thomas12777
last update date: 11 years ago

Score 6.1

Kontainer
thomas12777
last update date: 11 years ago

Score 7.6

BeClock
thomas12777
last update date: 13 years ago

Score 8.4

BeDistorted
thomas12777
last update date: 13 years ago

Score 7.2

BeFaded
thomas12777
last update date: 14 years ago

Score 6.8

BeShadowed
thomas12777
last update date: 14 years ago

Score 7.5

Other Various KDE 1.-4. Improvements:

Slicker Debian Package for Woody
cirrusgr
last update date: 22 years ago

Score 5.0

Konqueror/kdesktop suggestion
PovMan
last update date: 22 years ago

Score 5.0

Biiig buttons
dbojan
last update date: 20 years ago

Score 5.0

Yet Another KControl
Frans
last update date: 21 years ago

Score 5.0

Next window and next/previos window
dbojan
last update date: 20 years ago

Score 5.0

Fantasie Toolbar
katoe
last update date: 19 years ago

Score 5.0