
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
*** 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)
9 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 ;-)
9 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
8 years ago
Here is the error:
http://wklej.org/id/930156
Would be nice to get some help.
Thanks
Report
thomas12777
8 years ago
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
8 years ago
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
thomas12777
8 years ago
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
8 years ago
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
8 years ago
sudo apt-get install kde-workspace-dev
it helps on kubuntu 12.04/ 64 bit
Report
masterdany88
8 years ago
Report
thomas12777
8 years ago
[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
9 years ago
Any ETA about proper minimizing and virtual desktop switching support? Will the required KWin pieces fall into place for KDE 4.9?
Report
thomas12777
9 years ago
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
9 years ago
- 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
thomas12777
9 years ago
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
9 years ago
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
thomas12777
9 years ago
- 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
9 years ago
- 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
9 years ago
Best regards and thanks for your help! :)
Report
FSchulz
9 years ago
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
thomas12777
9 years ago
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
thomas12777
8 years ago
Report
thomas12777
8 years ago
Report
masterdany88
8 years ago
Report
FSchulz
9 years ago
/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
thomas12777
9 years ago
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
9 years ago
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
thomas12777
9 years ago
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