Development/Tutorials/KWin/Scripting/API 4.9: Difference between revisions

From KDE TechBase
No edit summary
(Update to 4.11)
Line 83: Line 83:
* '''clientFullScreenSet(KWin::Client *client, bool fullScreen, bool user)'''
* '''clientFullScreenSet(KWin::Client *client, bool fullScreen, bool user)'''
* '''clientSetKeepAbove(KWin::Client *client, bool keepAbove)'''
* '''clientSetKeepAbove(KWin::Client *client, bool keepAbove)'''
* '''numberDesktopsChanged(int oldNumberOfDesktops)''': Signal emitted whenever the number of desktops changed. To get the current number of desktops use the property desktops. oldNumberOfDesktops The previous number of desktops.
* '''numberDesktopsChanged(uint oldNumberOfDesktops)''': Signal emitted whenever the number of desktops changed. To get the current number of desktops use the property desktops.  
* '''clientDemandsAttentionChanged(KWin::Client *client, bool set)''': The demands attention state for Client c changed to set. c The Client for which demands attention changed set New value of demands attention
 
* '''numberScreensChanged(int count)''': Signal emitted when the number of screens changes. count The new number of screens
oldNumberOfDesktops
 
 
The previous number of desktops.
* '''desktopLayoutChanged()''': Signal emitted whenever the layout of virtual desktops changed. That is desktopGrid(Size/Width/Height) will have new values. 4.11
* '''clientDemandsAttentionChanged(KWin::Client *client, bool set)''': The demands attention state for Client c changed to set.  
 
c
 
 
The Client for which demands attention changed  
 
 
 
set
 
 
New value of demands attention
* '''numberScreensChanged(int count)''': Signal emitted when the number of screens changes.  
 
count
 
 
The new number of screens
* '''screenResized(int screen)''': This signal is emitted when the size of screen changes. Don't forget to fetch an updated client area.
* '''screenResized(int screen)''': This signal is emitted when the size of screen changes. Don't forget to fetch an updated client area.
* '''currentActivityChanged(const QString &id)''': Signal emitted whenever the current activity changed. id id of the new activity
* '''currentActivityChanged(const QString &id)''': Signal emitted whenever the current activity changed.  
* '''activitiesChanged(const QString &id)''': Signal emitted whenever the list of activities changed. id id of the new activity
 
* '''activityAdded(const QString &id)''': This signal is emitted when a new activity is added id id of the new activity
id
* '''activityRemoved(const QString &id)''': This signal is emitted when the activity is removed id id of the removed activity
 
 
id of the new activity
* '''activitiesChanged(const QString &id)''': Signal emitted whenever the list of activities changed.  
 
id
 
 
id of the new activity
* '''activityAdded(const QString &id)''': This signal is emitted when a new activity is added  
 
id
 
 
id of the new activity
* '''activityRemoved(const QString &id)''': This signal is emitted when the activity is removed  
 
id
 
 
id of the removed activity
=== Functions ===
=== Functions ===
    
    
Line 150: Line 193:
* '''hideOutline()''': Hides the outline previously shown by showOutline.
* '''hideOutline()''': Hides the outline previously shown by showOutline.
* ''QList< KWin::Client * >'' '''clientList() const ''': List of Clients currently managed by KWin.
* ''QList< KWin::Client * >'' '''clientList() const ''': List of Clients currently managed by KWin.
* ''QRect'' '''clientArea(ClientAreaOption option, int screen, int desktop) const ''': Returns the geometry a Client can use with the specified option. This method should be preferred over other methods providing screen sizes as the various options take constraints such as struts set on panels into account. This method is also multi screen aware, but there are also options to get full areas. option The type of area which should be considered screen The screen for which the area should be considered desktop The desktop for which the area should be considered, in general there should not be a difference The specified screen geometry
* ''QRect'' '''clientArea(ClientAreaOption option, int screen, int desktop) const ''': Returns the geometry a Client can use with the specified option. This method should be preferred over other methods providing screen sizes as the various options take constraints such as struts set on panels into account. This method is also multi screen aware, but there are also options to get full areas.  
* ''QRect'' '''clientArea(ClientAreaOption option, const QPoint &point, int desktop) const ''': Overloaded method for convenience. option The type of area which should be considered point The coordinates which have to be included in the area desktop The desktop for which the area should be considered, in general there should not be a difference The specified screen geometry
 
* ''QRect'' '''clientArea(ClientAreaOption option, const KWin::Client *client) const ''': Overloaded method for convenience. client The Client for which the area should be retrieved The specified screen geometry
option
 
 
The type of area which should be considered  
 
 
 
screen
 
 
The screen for which the area should be considered  
 
 
 
desktop
 
 
The desktop for which the area should be considered, in general there should not be a difference  
 
 
The specified screen geometry
* ''QRect'' '''clientArea(ClientAreaOption option, const QPoint &point, int desktop) const ''': Overloaded method for convenience.  
 
option
 
 
The type of area which should be considered  
 
 
 
point
 
 
The coordinates which have to be included in the area  
 
 
 
desktop
 
 
The desktop for which the area should be considered, in general there should not be a difference  
 
 
The specified screen geometry
* ''QRect'' '''clientArea(ClientAreaOption option, const KWin::Client *client) const ''': Overloaded method for convenience.  
 
client
 
 
The Client for which the area should be retrieved  
 
 
The specified screen geometry
* ''QString'' '''desktopName(int desktop) const ''': Returns the name for the given desktop.
* ''QString'' '''desktopName(int desktop) const ''': Returns the name for the given desktop.
* ''QString'' '''supportInformation() const ''': Provides support information about the currently running KWin instance.
* ''QString'' '''supportInformation() const ''': Provides support information about the currently running KWin instance.
* ''KWin::Client *'' '''getClient(qulonglong windowId)''': Finds the Client with the given windowId. windowId The window Id of the Client The found Client or null
* ''KWin::Client *'' '''getClient(qulonglong windowId)''': Finds the Client with the given windowId.  
 
windowId
 
 
The window Id of the Client  
 
 
The found Client or null


    
    
Line 213: Line 316:
* '''MouseWheelChangeCurrentTab''':  
* '''MouseWheelChangeCurrentTab''':  
* '''MouseWheelNothing''':  
* '''MouseWheelNothing''':  
==== @16 ====
==== GlSwapStrategy ====
      
      
* '''ElectricDisabled''':  
* '''NoSwapEncourage''':  
* '''ElectricMoveOnly''':  
* '''CopyFrontBuffer''':  
* '''ElectricAlways''':  
* '''PaintFullScreen''':
* '''ExtendDamage''':
* '''AutoSwapStrategy''':  
=== Read-only Properties ===
=== Read-only Properties ===
    
    
* ''bool'' '''focusPolicyIsReasonable'''
* ''bool'' '''focusPolicyIsReasonable'''
* ''bool'' '''electricBorders''': Whether electric borders are enabled. With electric borders you can change desktop by moving the mouse pointer towards the edge of the screen
=== Read-write Properties ===
=== Read-write Properties ===
    
    
Line 233: Line 337:
* ''int'' '''shadeHoverInterval''': shade hover interval
* ''int'' '''shadeHoverInterval''': shade hover interval
* ''bool'' '''separateScreenFocus''': whether to see Xinerama screens separately for focus (in Alt+Tab, when activating next client)
* ''bool'' '''separateScreenFocus''': whether to see Xinerama screens separately for focus (in Alt+Tab, when activating next client)
* ''bool'' '''activeMouseScreen''': whether active Xinerama screen is the one with mouse (or with the active window)
* ''int'' '''placement'''
* ''int'' '''placement'''
* ''int'' '''borderSnapZone''': the size of the zone that triggers snapping on desktop borders
* ''int'' '''borderSnapZone''': the size of the zone that triggers snapping on desktop borders
Line 259: Line 362:
* ''uint'' '''keyCmdAllModKey'''
* ''uint'' '''keyCmdAllModKey'''
* ''bool'' '''showGeometryTip''': whether the Geometry Tip should be shown during a window move/resize.
* ''bool'' '''showGeometryTip''': whether the Geometry Tip should be shown during a window move/resize.
* ''int'' '''electricBorderDelay''': the activation delay for electric borders in milliseconds.
* ''bool'' '''condensedTitle''': whether the visible name should be condensed
* ''int'' '''electricBorderCooldown''': the trigger cooldown for electric borders in milliseconds.
* ''int'' '''electricBorderPushbackPixels''': the number of pixels the mouse cursor is pushed back when it reaches the screen edge.
* ''bool'' '''electricBorderMaximize''': Whether a window gets maximized when it reaches top screen edge while being moved.
* ''bool'' '''electricBorderMaximize''': Whether a window gets maximized when it reaches top screen edge while being moved.
* ''bool'' '''electricBorderTiling''': Whether a window is tiled to half screen when reaching left or right screen edge while been moved
* ''bool'' '''electricBorderTiling''': Whether a window is tiled to half screen when reaching left or right screen edge while been moved
Line 277: Line 378:
* ''bool'' '''unredirectFullscreen'''
* ''bool'' '''unredirectFullscreen'''
* ''int'' '''glSmoothScale''': 0 = no, 1 = yes when transformed, 2 = try trilinear when transformed; else 1, -1 = auto
* ''int'' '''glSmoothScale''': 0 = no, 1 = yes when transformed, 2 = try trilinear when transformed; else 1, -1 = auto
* ''bool'' '''glVSync'''
* ''bool'' '''colorCorrected'''
* ''bool'' '''xrenderSmoothScale'''
* ''bool'' '''xrenderSmoothScale'''
* ''uint'' '''maxFpsInterval'''
* ''qint64'' '''maxFpsInterval'''
* ''uint'' '''refreshRate'''
* ''uint'' '''refreshRate'''
* ''uint'' '''vBlankTime'''
* ''qint64'' '''vBlankTime'''
* ''bool'' '''glDirect'''
* ''bool'' '''glDirect'''
* ''bool'' '''glStrictBinding'''
* ''bool'' '''glStrictBinding'''
* ''bool'' '''glStrictBindingFollowsDriver''': Whether strict binding follows the driver or has been overwritten by a user defined config value. If true is set by the OpenGL Scene during initialization. If false glStrictBinding is set from a config value and not updated during scene initialization.
* ''bool'' '''glStrictBindingFollowsDriver''': Whether strict binding follows the driver or has been overwritten by a user defined config value. If true is set by the OpenGL Scene during initialization. If false glStrictBinding is set from a config value and not updated during scene initialization.
* ''bool'' '''glLegacy''': Whether legacy OpenGL should be used or OpenGL (ES) 2
* ''bool'' '''glLegacy''': Whether legacy OpenGL should be used or OpenGL (ES) 2
* ''bool'' '''glCoreProfile'''
* ''GlSwapStrategy'' '''glPreferBufferSwap'''
=== Signals ===
=== Signals ===
    
    
Line 297: Line 400:
* '''shadeHoverChanged()'''
* '''shadeHoverChanged()'''
* '''shadeHoverIntervalChanged()'''
* '''shadeHoverIntervalChanged()'''
* '''separateScreenFocusChanged()'''
* '''separateScreenFocusChanged(bool)'''
* '''activeMouseScreenChanged()'''
* '''placementChanged()'''
* '''placementChanged()'''
* '''borderSnapZoneChanged()'''
* '''borderSnapZoneChanged()'''
Line 305: Line 407:
* '''snapOnlyWhenOverlappingChanged()'''
* '''snapOnlyWhenOverlappingChanged()'''
* '''showDesktopIsMinimizeAllChanged()'''
* '''showDesktopIsMinimizeAllChanged()'''
* '''rollOverDesktopsChanged()'''
* '''rollOverDesktopsChanged(bool enabled)'''
* '''focusStealingPreventionLevelChanged()'''
* '''focusStealingPreventionLevelChanged()'''
* '''legacyFullscreenSupportChanged()'''
* '''legacyFullscreenSupportChanged()'''
Line 324: Line 426:
* '''keyCmdAllModKeyChanged()'''
* '''keyCmdAllModKeyChanged()'''
* '''showGeometryTipChanged()'''
* '''showGeometryTipChanged()'''
* '''electricBordersChanged()'''
* '''condensedTitleChanged()'''
* '''electricBorderDelayChanged()'''
* '''electricBorderCooldownChanged()'''
* '''electricBorderPushbackPixelsChanged()'''
* '''electricBorderMaximizeChanged()'''
* '''electricBorderMaximizeChanged()'''
* '''electricBorderTilingChanged()'''
* '''electricBorderTilingChanged()'''
Line 343: Line 442:
* '''unredirectFullscreenChanged()'''
* '''unredirectFullscreenChanged()'''
* '''glSmoothScaleChanged()'''
* '''glSmoothScaleChanged()'''
* '''glVSyncChanged()'''
* '''colorCorrectedChanged()'''
* '''xrenderSmoothScaleChanged()'''
* '''xrenderSmoothScaleChanged()'''
* '''maxFpsIntervalChanged()'''
* '''maxFpsIntervalChanged()'''
Line 352: Line 451:
* '''glStrictBindingFollowsDriverChanged()'''
* '''glStrictBindingFollowsDriverChanged()'''
* '''glLegacyChanged()'''
* '''glLegacyChanged()'''
* '''glCoreProfileChanged()'''
* '''glPreferBufferSwapChanged()'''
=== Functions ===
=== Functions ===
    
    
* '''setColorCorrected(bool colorCorrected=false)'''


    
    
Line 415: Line 517:
* '''shapedChanged()''': Signal emitted when the window's shape state changed. That is if it did not have a shape and received one or if the shape was withdrawn. Think of Chromium enabling/disabling KWin's decoration.
* '''shapedChanged()''': Signal emitted when the window's shape state changed. That is if it did not have a shape and received one or if the shape was withdrawn. Think of Chromium enabling/disabling KWin's decoration.
* '''needsRepaint()''': Emitted whenever the state changes in a way, that the Compositor should schedule a repaint of the scene.
* '''needsRepaint()''': Emitted whenever the state changes in a way, that the Compositor should schedule a repaint of the scene.
* '''activitiesChanged(KWin::Toplevel *toplevel)'''
* '''screenChanged()''': Emitted whenever the Toplevel's screen changes. This can happen either in consequence to a screen being removed/added or if the Toplevel's geometry changes. 4.11
=== Functions ===
=== Functions ===
    
    
Line 468: Line 572:
* ''QSize'' '''minSize''': Minimum size as specified in WM_NORMAL_HINTS
* ''QSize'' '''minSize''': Minimum size as specified in WM_NORMAL_HINTS
* ''QSize'' '''maxSize''': Maximum size as specified in WM_NORMAL_HINTS
* ''QSize'' '''maxSize''': Maximum size as specified in WM_NORMAL_HINTS
* ''bool'' '''decorationHasAlpha''': Whether the decoration is currently using an alpha channel.
=== Read-write Properties ===
=== Read-write Properties ===
    
    
Line 502: Line 607:
* '''modalChanged()'''
* '''modalChanged()'''
* '''shadeChanged()'''
* '''shadeChanged()'''
* '''keepAboveChanged()'''
* '''keepAboveChanged(bool)'''
* '''keepBelowChanged()'''
* '''keepBelowChanged(bool)'''
* '''minimizedChanged()'''
* '''minimizedChanged()'''
* '''moveResizedChanged()'''
* '''moveResizedChanged()'''
Line 511: Line 616:
* '''skipPagerChanged()'''
* '''skipPagerChanged()'''
* '''tabGroupChanged()''': Emitted whenever the Client's TabGroup changed. That is whenever the Client is moved to another group, but not when a Client gets added or removed to the Client's ClientGroup.
* '''tabGroupChanged()''': Emitted whenever the Client's TabGroup changed. That is whenever the Client is moved to another group, but not when a Client gets added or removed to the Client's ClientGroup.
* '''showRequest()''': Emitted whenever the Client want to show it menu
* '''menuHidden()''': Emitted whenever the Client's menu is closed
* '''appMenuAvailable()''': Emitted whenever the Client's menu is available
* '''appMenuUnavailable()''': Emitted whenever the Client's menu is unavailable
* '''demandsAttentionChanged()''': Emitted whenever the demands attention state changes.
* '''demandsAttentionChanged()''': Emitted whenever the demands attention state changes.
* '''blockingCompositingChanged(KWin::Client *client)''': Emitted whenever the Client's block compositing state changes.
* '''blockingCompositingChanged(KWin::Client *client)''': Emitted whenever the Client's block compositing state changes.
Line 516: Line 625:
    
    
* '''closeWindow()''': Closes the window by either sending a delete_window message or using XKill.
* '''closeWindow()''': Closes the window by either sending a delete_window message or using XKill.
* '''updateCaption()'''
* ''bool'' '''tabBefore(Client *other, bool activate)'''
* ''bool'' '''tabBefore(Client *other, bool activate)'''
* ''bool'' '''tabBehind(Client *other, bool activate)'''
* ''bool'' '''tabBehind(Client *other, bool activate)'''
* '''syncTabGroupFor(QString property, bool fromThisClient=false)''': Syncs the dynamic property fromThisClient or the to all members of the tabGroup() (if there is one) eg. if you call: client->setProperty("kwin_tiling_floats", true); client->syncTabGroupFor("kwin_tiling_floats", true) all clients in this tabGroup will have ::property("kwin_tiling_floats").toBool() == true WARNING: non dynamic properties are ignored - you're not supposed to alter/update such explicitly
* '''syncTabGroupFor(QString property, bool fromThisClient=false)''': Syncs the dynamic property fromThisClient or the to all members of the tabGroup() (if there is one) eg. if you call: client->setProperty("kwin_tiling_floats", true); client->syncTabGroupFor("kwin_tiling_floats", true) all clients in this tabGroup will have ::property("kwin_tiling_floats").toBool() == true WARNING: non dynamic properties are ignored - you're not supposed to alter/update such explicitly
* ''bool'' '''untab(const QRect &toGeometry=QRect())'''
* ''bool'' '''untab(const QRect &toGeometry=QRect(), bool clientRemoved=false)'''

Revision as of 12:55, 5 June 2013

Global

Methods and properties added to the global JavaScript object.

Read-only Properties

  • KWin::Options options: Global property to all configuration values of KWin core.
  • KWin::Workspace workspace: Global property to the core wrapper of KWin.
  • object KWin: Provides access to enums defined in KWin::WorkspaceWrapper

Functions

  • print(QVariant ... values): Prints all provided values to kDebug and as a D-Bus signal
  • QVariant readConfig(QString key, QVariant defaultValue = QVariant()): Reads the config value for key in the Script's configuration with the optional default value. If not providing a default value and no value stored in the configuration an undefined value is returned.
  • bool registerScreenEdge(ElectricBorder border, QScriptValue callback): Registers the callback for the screen edge. When the mouse gets pushed against the given edge the callback will be invoked.
  • bool registerShortcut(QString title, QString text, QString keySequence, QScriptValue callback): Registers keySequence as a global shortcut. When the shortcut is invoked the callback will be called. Title and text are used to name the shortcut and make it available to the global shortcut configuration module.
  • bool assert(bool value, QString message = QString()): Aborts the execution of the script if value does not evaluate to true. If message is provided an error is thrown with the given message, if not provided an error with default message is thrown.
  • bool assertTrue(bool value, QString message = QString()): Aborts the execution of the script if value does not evaluate to true. If message is provided an error is thrown with the given message, if not provided an error with default message is thrown.
  • bool assertFalse(bool value, QString message = QString()): Aborts the execution of the script if value does not evaluate to false. If message is provided an error is thrown with the given message, if not provided an error with default message is thrown.
  • bool assertEquals(QVariant expected, QVariant actual, QString message = QString()): Aborts the execution of the script if the actual value is not equal to the expected value. If message is provided an error is thrown with the given message, if not provided an error with default message is thrown.
  • bool assertNull(QVariant value, QString message = QString()): Aborts the execution of the script if value is not null. If message is provided an error is thrown with the given message, if not provided an error with default message is thrown.
  • bool assertNotNull(QVariant value, QString message = QString()): Aborts the execution of the script if value is null. If message is provided an error is thrown with the given message, if not provided an error with default message is thrown.
  • callDBus(QString service, QString path, QString interface, QString method, QVariant arg..., QScriptValue callback = QScriptValue()): Call a D-Bus method at (service, path, interface and method). A variable number of arguments can be added to the method call. The D-Bus call is always performed in an async way invoking the callback provided as the last (optional) argument. The reply values of the D-Bus method call are passed to the callback.
  • registerUserActionsMenu(QScriptValue callback): Registers the passed in callback to be invoked whenever the User actions menu (Alt+F3 or right click on window decoration) is about to be shown. The callback is invoked with a reference to the Client for which the menu is shown. The callback can return either a single menu entry to be added to the menu or an own sub menu with multiple entries. The object for a menu entry should be {title: "My Menu entry", checkable: true, checked: false, triggered: function (action) { // callback with triggered QAction}}, for a menu it should be {title: "My menu", items: [{...}, {...}, ...] /*list with entries as described*/}


KWin::WorkspaceWrapper

Enums

ClientAreaOption

  • PlacementArea: window movement snapping area? ignore struts
  • MovementArea:
  • MaximizeArea:
  • MaximizeFullArea:
  • FullScreenArea:
  • WorkArea:
  • FullArea:
  • ScreenArea:

ElectricBorder

  • ElectricTop:
  • ElectricTopRight:
  • ElectricRight:
  • ElectricBottomRight:
  • ElectricBottom:
  • ElectricBottomLeft:
  • ElectricLeft:
  • ElectricTopLeft:
  • ELECTRIC_COUNT:
  • ElectricNone:

Read-only Properties

  • QSize desktopGridSize
  • int desktopGridWidth
  • int desktopGridHeight
  • int workspaceWidth
  • int workspaceHeight
  • QSize workspaceSize
  • QSize displaySize: The same of the display, that is all screens.
  • int displayWidth: The width of the display, that is width of all combined screens.
  • int displayHeight: The height of the display, that is height of all combined screens.
  • int activeScreen
  • int numScreens
  • QString currentActivity
  • QStringList activities

Read-write Properties

  • int currentDesktop
  • KWin::Client activeClient
  • int desktops: The number of desktops currently used. Minimum number of desktops is 1, maximum 20.

Signals

  • desktopPresenceChanged(KWin::Client *client, int desktop)
  • currentDesktopChanged(int desktop, KWin::Client *client)
  • clientAdded(KWin::Client *client)
  • clientRemoved(KWin::Client *client)
  • clientManaging(KWin::Client *client)
  • clientMinimized(KWin::Client *client)
  • clientUnminimized(KWin::Client *client)
  • clientRestored(KWin::Client *client)
  • clientMaximizeSet(KWin::Client *client, bool h, bool v)
  • killWindowCalled(KWin::Client *client)
  • clientActivated(KWin::Client *client)
  • clientFullScreenSet(KWin::Client *client, bool fullScreen, bool user)
  • clientSetKeepAbove(KWin::Client *client, bool keepAbove)
  • numberDesktopsChanged(uint oldNumberOfDesktops): Signal emitted whenever the number of desktops changed. To get the current number of desktops use the property desktops.

oldNumberOfDesktops


The previous number of desktops.

  • desktopLayoutChanged(): Signal emitted whenever the layout of virtual desktops changed. That is desktopGrid(Size/Width/Height) will have new values. 4.11
  • clientDemandsAttentionChanged(KWin::Client *client, bool set): The demands attention state for Client c changed to set.

c


The Client for which demands attention changed


set


New value of demands attention

  • numberScreensChanged(int count): Signal emitted when the number of screens changes.

count


The new number of screens

  • screenResized(int screen): This signal is emitted when the size of screen changes. Don't forget to fetch an updated client area.
  • currentActivityChanged(const QString &id): Signal emitted whenever the current activity changed.

id


id of the new activity

  • activitiesChanged(const QString &id): Signal emitted whenever the list of activities changed.

id


id of the new activity

  • activityAdded(const QString &id): This signal is emitted when a new activity is added

id


id of the new activity

  • activityRemoved(const QString &id): This signal is emitted when the activity is removed

id


id of the removed activity

Functions

  • slotSwitchDesktopNext()
  • slotSwitchDesktopPrevious()
  • slotSwitchDesktopRight()
  • slotSwitchDesktopLeft()
  • slotSwitchDesktopUp()
  • slotSwitchDesktopDown()
  • slotSwitchToNextScreen()
  • slotWindowToNextScreen()
  • slotToggleShowDesktop()
  • slotWindowMaximize()
  • slotWindowMaximizeVertical()
  • slotWindowMaximizeHorizontal()
  • slotWindowMinimize()
  • slotWindowShade()
  • slotWindowRaise()
  • slotWindowLower()
  • slotWindowRaiseOrLower()
  • slotActivateAttentionWindow()
  • slotWindowPackLeft()
  • slotWindowPackRight()
  • slotWindowPackUp()
  • slotWindowPackDown()
  • slotWindowGrowHorizontal()
  • slotWindowGrowVertical()
  • slotWindowShrinkHorizontal()
  • slotWindowShrinkVertical()
  • slotWindowQuickTileLeft()
  • slotWindowQuickTileRight()
  • slotWindowQuickTileTopLeft()
  • slotWindowQuickTileTopRight()
  • slotWindowQuickTileBottomLeft()
  • slotWindowQuickTileBottomRight()
  • slotSwitchWindowUp()
  • slotSwitchWindowDown()
  • slotSwitchWindowRight()
  • slotSwitchWindowLeft()
  • slotIncreaseWindowOpacity()
  • slotLowerWindowOpacity()
  • slotWindowOperations()
  • slotWindowClose()
  • slotWindowMove()
  • slotWindowResize()
  • slotWindowAbove()
  • slotWindowBelow()
  • slotWindowOnAllDesktops()
  • slotWindowFullScreen()
  • slotWindowNoBorder()
  • slotWindowToNextDesktop()
  • slotWindowToPreviousDesktop()
  • slotWindowToDesktopRight()
  • slotWindowToDesktopLeft()
  • slotWindowToDesktopUp()
  • slotWindowToDesktopDown()
  • showOutline(const QRect &geometry): Shows an outline at the specified geometry. If an outline is already shown the outline is moved to the new position. Use to remove the outline again.
  • showOutline(int x, int y, int width, int height): Overloaded method for convenience.
  • hideOutline(): Hides the outline previously shown by showOutline.
  • QList< KWin::Client * > clientList() const : List of Clients currently managed by KWin.
  • QRect clientArea(ClientAreaOption option, int screen, int desktop) const : Returns the geometry a Client can use with the specified option. This method should be preferred over other methods providing screen sizes as the various options take constraints such as struts set on panels into account. This method is also multi screen aware, but there are also options to get full areas.

option


The type of area which should be considered


screen


The screen for which the area should be considered


desktop


The desktop for which the area should be considered, in general there should not be a difference


The specified screen geometry

  • QRect clientArea(ClientAreaOption option, const QPoint &point, int desktop) const : Overloaded method for convenience.

option


The type of area which should be considered


point


The coordinates which have to be included in the area


desktop


The desktop for which the area should be considered, in general there should not be a difference


The specified screen geometry

  • QRect clientArea(ClientAreaOption option, const KWin::Client *client) const : Overloaded method for convenience.

client


The Client for which the area should be retrieved


The specified screen geometry

  • QString desktopName(int desktop) const : Returns the name for the given desktop.
  • QString supportInformation() const : Provides support information about the currently running KWin instance.
  • KWin::Client * getClient(qulonglong windowId): Finds the Client with the given windowId.

windowId


The window Id of the Client


The found Client or null


KWin::Options

Inherits: KDecorationOptions

Enums

FocusPolicy

  • ClickToFocus:
  • FocusFollowsMouse:
  • FocusUnderMouse:
  • FocusStrictlyUnderMouse:

MouseCommand

  • MouseRaise:
  • MouseLower:
  • MouseOperationsMenu:
  • MouseToggleRaiseAndLower:
  • MouseActivateAndRaise:
  • MouseActivateAndLower:
  • MouseActivate:
  • MouseActivateRaiseAndPassClick:
  • MouseActivateAndPassClick:
  • MouseMove:
  • MouseUnrestrictedMove:
  • MouseActivateRaiseAndMove:
  • MouseActivateRaiseAndUnrestrictedMove:
  • MouseResize:
  • MouseUnrestrictedResize:
  • MouseShade:
  • MouseSetShade:
  • MouseUnsetShade:
  • MouseMaximize:
  • MouseRestore:
  • MouseMinimize:
  • MouseNextDesktop:
  • MousePreviousDesktop:
  • MouseAbove:
  • MouseBelow:
  • MouseOpacityMore:
  • MouseOpacityLess:
  • MouseClose:
  • MousePreviousTab:
  • MouseNextTab:
  • MouseDragTab:
  • MouseNothing:

MouseWheelCommand

  • MouseWheelRaiseLower:
  • MouseWheelShadeUnshade:
  • MouseWheelMaximizeRestore:
  • MouseWheelAboveBelow:
  • MouseWheelPreviousNextDesktop:
  • MouseWheelChangeOpacity:
  • MouseWheelChangeCurrentTab:
  • MouseWheelNothing:

GlSwapStrategy

  • NoSwapEncourage:
  • CopyFrontBuffer:
  • PaintFullScreen:
  • ExtendDamage:
  • AutoSwapStrategy:

Read-only Properties

  • bool focusPolicyIsReasonable

Read-write Properties

  • FocusPolicy focusPolicy
  • bool nextFocusPrefersMouse
  • bool clickRaise: Whether clicking on a window raises it in FocusFollowsMouse mode or not.
  • bool autoRaise: whether autoraise is enabled FocusFollowsMouse mode or not.
  • int autoRaiseInterval: autoraise interval
  • int delayFocusInterval: delayed focus interval
  • bool shadeHover: Whether shade hover is enabled or not
  • int shadeHoverInterval: shade hover interval
  • bool separateScreenFocus: whether to see Xinerama screens separately for focus (in Alt+Tab, when activating next client)
  • int placement
  • int borderSnapZone: the size of the zone that triggers snapping on desktop borders
  • int windowSnapZone: the size of the zone that triggers snapping with other windows
  • int centerSnapZone: the size of the zone that triggers snapping on the screen center
  • bool snapOnlyWhenOverlapping: snap only when windows will overlap
  • bool showDesktopIsMinimizeAll
  • bool rollOverDesktops: whether or not we roll over to the other edge when switching desktops past the edge
  • int focusStealingPreventionLevel: 0 - 4 , see Workspace::allowClientActivation()
  • bool legacyFullscreenSupport: support legacy fullscreen windows hack: borderless non-netwm windows with screen geometry
  • WindowOperation operationTitlebarDblClick
  • MouseCommand commandActiveTitlebar1
  • MouseCommand commandActiveTitlebar2
  • MouseCommand commandActiveTitlebar3
  • MouseCommand commandInactiveTitlebar1
  • MouseCommand commandInactiveTitlebar2
  • MouseCommand commandInactiveTitlebar3
  • MouseCommand commandWindow1
  • MouseCommand commandWindow2
  • MouseCommand commandWindow3
  • MouseCommand commandWindowWheel
  • MouseCommand commandAll1
  • MouseCommand commandAll2
  • MouseCommand commandAll3
  • uint keyCmdAllModKey
  • bool showGeometryTip: whether the Geometry Tip should be shown during a window move/resize.
  • bool condensedTitle: whether the visible name should be condensed
  • bool electricBorderMaximize: Whether a window gets maximized when it reaches top screen edge while being moved.
  • bool electricBorderTiling: Whether a window is tiled to half screen when reaching left or right screen edge while been moved
  • float electricBorderCornerRatio: Whether a window is tiled to half screen when reaching left or right screen edge while been moved
  • bool borderlessMaximizedWindows
  • int killPingTimeout: timeout before non-responding application will be killed after attempt to close
  • bool hideUtilityWindowsForInactive: Whether to hide utility windows for inactive applications.
  • bool inactiveTabsSkipTaskbar
  • bool autogroupSimilarWindows
  • bool autogroupInForeground
  • int compositingMode
  • bool useCompositing
  • bool compositingInitialized
  • int hiddenPreviews
  • bool unredirectFullscreen
  • int glSmoothScale: 0 = no, 1 = yes when transformed, 2 = try trilinear when transformed; else 1, -1 = auto
  • bool colorCorrected
  • bool xrenderSmoothScale
  • qint64 maxFpsInterval
  • uint refreshRate
  • qint64 vBlankTime
  • bool glDirect
  • bool glStrictBinding
  • bool glStrictBindingFollowsDriver: Whether strict binding follows the driver or has been overwritten by a user defined config value. If true is set by the OpenGL Scene during initialization. If false glStrictBinding is set from a config value and not updated during scene initialization.
  • bool glLegacy: Whether legacy OpenGL should be used or OpenGL (ES) 2
  • bool glCoreProfile
  • GlSwapStrategy glPreferBufferSwap

Signals

  • configChanged()
  • focusPolicyChanged()
  • nextFocusPrefersMouseChanged()
  • clickRaiseChanged()
  • autoRaiseChanged()
  • autoRaiseIntervalChanged()
  • delayFocusIntervalChanged()
  • shadeHoverChanged()
  • shadeHoverIntervalChanged()
  • separateScreenFocusChanged(bool)
  • placementChanged()
  • borderSnapZoneChanged()
  • windowSnapZoneChanged()
  • centerSnapZoneChanged()
  • snapOnlyWhenOverlappingChanged()
  • showDesktopIsMinimizeAllChanged()
  • rollOverDesktopsChanged(bool enabled)
  • focusStealingPreventionLevelChanged()
  • legacyFullscreenSupportChanged()
  • operationTitlebarDblClickChanged()
  • commandActiveTitlebar1Changed()
  • commandActiveTitlebar2Changed()
  • commandActiveTitlebar3Changed()
  • commandInactiveTitlebar1Changed()
  • commandInactiveTitlebar2Changed()
  • commandInactiveTitlebar3Changed()
  • commandWindow1Changed()
  • commandWindow2Changed()
  • commandWindow3Changed()
  • commandWindowWheelChanged()
  • commandAll1Changed()
  • commandAll2Changed()
  • commandAll3Changed()
  • keyCmdAllModKeyChanged()
  • showGeometryTipChanged()
  • condensedTitleChanged()
  • electricBorderMaximizeChanged()
  • electricBorderTilingChanged()
  • electricBorderCornerRatioChanged()
  • borderlessMaximizedWindowsChanged()
  • killPingTimeoutChanged()
  • hideUtilityWindowsForInactiveChanged()
  • inactiveTabsSkipTaskbarChanged()
  • autogroupSimilarWindowsChanged()
  • autogroupInForegroundChanged()
  • compositingModeChanged()
  • useCompositingChanged()
  • compositingInitializedChanged()
  • hiddenPreviewsChanged()
  • unredirectFullscreenChanged()
  • glSmoothScaleChanged()
  • colorCorrectedChanged()
  • xrenderSmoothScaleChanged()
  • maxFpsIntervalChanged()
  • refreshRateChanged()
  • vBlankTimeChanged()
  • glDirectChanged()
  • glStrictBindingChanged()
  • glStrictBindingFollowsDriverChanged()
  • glLegacyChanged()
  • glCoreProfileChanged()
  • glPreferBufferSwapChanged()

Functions

  • setColorCorrected(bool colorCorrected=false)


KWin::Toplevel

Inherits: KDecorationDefines

Read-only Properties

Read-write Properties

  • qreal opacity

Signals

  • opacityChanged(KWin::Toplevel *toplevel, qreal oldOpacity)
  • damaged(KWin::Toplevel *toplevel, const QRect &damage)
  • propertyNotify(KWin::Toplevel *toplevel, long a)
  • geometryChanged()
  • geometryShapeChanged(KWin::Toplevel *toplevel, const QRect &old)
  • paddingChanged(KWin::Toplevel *toplevel, const QRect &old)
  • windowClosed(KWin::Toplevel *toplevel, KWin::Deleted *deleted)
  • windowShown(KWin::Toplevel *toplevel)
  • shapedChanged(): Signal emitted when the window's shape state changed. That is if it did not have a shape and received one or if the shape was withdrawn. Think of Chromium enabling/disabling KWin's decoration.
  • needsRepaint(): Emitted whenever the state changes in a way, that the Compositor should schedule a repaint of the scene.
  • activitiesChanged(KWin::Toplevel *toplevel)
  • screenChanged(): Emitted whenever the Toplevel's screen changes. This can happen either in consequence to a screen being removed/added or if the Toplevel's geometry changes. 4.11

Functions

  • addRepaint(const QRect &r)
  • addRepaint(const QRegion &r)
  • addRepaint(int x, int y, int w, int h)
  • addLayerRepaint(const QRect &r)
  • addLayerRepaint(const QRegion &r)
  • addLayerRepaint(int x, int y, int w, int h)
  • addRepaintFull()


KWin::Client

The Client class encapsulates a window decoration frame. Inherits: KWin::Toplevel

Enums

Sizemode

  • SizemodeAny:
  • SizemodeFixedW:
  • SizemodeFixedH:
  • SizemodeMax:

CoordinateMode

  • DecorationRelative:
  • WindowRelative:

Read-only Properties

  • bool active: Whether this Client is active or not. Use Workspace::activateClient() to activate a Client. Workspace::activateClient
  • QString caption: The Caption of the Client. Read from WM_NAME property together with a suffix for hostname and shortcut. To read only the caption as provided by WM_NAME, use the getter with an additional false value.
  • bool closeable: Whether the window can be closed by the user. The value is evaluated each time the getter is called. Because of that no changed signal is provided.
  • bool fullScreenable: Whether the Client can be set to fullScreen. The property is evaluated each time it is invoked. Because of that there is no notify signal.
  • bool maximizable: Whether the Client can be maximized both horizontally and vertically. The property is evaluated each time it is invoked. Because of that there is no notify signal.
  • bool minimizable: Whether the Client can be minimized. The property is evaluated each time it is invoked. Because of that there is no notify signal.
  • bool modal: Whether the Client represents a modal window.
  • bool moveable: Whether the Client is moveable. Even if it is not moveable, it might be possible to move it to another screen. The property is evaluated each time it is invoked. Because of that there is no notify signal. moveableAcrossScreens
  • bool moveableAcrossScreens: Whether the Client can be moved to another screen. The property is evaluated each time it is invoked. Because of that there is no notify signal. moveable
  • bool providesContextHelp: Whether the Client provides context help. Mostly needed by decorations to decide whether to show the help button or not.Returns whether the window provides context help or not. If it does, you should show a help menu item or a help button like '?' and call contextHelp() if this is invoked.contextHelp()
  • bool resizeable: Whether the Client can be resized. The property is evaluated each time it is invoked. Because of that there is no notify signal.
  • bool shadeable: Whether the Client can be shaded. The property is evaluated each time it is invoked. Because of that there is no notify signal.
  • bool transient: Whether the Client is a transient Window to another Window. transientFor
  • KWin::Client transientFor: The Client to which this Client is a transient if any.
  • QSize basicUnit: By how much the window wishes to grow/shrink at least. Usually QSize(1,1). MAY BE DISOBEYED BY THE WM! It's only for information, do NOT rely on it at all. The value is evaluated each time the getter is called. Because of that no changed signal is provided.
  • bool move: Whether the Client is currently being moved by the user. Notify signal is emitted when the Client starts or ends move/resize mode.
  • bool resize: Whether the Client is currently being resized by the user. Notify signal is emitted when the Client starts or ends move/resize mode.
  • QRect iconGeometry: The optional geometry representing the minimized Client in e.g a taskbar. See _NET_WM_ICON_GEOMETRY at http://standards.freedesktop.org/wm-spec/wm-spec-latest.html . The value is evaluated each time the getter is called. Because of that no changed signal is provided.
  • bool specialWindow: Returns whether the window is any of special windows types (desktop, dock, splash, ...), i.e. window types that usually don't have a window frame and the user does not use window management (moving, raising,...) on them. The value is evaluated each time the getter is called. Because of that no changed signal is provided.
  • bool wantsInput: Whether the Client can accept keyboard focus. The value is evaluated each time the getter is called. Because of that no changed signal is provided.
  • QPixmap icon
  • KWin::TabGroup tabGroup: The "Window Tabs" Group this Client belongs to.
  • bool isCurrentTab: Whether this Client is the currently visible Client in its Client Group (Window Tabs). For change connect to the visibleChanged signal on the Client's Group.
  • QSize minSize: Minimum size as specified in WM_NORMAL_HINTS
  • QSize maxSize: Maximum size as specified in WM_NORMAL_HINTS
  • bool decorationHasAlpha: Whether the decoration is currently using an alpha channel.

Read-write Properties

  • int desktop: The desktop this Client is on. If the Client is on all desktops the property has value -1.Returns the virtual desktop within the workspace() the client window is located in, 0 if it isn't located on any special desktop (not mapped yet), or NET::OnAllDesktops. Do not use desktop() directly, use isOnDesktop() instead.
  • bool onAllDesktops: Whether the Client is on all desktops. That is desktop is -1.
  • bool fullScreen: Whether this Client is fullScreen. A Client might either be fullScreen due to the _NET_WM property or through a legacy support hack. The fullScreen state can only be changed if the Client does not use the legacy hack. To be sure whether the state changed, connect to the notify signal.
  • QRect geometry: The geometry of this Client. Be aware that depending on resize mode the geometryChanged signal might be emitted at each resize step or only at the end of the resize operation.
  • bool keepAbove: Whether the Client is set to be kept above other windows.
  • bool keepBelow: Whether the Client is set to be kept below other windows.
  • bool minimized: Whether the Client is minimized.
  • bool shade: Whether the Client is shaded.
  • bool skipSwitcher: Whether the Client should be excluded from window switching effects.
  • bool skipTaskbar: Indicates that the window should not be included on a taskbar.
  • bool skipPager: Indicates that the window should not be included on a Pager.
  • bool noBorder: Whether the window has a decoration or not. This property is not allowed to be set by applications themselves. The decision whether a window has a border or not belongs to the window manager. If this property gets abused by application developers, it will be removed again.
  • bool demandsAttention: Whether window state _NET_WM_STATE_DEMANDS_ATTENTION is set. This state indicates that some action in or with the window happened. For example, it may be set by the Window Manager if the window requested activation but the Window Manager refused it, or the application may set it if it finished some work. This state may be set by both the Client and the Window Manager. It should be unset by the Window Manager when it decides the window got the required attention (usually, that it got activated).
  • bool blocksCompositing: A client can block compositing. That is while the Client is alive and the state is set, Compositing is suspended and is resumed when there are no Clients blocking compositing any more.This is actually set by a window property, unfortunately not used by the target application group. For convenience it's exported as a property to the scripts.Use with care!

Signals

  • clientManaging(KWin::Client *)
  • clientFullScreenSet(KWin::Client *, bool, bool)
  • clientMaximizedStateChanged(KWin::Client *, KDecorationDefines::MaximizeMode)
  • clientMaximizedStateChanged(KWin::Client *c, bool h, bool v)
  • clientMinimized(KWin::Client *client, bool animate)
  • clientUnminimized(KWin::Client *client, bool animate)
  • clientStartUserMovedResized(KWin::Client *)
  • clientStepUserMovedResized(KWin::Client *, const QRect &)
  • clientFinishUserMovedResized(KWin::Client *)
  • activeChanged()
  • captionChanged()
  • desktopChanged()
  • fullScreenChanged()
  • transientChanged()
  • modalChanged()
  • shadeChanged()
  • keepAboveChanged(bool)
  • keepBelowChanged(bool)
  • minimizedChanged()
  • moveResizedChanged()
  • iconChanged()
  • skipSwitcherChanged()
  • skipTaskbarChanged()
  • skipPagerChanged()
  • tabGroupChanged(): Emitted whenever the Client's TabGroup changed. That is whenever the Client is moved to another group, but not when a Client gets added or removed to the Client's ClientGroup.
  • showRequest(): Emitted whenever the Client want to show it menu
  • menuHidden(): Emitted whenever the Client's menu is closed
  • appMenuAvailable(): Emitted whenever the Client's menu is available
  • appMenuUnavailable(): Emitted whenever the Client's menu is unavailable
  • demandsAttentionChanged(): Emitted whenever the demands attention state changes.
  • blockingCompositingChanged(KWin::Client *client): Emitted whenever the Client's block compositing state changes.

Functions

  • closeWindow(): Closes the window by either sending a delete_window message or using XKill.
  • updateCaption()
  • bool tabBefore(Client *other, bool activate)
  • bool tabBehind(Client *other, bool activate)
  • syncTabGroupFor(QString property, bool fromThisClient=false): Syncs the dynamic property fromThisClient or the to all members of the tabGroup() (if there is one) eg. if you call: client->setProperty("kwin_tiling_floats", true); client->syncTabGroupFor("kwin_tiling_floats", true) all clients in this tabGroup will have ::property("kwin_tiling_floats").toBool() == true WARNING: non dynamic properties are ignored - you're not supposed to alter/update such explicitly
  • bool untab(const QRect &toGeometry=QRect(), bool clientRemoved=false)