110 Q_CLASSINFO(
"D-Bus Interface",
"org.kde.kwin.Effects")
112 Q_PROPERTY(QStringList activeEffects READ activeEffects)
113 Q_PROPERTY(QStringList loadedEffects READ loadedEffects)
114 Q_PROPERTY(QStringList listOfEffects READ listOfEffects)
116 Q_PROPERTY(
KWin::
VirtualDesktop *currentDesktop READ currentDesktop WRITE setCurrentDesktop NOTIFY desktopChanged)
117 Q_PROPERTY(QString currentActivity READ currentActivity NOTIFY currentActivityChanged)
118 Q_PROPERTY(
KWin::
EffectWindow *activeWindow READ activeWindow WRITE activateWindow NOTIFY windowActivated)
119 Q_PROPERTY(QSize desktopGridSize READ desktopGridSize NOTIFY desktopGridSizeChanged)
120 Q_PROPERTY(
int desktopGridWidth READ desktopGridWidth NOTIFY desktopGridWidthChanged)
121 Q_PROPERTY(
int desktopGridHeight READ desktopGridHeight NOTIFY desktopGridHeightChanged)
122 Q_PROPERTY(
int workspaceWidth READ workspaceWidth)
123 Q_PROPERTY(
int workspaceHeight READ workspaceHeight)
125 Q_PROPERTY(
bool optionRollOverDesktops READ optionRollOverDesktops)
134 Q_PROPERTY(qreal animationTimeFactor READ animationTimeFactor)
139 Q_PROPERTY(
bool decorationsHaveAlpha READ decorationsHaveAlpha)
141 Q_PROPERTY(QPointF cursorPos READ cursorPos)
142 Q_PROPERTY(QSize virtualScreenSize READ virtualScreenSize NOTIFY virtualScreenSizeChanged)
143 Q_PROPERTY(QRect virtualScreenGeometry READ virtualScreenGeometry NOTIFY virtualScreenGeometryChanged)
144 Q_PROPERTY(
bool hasActiveFullScreenEffect READ hasActiveFullScreenEffect NOTIFY hasActiveFullScreenEffectChanged)
168 void postPaintScreen();
181 QPointF cursorPos() const;
182 bool grabKeyboard(
Effect *effect);
183 void ungrabKeyboard();
204 void stopMouseInterception(
Effect *effect);
205 bool isMouseInterception() const;
207 bool checkInputWindowEvent(QMouseEvent *e);
208 bool checkInputWindowEvent(QWheelEvent *e);
209 void checkInputWindowStacking();
211 void grabbedKeyboardEvent(QKeyEvent *e);
212 bool hasKeyboardGrab() const;
221 void registerPointerShortcut(Qt::KeyboardModifiers modifiers, Qt::
MouseButton pointerButtons, QAction *action);
229 void registerAxisShortcut(Qt::KeyboardModifiers modifiers,
PointerAxisDirection axis, QAction *action);
238 void registerTouchpadSwipeShortcut(
SwipeDirection dir, uint fingerCount, QAction *onUp, std::function<
void(qreal)> progressCallback = {});
240 void registerTouchpadPinchShortcut(
PinchDirection dir, uint fingerCount, QAction *onUp, std::function<
void(qreal)> progressCallback = {});
249 void registerTouchscreenSwipeShortcut(SwipeDirection direction, uint fingerCount, QAction *action, std::function<
void(qreal)> progressCallback);
252 void startMousePolling();
253 void stopMousePolling();
255 void reserveElectricBorder(ElectricBorder border, Effect *effect);
256 void unreserveElectricBorder(ElectricBorder border, Effect *effect);
271 void registerTouchBorder(ElectricBorder border, QAction *action);
289 void registerRealtimeTouchBorder(ElectricBorder border, QAction *action, TouchBorderCallback progressCallback);
297 void unregisterTouchBorder(ElectricBorder border, QAction *action);
302 Q_SCRIPTABLE
void moveWindow(
KWin::EffectWindow *w,
const QPoint &pos,
bool snap =
false,
double snapAdjust = 1.0);
309 Q_SCRIPTABLE
void windowToDesktops(
KWin::EffectWindow *w,
const QList<KWin::VirtualDesktop *> &desktops);
312 void setShowingDesktop(
bool showing);
318 QString currentActivity()
const;
323 VirtualDesktop *currentDesktop()
const;
327 QList<VirtualDesktop *> desktops()
const;
335 QSize desktopGridSize()
const;
339 int desktopGridWidth()
const;
343 int desktopGridHeight()
const;
347 int workspaceWidth()
const;
351 int workspaceHeight()
const;
356 VirtualDesktop *desktopAtCoords(QPoint coords)
const;
360 QPoint desktopGridCoords(VirtualDesktop *desktop)
const;
364 QPoint desktopCoords(VirtualDesktop *desktop)
const;
386 bool optionRollOverDesktops()
const;
388 Output *activeScreen()
const;
389 QRectF clientArea(clientAreaOption,
const Output *screen,
const VirtualDesktop *desktop)
const;
390 QRectF clientArea(clientAreaOption,
const EffectWindow *c)
const;
391 QRectF clientArea(clientAreaOption,
const QPoint &p,
const VirtualDesktop *desktop)
const;
401 QSize virtualScreenSize()
const;
410 QRect virtualScreenGeometry()
const;
418 double animationTimeFactor()
const;
439 QList<EffectWindow *> stackingOrder()
const;
443 void setTabBoxWindow(EffectWindow *);
444 QList<EffectWindow *> currentTabBoxWindowList()
const;
448 EffectWindow *currentTabBoxWindow()
const;
450 void setActiveFullScreenEffect(Effect *e);
451 Effect *activeFullScreenEffect()
const;
458 Q_SCRIPTABLE
void addRepaintFull();
459 Q_SCRIPTABLE
void addRepaint(
const QRectF &r);
460 Q_SCRIPTABLE
void addRepaint(
const QRect &r);
461 Q_SCRIPTABLE
void addRepaint(
const QRegion &r);
462 Q_SCRIPTABLE
void addRepaint(
int x,
int y,
int w,
int h);
464 CompositingType compositingType()
const;
470 bool isOpenGLCompositing()
const;
479 QPainter *scenePainter();
482 QByteArray readRootProperty(
long atom,
long type,
int format)
const;
500 xcb_atom_t announceSupportProperty(
const QByteArray &propertyName, Effect *effect);
513 void removeSupportProperty(
const QByteArray &propertyName, Effect *effect);
518 bool hasDecorationShadows()
const;
524 bool decorationsHaveAlpha()
const;
534 void reloadEffect(Effect *effect);
535 Effect *provides(Effect::Feature ef);
536 Effect *findEffect(
const QString &name)
const;
537 QStringList loadedEffects()
const;
538 QStringList listOfEffects()
const;
539 void unloadAllEffects();
540 QStringList activeEffects()
const;
541 bool isEffectActive(
const QString &pluginId)
const;
553 bool isScreenLocked()
const;
562 bool makeOpenGLContextCurrent();
571 void doneOpenGLContextCurrent();
573 xcb_connection_t *xcbConnection()
const;
574 xcb_window_t x11RootWindow()
const;
581 Display *waylandDisplay()
const;
591 bool animationsSupported()
const;
598 PlatformCursorImage cursorImage()
const;
617 bool isCursorHidden()
const;
631 void startInteractiveWindowSelection(std::function<
void(
KWin::EffectWindow *)> callback);
646 void startInteractivePositionSelection(std::function<
void(
const QPointF &)> callback);
656 void showOnScreenMessage(
const QString &message,
const QString &iconName = QString());
668 SkipsCloseAnimation = 1
670 Q_DECLARE_FLAGS(OnScreenMessageHideFlags, OnScreenMessageHideFlag)
677 void hideOnScreenMessage(OnScreenMessageHideFlags flags = OnScreenMessageHideFlags());
683 KSharedConfigPtr config()
const;
689 KSharedConfigPtr inputConfig()
const;
694 bool hasActiveFullScreenEffect()
const;
712 QList<Output *> screens()
const;
713 Output *screenAt(
const QPoint &point)
const;
714 Output *findScreen(
const QString &name)
const;
715 Output *findScreen(
int screenId)
const;
718 bool isInputPanelOverlay()
const;
720 QQmlEngine *qmlEngine()
const;
725 bool blocksDirectScanout()
const;
732 bool touchDown(qint32
id,
const QPointF &pos, std::chrono::microseconds time);
733 bool touchMotion(qint32
id,
const QPointF &pos, std::chrono::microseconds time);
734 bool touchUp(qint32
id, std::chrono::microseconds time);
737 bool tabletToolButtonEvent(uint button,
bool pressed,
const KWin::TabletToolId &tabletToolId, std::chrono::microseconds time);
738 bool tabletPadButtonEvent(uint button,
bool pressed,
const KWin::TabletPadId &tabletPadId, std::chrono::microseconds time);
739 bool tabletPadStripEvent(
int number,
int position,
bool isFinger,
const KWin::TabletPadId &tabletPadId, std::chrono::microseconds time);
740 bool tabletPadRingEvent(
int number,
int position,
bool isFinger,
const KWin::TabletPadId &tabletPadId, std::chrono::microseconds time);
742 void highlightWindows(
const QList<EffectWindow *> &windows);
746 return registered_atoms.contains(atom);
890 Qt::MouseButtons buttons, Qt::MouseButtons oldbuttons,
891 Qt::KeyboardModifiers modifiers, Qt::KeyboardModifiers oldmodifiers);
1035 Q_SCRIPTABLE
void reconfigureEffect(
const QString &name);
1036 Q_SCRIPTABLE
bool loadEffect(
const QString &name);
1037 Q_SCRIPTABLE
void toggleEffect(
const QString &name);
1038 Q_SCRIPTABLE
void unloadEffect(
const QString &name);
1039 Q_SCRIPTABLE
bool isEffectLoaded(
const QString &name)
const;
1040 Q_SCRIPTABLE
bool isEffectSupported(
const QString &name);
1041 Q_SCRIPTABLE QList<bool> areEffectsSupported(
const QStringList &names);
1042 Q_SCRIPTABLE QString supportInformation(
const QString &name)
const;
1043 Q_SCRIPTABLE QString debug(
const QString &name,
const QString ¶meter = QString())
const;
1046 void connectNotify(
const QMetaMethod &signal)
override;
1047 void disconnectNotify(
const QMetaMethod &signal)
override;
1048 void effectsChanged();
1054 virtual bool doGrabKeyboard();
1058 virtual void doUngrabKeyboard();
1063 virtual void doStartMouseInterception(Qt::CursorShape shape);
1068 virtual void doStopMouseInterception();
1073 virtual void doCheckInputWindowStacking();
1075 void registerPropertyType(
long atom,
bool reg);
1076 void destroyEffect(
Effect *effect);
1077 void reconfigureEffects();