QML bindings for QuickSceneEffect
At the moment, if you want to write a qtquick effect, you need to write some amount of C++ code. This is a problem because libkwineffects is unstable and you cannot simply upload your effect to store dot kde dot org and let users install it using GHNS.
We need bindings for various things such as QuickSceneEffect
, QuickSceneView
, global shortcuts, global gestures, and KConfigXT.
An example qtquick effect may look as follows
import org.kde.kwin 3.0 as KWinComponents
KWinComponents.SceneEffect {
id: effect
/* If running is true, scene views will be created;
* if running is false, scene views will be destroyed
*/
running: false
KWinComponents.Config {
id: config
key: "MyEffect"
property bool showMinimizedWindows: false
}
KWinComponents.GlobalShortcutHandler {
key: "Activate"
description: i18n("Activate my effect")
shortcuts: mykeys
defaultShortcuts: mykeys
onTriggered: effect.running = true;
}
KWinComponents.GlobalGestureHandler {
type: KWinComponents.GlobalGestureHandler.SwipeUp
fingerCount: 42
onMoved: ...
onCancelled: ...
}
view: KWinComponents.SceneView {
KWinComponents.WindowHeap { ... }
}
}
Disclaimer: The provided example above is purely for demonstration purposes
Edited by Vlad Zahorodnii