KWindowSystem Class Reference
from PyKDE4.kdeui import *
Detailed Description
Convenience access to certain properties and features of the window manager.
The class KWindowSystem provides information about the state of the window manager and allows asking the window manager to change them using a more high-level interface than the NETWinInfo/NETRootInfo lowlevel classes.
Because of limitiations of the way Qt is implemented on Mac OSX, the WId's returned by methods in this class are not compatible with those expected by other Qt methods. So while it should be fine to pass WId's retrieved by for example calling the winId method on a QWidget to methods in this class the reverse is not true. You should never pass a WId obtained from this class to a Qt method accepting a WId parameter.
Class for interaction with the window manager.
Enumerations | |
IconSource | { NETWM, WMHints, ClassHint, XApp } |
Signals | |
activeWindowChanged (WId id) | |
currentDesktopChanged (int desktop) | |
desktopNamesChanged () | |
numberOfDesktopsChanged (int num) | |
showingDesktopChanged (bool showing) | |
stackingOrderChanged () | |
strutChanged () | |
windowAdded (WId id) | |
, long (properties) | windowChanged (WId id, ) |
windowChanged (WId id, long properties) | |
windowChanged (WId id) | |
windowRemoved (WId id) | |
workAreaChanged () | |
Methods | |
__init__ (self) | |
activeWindowChanged (self, WId id) | |
connectNotify (self, QString signal) | |
currentDesktopChanged (self, int desktop) | |
desktopNamesChanged (self) | |
numberOfDesktopsChanged (self, int num) | |
showingDesktopChanged (self, bool showing) | |
stackingOrderChanged (self) | |
strutChanged (self) | |
windowAdded (self, WId id) | |
, long (properties) | windowChanged (self, WId id, ) |
windowChanged (self, WId id, long properties) | |
windowChanged (self, WId id) | |
windowRemoved (self, WId id) | |
workAreaChanged (self) | |
Static Methods | |
activateWindow (WId win, long time=0) | |
WId | activeWindow () |
allowExternalProcessWindowActivation (int pid=-1) | |
bool | allowedActionsSupported () |
clearState (WId win, long state) | |
bool | compositingActive () |
QPoint | constrainViewportRelativePosition (QPoint pos) |
int | currentDesktop () |
demandAttention (WId win, bool set=1) | |
QString | desktopName (int desktop) |
QPoint | desktopToViewport (int desktop, bool absolute) |
doNotManage (QString title) | |
forceActiveWindow (WId win, long time=0) | |
WId | groupLeader (WId window) |
bool | hasWId (WId id) |
bool | icccmCompliantMappingState () |
QPixmap | icon (WId win, int width=-1, int height=-1, bool scale=0) |
QPixmap | icon (WId win, int width, int height, bool scale, int flags) |
lowerWindow (WId win) | |
bool | mapViewport () |
minimizeWindow (WId win, bool animation=1) | |
int | numberOfDesktops () |
raiseWindow (WId win) | |
QString | readNameProperty (WId window, long atom) |
KWindowSystem | self () |
setCurrentDesktop (int desktop) | |
setDesktopName (int desktop, QString name) | |
setExtendedStrut (WId win, int left_width, int left_start, int left_end, int right_width, int right_start, int right_end, int top_width, int top_start, int top_end, int bottom_width, int bottom_start, int bottom_end) | |
setIcons (WId win, QPixmap icon, QPixmap miniIcon) | |
setMainWindow (QWidget subwindow, WId mainwindow) | |
setOnAllDesktops (WId win, bool b) | |
setOnDesktop (WId win, int desktop) | |
setState (WId win, long state) | |
setStrut (WId win, int left, int right, int top, int bottom) | |
setType (WId win, NET.WindowType windowType) | |
setUserTime (WId win, long time) | |
bool | showingDesktop () |
[WId] | stackingOrder () |
WId | transientFor (WId window) |
unminimizeWindow (WId win, bool animation=1) | |
int | viewportToDesktop (QPoint pos) |
int | viewportWindowToDesktop (QRect r) |
KWindowInfo | windowInfo (WId win, long properties, long properties2=0) |
[WId] | windows () |
QRect | workArea (int desktop=-1) |
QRect | workArea ([WId] excludes, int desktop=-1) |
Method Documentation
__init__ | ( | self ) |
activateWindow | ( | WId | win, | |
long | time=0 | |||
) |
Requests that window win is activated.
There are two ways how to activate a window, by calling activateWindow() and forceActiveWindow(). Generally, applications shouldn't make attempts to explicitly activate their windows, and instead let the user to activate them. In the special cases where this may be needed, applications should use activateWindow(). Window manager may consider whether this request wouldn't result in focus stealing, which would be obtrusive, and may refuse the request.
The usage of forceActiveWindow() is meant only for pagers and similar tools, which represent direct user actions related to window manipulation. Except for rare cases, this request will be always honored, and normal applications are forbidden to use it.
In case of problems, consult the KWin README in the kdebase package (kdebase/kwin/README), or ask on the kwin@kde.org mailing list.
- Parameters:
-
win the id of the window to make active time X server timestamp of the user activity that caused this request
WId activeWindow | ( | ) |
Returns the currently active window, or 0 if no window is active.
- Returns:
- the window id of the active window, or 0 if no window is active
activeWindowChanged | ( | self, | ||
WId | id | |||
) |
Hint that <Window> is active (= has focus) now.
- Parameters:
-
id the id of the window that is active
- Signal syntax:
QObject.connect(source, SIGNAL("activeWindowChanged(WId)"), target_slot)
allowExternalProcessWindowActivation | ( | int | pid=-1 | |
) |
Allows a window from another process to raise and activate itself. Depending on the window manager, the grant may only be temporary, or for a single activation, and it may require the current process to be the "foreground" one" (ie. the process with the input focus).
You should call this function before executing actions that may trigger the showing of a window or dialog in another process, e.g. a dbus signal or function call, or any other inter-process notification mechanism.
This is mostly used on Windows, where windows are not allowed to be raised and activated if their process is not the foreground one, but it may also apply to other window managers.
- Parameters:
-
pid if specified, the grant only applies to windows belonging to the specific process. By default, a value of -1 means all processes.
bool allowedActionsSupported | ( | ) |
Returns true if the WM announces which actions it allows for windows.
clearState | ( | WId | win, | |
long | state | |||
) |
Clears the state of window win from state.
Possible values are or'ed combinations of NET.Modal, NET.Sticky, NET.MaxVert, NET.MaxHoriz, NET.Shaded, NET.SkipTaskbar, NET.SkipPager, NET.Hidden, NET.FullScreen, NET.KeepAbove, NET.KeepBelow, NET.StaysOnTop
- Parameters:
-
win the id of the window state the flags that will be cleared
bool compositingActive | ( | ) |
Returns true if a compositing manager is running (i.e. ARGB windows are supported, effects will be provided, etc.).
connectNotify | ( | self, | ||
QString | signal | |||
) |
- Internal:
- Since:
- 4.0.1 Checks the relative difference used to move a window will still be inside valid desktop area.
int currentDesktop | ( | ) |
Returns the current virtual desktop.
- Returns:
- the current virtual desktop
currentDesktopChanged | ( | self, | ||
int | desktop | |||
) |
Switched to another virtual desktop.
- Parameters:
-
desktop the number of the new desktop
- Signal syntax:
QObject.connect(source, SIGNAL("currentDesktopChanged(int)"), target_slot)
demandAttention | ( | WId | win, | |
bool | set=1 | |||
) |
When application finishes some operation and wants to notify the user about it, it can call demandAttention(). Instead of activating the window, which could be obtrusive, the window will be marked specially as demanding user's attention. See also explanation in description of activateWindow().
Note that it's usually better to use KNotifyClient.
QString desktopName | ( | int | desktop | |
) |
Returns the name of the specified desktop.
- Parameters:
-
desktop the number of the desktop
- Returns:
- the name of the desktop
desktopNamesChanged | ( | self ) |
Desktops have been renamed.
- Signal syntax:
QObject.connect(source, SIGNAL("desktopNamesChanged()"), target_slot)
QPoint desktopToViewport | ( | int | desktop, | |
bool | absolute | |||
) |
- Internal:
- Returns topleft corner of the viewport area for the given mapped virtual desktop.
doNotManage | ( | QString | title | |
) |
Informs kwin via dbus to not manage a window with the specified title.
Useful for swallowing legacy applications, for example java applets.
- Parameters:
-
title the title of the window
forceActiveWindow | ( | WId | win, | |
long | time=0 | |||
) |
Sets window win to be the active window. Note that this should be called only in special cases, applications shouldn't force themselves or other windows to be the active window. Generally, this call should used only by pagers and similar tools. See the explanation in description of activateWindow().
- Parameters:
-
win the id of the window to make active time X server timestamp of the user activity that caused this request
WId groupLeader | ( | WId | window | |
) |
Returns the leader window for the group the given window is in, if any.
- Parameters:
-
window the id of the window
bool hasWId | ( | WId | id | |
) |
Test to see if id still managed at present.
- Parameters:
-
id the window id to test
- Returns:
- true if the window id is still managed
bool icccmCompliantMappingState | ( | ) |
- Internal:
- Returns true if the WM uses IconicState also for windows on inactive virtual desktops.
QPixmap icon | ( | WId | win, | |
int | width=-1, | |||
int | height=-1, | |||
bool | scale=0 | |||
) |
Returns an icon for window win.
If width and height are specified, the best icon for the requested size is returned.
If scale is true, the icon is smooth-scaled to have exactly the requested size.
- Parameters:
-
win the id of the window width the desired width, or -1 height the desired height, or -1 scale if true the icon will be scaled to the desired size. Otherwise the icon will not be modified.
- Returns:
- the icon of the window
QPixmap icon | ( | WId | win, | |
int | width, | |||
int | height, | |||
bool | scale, | |||
int | flags | |||
) |
Overloaded variant that allows specifying from which sources the icon should be read. You should usually prefer the simpler variant which tries all possibilities to get an icon.
- Parameters:
-
win the id of the window width the desired width, or -1 height the desired height, or -1 scale if true the icon will be scaled to the desired size. Otherwise the icon will not be modified. flags OR-ed flags from the IconSource enum
lowerWindow | ( | WId | win | |
) |
Lowers the given window. This call is only for pagers and similar tools that represent direct user actions. Applications should not use it, they should keep using QWidget.lower() or XLowerWindow() if necessary.
bool mapViewport | ( | ) |
- Internal:
- Returns true if viewports are mapped to virtual desktops.
minimizeWindow | ( | WId | win, | |
bool | animation=1 | |||
) |
Iconifies a window. Compatible to XIconifyWindow but has an additional parameter animation.
- Parameters:
-
win the id of the window animation true to show an animation
- See also:
- deIconifyWindow()
int numberOfDesktops | ( | ) |
Returns the number of virtual desktops.
- Returns:
- the number of virtual desktops
numberOfDesktopsChanged | ( | self, | ||
int | num | |||
) |
The number of desktops changed.
- Parameters:
-
num the new number of desktops
- Signal syntax:
QObject.connect(source, SIGNAL("numberOfDesktopsChanged(int)"), target_slot)
raiseWindow | ( | WId | win | |
) |
Raises the given window. This call is only for pagers and similar tools that represent direct user actions. Applications should not use it, they should keep using QWidget.raise() or XRaiseWindow() if necessary.
QString readNameProperty | ( | WId | window, | |
long | atom | |||
) |
Function that reads and returns the contents of the given text property (WM_NAME, WM_ICON_NAME,...).
KWindowSystem self | ( | ) |
Access to the singleton instance. Useful mainly for connecting to signals.
setCurrentDesktop | ( | int | desktop | |
) |
Convenience function to set the current desktop to desktop. See NETRootInfo.
- Parameters:
-
desktop the number of the new desktop
setDesktopName | ( | int | desktop, | |
QString | name | |||
) |
Sets the name of the specified desktop.
- Parameters:
-
desktop the number of the desktop name the new name for the desktop
setExtendedStrut | ( | WId | win, | |
int | left_width, | |||
int | left_start, | |||
int | left_end, | |||
int | right_width, | |||
int | right_start, | |||
int | right_end, | |||
int | top_width, | |||
int | top_start, | |||
int | top_end, | |||
int | bottom_width, | |||
int | bottom_start, | |||
int | bottom_end | |||
) |
Sets the strut of window win to to left width ranging from left_start to left_end on the left edge, and simiarly for the other edges. For not reserving a strut, pass 0 as the width. E.g. to reserve 10x10 square in the topleft corner, use e.g. setExtendedStrut( w, 10, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0 ).
- Parameters:
-
win the id of the window left_width width of the strut at the left edge left_start starting y coordinate of the strut at the left edge left_end ending y coordinate of the strut at the left edge right_width width of the strut at the right edge right_start starting y coordinate of the strut at the right edge right_end ending y coordinate of the strut at the right edge top_width width of the strut at the top edge top_start starting x coordinate of the strut at the top edge top_end ending x coordinate of the strut at the top edge bottom_width width of the strut at the bottom edge bottom_start starting x coordinate of the strut at the bottom edge bottom_end ending x coordinate of the strut at the bottom edge
Sets an icon and a miniIcon on window win
- Parameters:
-
win the id of the window icon the new icon miniIcon the new mini icon
setMainWindow | ( | QWidget | subwindow, | |
WId | mainwindow | |||
) |
Sets the parent window of subwindow to be mainwindow. This overrides the parent set the usual way as the QWidget parent, but only for the window manager - e.g. stacking order and window grouping will be affected, but features like automatic deletion of children when the parent is deleted are unaffected and normally use the QWidget parent.
This function should be used before a dialog is shown for a window that belongs to another application.
setOnAllDesktops | ( | WId | win, | |
bool | b | |||
) |
Sets window win to be present on all virtual desktops if @p is true. Otherwise the window lives only on one single desktop.
- Parameters:
-
win the id of the window b true to show the window on all desktops, false otherwise
setOnDesktop | ( | WId | win, | |
int | desktop | |||
) |
Moves window win to desktop desktop.
- Parameters:
-
win the id of the window desktop the number of the new desktop
setState | ( | WId | win, | |
long | state | |||
) |
Sets the state of window win to state.
Possible values are or'ed combinations of NET.Modal, NET.Sticky, NET.MaxVert, NET.MaxHoriz, NET.Shaded, NET.SkipTaskbar, NET.SkipPager, NET.Hidden, NET.FullScreen, NET.KeepAbove, NET.KeepBelow, NET.StaysOnTop
- Parameters:
-
win the id of the window state the new flags that will be set
setStrut | ( | WId | win, | |
int | left, | |||
int | right, | |||
int | top, | |||
int | bottom | |||
) |
Convenience function for setExtendedStrut() that automatically makes struts as wide/high as the screen width/height. Sets the strut of window win to left, right, top, bottom.
- Parameters:
-
win the id of the window left the left strut right the right strut top the top strut bottom the bottom strut
setType | ( | WId | win, | |
NET.WindowType | windowType | |||
) |
Sets the type of window win to windowType.
- Parameters:
-
win the id of the window windowType the type of the window (see NET.WindowType)
setUserTime | ( | WId | win, | |
long | time | |||
) |
Sets user timestamp time on window win. The timestamp is expressed as XServer time. If a window is shown with user timestamp older than the time of the last user action, it won't be activated after being shown. The most common case is the special value 0 which means not to activate the window after being shown.
bool showingDesktop | ( | ) |
Returns the state of showing the desktop.
showingDesktopChanged | ( | self, | ||
bool | showing | |||
) |
The state of showing the desktop has changed.
- Signal syntax:
QObject.connect(source, SIGNAL("showingDesktopChanged(bool)"), target_slot)
[WId] stackingOrder | ( | ) |
Returns the list of all toplevel windows currently managed by the window manager in the current stacking order (from lower to higher). May be useful for pagers.
- Returns:
- the list of all toplevel windows in stacking order
stackingOrderChanged | ( | self ) |
Emitted when the stacking order of the window changed. The new order can be obtained with stackingOrder().
- Signal syntax:
QObject.connect(source, SIGNAL("stackingOrderChanged()"), target_slot)
strutChanged | ( | self ) |
Something changed with the struts, may or may not have changed the work area. Usually just using the workAreaChanged() signal is sufficient.
- Signal syntax:
QObject.connect(source, SIGNAL("strutChanged()"), target_slot)
WId transientFor | ( | WId | window | |
) |
Returns the WM_TRANSIENT_FOR property for the given window, i.e. the mainwindow for this window.
- Parameters:
-
window the id of the window
unminimizeWindow | ( | WId | win, | |
bool | animation=1 | |||
) |
DeIconifies a window. Compatible to XMapWindow but has an additional parameter animation.
- Parameters:
-
win the id of the window animation true to show an animation
- See also:
- iconifyWindow()
int viewportToDesktop | ( | QPoint | pos | |
) |
- Internal:
- Returns mapped virtual desktop for the given position in the viewport.
int viewportWindowToDesktop | ( | QRect | r | |
) |
- Internal:
- Returns mapped virtual desktop for the given window geometry.
windowAdded | ( | self, | ||
WId | id | |||
) |
A window has been added.
- Parameters:
-
id the id of the window
- Signal syntax:
QObject.connect(source, SIGNAL("windowAdded(WId)"), target_slot)
, long (properties) windowChanged | ( | self, | ||
WId | id, | |||
) |
The window changed.
The properties parameter contains the NET properties that were modified (see netwm_def.h). First element are NET.Property values, second element are NET.Property2 values (i.e. the format is the same like for the NETWinInfo class constructor).
- Parameters:
-
id the id of the window properties the properties that were modified
- Signal syntax:
QObject.connect(source, SIGNAL("windowChanged(WId, const unsigned long*)"), target_slot)
windowChanged | ( | self, | ||
WId | id, | |||
long | properties | |||
) |
- Deprecated:
- The window changed.
The unsigned int parameter contains the NET properties that were modified (see netwm_def.h).
- Parameters:
-
id the id of the window properties the properties that were modified
- Signal syntax:
QObject.connect(source, SIGNAL("windowChanged(WId, unsigned int)"), target_slot)
windowChanged | ( | self, | ||
WId | id | |||
) |
The window changed somehow.
- Parameters:
-
id the id of the window
- Signal syntax:
QObject.connect(source, SIGNAL("windowChanged(WId)"), target_slot)
KWindowInfo windowInfo | ( | WId | win, | |
long | properties, | |||
long | properties2=0 | |||
) |
Returns information about window win. It is recommended to check whether the returned info is valid by calling the valid() method.
- Parameters:
-
win the id of the window properties all properties that should be retrieved (see NET.Property enum for details). Unlisted properties cause related information to be invalid in the returned data, but make this function faster when not all data is needed. properties2 additional properties (see NET.Property2 enum)
- Returns:
- the window information
windowRemoved | ( | self, | ||
WId | id | |||
) |
A window has been removed.
- Parameters:
-
id the id of the window that has been removed
- Signal syntax:
QObject.connect(source, SIGNAL("windowRemoved(WId)"), target_slot)
[WId] windows | ( | ) |
Returns the list of all toplevel windows currently managed by the window manager in the order of creation. Please do not rely on indexes of this list: Whenever you enter Qt's event loop in your application, it may happen that entries are removed or added. Your module should perhaps work on a copy of this list and verify a window with hasWId() before any operations.
Iteration over this list can be done easily with
QList<WId>.ConstIterator it; for ( it = KWindowSystem.windows().begin(); it != KWindowSystem.windows().end(); ++it ) { ... do something here, (*it) is the current WId. }
- Returns:
- the list of all toplevel windows
QRect workArea | ( | int | desktop=-1 | |
) |
Returns the workarea for the specified desktop, or the current work area if no desktop has been specified.
- Parameters:
-
desktop the number of the desktop to check, -1 for the current desktop
- Returns:
- the size and position of the desktop
QRect workArea | ( | [WId] | excludes, | |
int | desktop=-1 | |||
) |
Returns the workarea for the specified desktop, or the current work area if no desktop has been specified. Excludes struts of clients in the exclude List.
- Parameters:
-
excludes the list of clients whose struts will be excluded desktop the number of the desktop to check, -1 for the current desktop
- Returns:
- the size and position of the desktop
workAreaChanged | ( | self ) |
The workarea has changed.
- Signal syntax:
QObject.connect(source, SIGNAL("workAreaChanged()"), target_slot)
Enumeration Documentation
IconSource |
Masks specifying from which sources to read an icon. They are tried from the best until an icon is found.
- Enumerator:
-
NETWM = 1 WMHints = 2 ClassHint = 4 XApp = 8