Window
Used to be called AbstractClient. Backend-agnostic class to represent a window.
Constructors
Cannot be constructed. Create new ones by opening windows.
Properties
- bufferGeometry
The geometry of the window's buffer
bufferGeometry: QRect- clientGeometry
The geometry of the client. Deprecated, use
frameGeometryclientGeometry: QRect- pos
The position of the window in the workspace
pos: QPoint- size
The size of the window
size: QSize- x
X coordinate of
posx: number- y
Y coordinate of
posy: number- width
Width property of
sizewidth: number- height
Height property of
sizeheight: number- opacity
How transparent the window should be (range 0-1)
opacity: number- output
The current screen (output) the window is associated with
output: Output- rect
Rect???
rect: QRect- resourceName
The name of the window
resourceName: string- resourceClass
The XDG name of the window
resourceClass: string- windowRole
What role the window plays (XDG standard)
windowRole: string- desktopWindow
Whether the window is literally a desktop (like the background of Plasma)
desktopWindow: boolean- dock
Whether the window is a dock
dock: boolean- toolbar
Whether the window is a toolbar
toolbar: boolean- menu
Whether the window is a menu
menu: boolean- normalWindow
Whether the window is a normal desktop window
normalWindow: boolean- dialog
Whether the window is a dialog
dialog: boolean- splash
Whether the window is a splash screen
splash: boolean- utility
Whether the window is an utility window
utility: boolean- dropdownMenu
Whether the window is a dropdown menu
dropdownMenu: boolean- popupMenu
Whether the window is a popup
popupMenu: boolean- tooltip
Whether the window is a tooltip
tooltip: boolean- notification
Whether the window is a notification
notification: boolean- criticalNotification
Whether the window is a critical notification
criticalNotification: boolean- appletPopup
Whether the window is an applet popup
appletPopup: boolean- onScreenDisplay
Whether the window is an on-screen display
onScreenDisplay: boolean- comboBox
Whether the window is a combo box
comboBox: boolean- dndIcon
Can I stop now?
dndIcon: boolean- windowType
The type of the window. Probably a whole lot easier to use this instead of all the above properties
windowType: number- managed
Whether KWin manages the window (probably yes it does)
managed: boolean- deleted
Whether the window is deleted?
deleted: boolean- skipsCloseAnimation
Whether the window skips the close animation
skipsCloseAnimation: boolean- popupWindow
Whether the window is a popup window. This one works on Wayland
popupWindow: boolean- outline
If the window should display an outline or not
outline: boolean- internalId
The id of the window
internalId: QUuid- pid
The pid of the process running the window
pid: number- stackingOrder
The stacking order of the window. Don't know specifics yet
stackingOrder: number- fullScreen
Whether the window is in full screen
fullScreen: boolean- fullScreenable
Whether the window can be full screen
fullScreenable: boolean- active
Whether the window is active (focused)
active: boolean- desktops
What virtual desktops the window is on. Too easy to make it just one I guess?
desktops: VirtualDesktop[]- onAllDesktops
Whether the window is on all virtual desktops
onAllDesktops: boolean- activities
What activities the window is on
activities: string[]- skipTaskbar
Whether the window should skip the taskbar
skipTaskbar: boolean- skipPager
Whether the window should skip the pager
skipPager: boolean- skipSwitcher
Whether the window should skip the window switcher
skipSwitcher: boolean- closeable
Whether the window is closeable
closeable: boolean- icon
The icon for the window
icon: QIcon- keepAbove
Whether the window should stay above other windows
keepAbove: boolean- keepBelow
Whether the window should stay below other windows
keepBelow: boolean- shadeable
Whether the window can be shaded or not
shadeable: boolean- shade
Whether the window is shaded or not
shade: boolean- minimizable
Whether the window can be minimized
minimizable: boolean- minimized
Whether the window is minimized
minimized: boolean- iconGeometry
The geometry of the window icon
iconGeometry: QSize- specialWindow
Whether the window is special (in Wayland, this corresponds to things like
desktopWindowfor XDG so use this)specialWindow: boolean- demandsAttention
Whether the window demands attention
demandsAttention: boolean- caption
The displayed title of the window
caption: string- minSize
The minimum size of the window
minSize: QSize- maxSize
The maximum size of the window
maxSize: QSize- wantsInput
Whether the window wants input
wantsInput: boolean- transient
Whether the window is transient
transient: boolean- transientFor
If transient, which window the window is transient for
transientFor: Window?- modal
Whether the window is modal
modal: boolean- frameGeometry
The geometry of the window. Use this instead of
clientGeometryframeGeometry: object- move
Whether the window is moved(?)
move: boolean- resize
Whether the window is resized(?)
resize: boolean- decorationHasAlpha
Whether the window's decoration has transparency (alpha)
decorationHasAlpha: boolean- noBorder
Whether the window's border is disabled. Different from
outlinenoBorder: boolean- providesContextHelp
Whether the window can provide context help
providesContextHelp: boolean- maximizable
Whether the window can be maximized
maximizable: boolean- moveable
Whether the window can be moved
moveable: boolean- moveableAcrossScreens
Whether the window can be moved across screens
moveableAcrossScreens: boolean- resizeable
Whether the window can be resized
resizeable: boolean- desktopFileName
The .desktop file name of the window
desktopFileName: string- hasApplicationMenu
Whether the window has an application menu
hasApplicationMenu: boolean- applicationMenuActive
Whether the application menu is active, if it has one
applicationMenuActive: boolean- unresponsive
Whether the window is responsive
unresponsive: boolean- colorScheme
The color scheme of the window
colorScheme: string- layer
What layer the window is on
layer: number- hidden
Whether the window is hidden (not just minimized)
hidden: boolean- tile
The current tile the window is in, or null
tile: Tile?- inputMethod
Why is this a boolean?
inputMethod: boolean
Methods
- closeWindow
Closes the window
closeWindow()- setReadyForPainting
Sets the window as ready for drawing on screen
setReadyForPainting()- setMaximize
Maximizes the window in horizontal or vertical directions
setMaximize(vertical: boolean, horizontal: boolean)
Signals
The vast majority of these are self-documenting if you look at the properties, so I'm not writing more for this.
- stackingOrderChanged
stackingOrderChanged()- shadeChanged
shadeChanged()- opacityChanged
opacityChanged(window: Window, oldOpacity: number)- damaged
damaged(window: Window)- inputTransformationChanged
inputTransformationChanged()- closed
closed()- windowShown
windowShown(window: Window)- windowHidden
windowHidden(window: Window)- outputChanged
outputChanged()- skipCloseAnimationChanged
skipCloseAnimationChanged()- windowRoleChanged
windowRoleChanged()- windowClassChanged
windowClassChanged()- surfaceChanged
surfaceChanged()- shadowChanged
shadowChanged()- bufferGeometryChanged
bufferGeometryChanged(oldGeometry: QRect)- frameGeometryChanged
frameGeometryChanged(oldGeometry: QRect)- clientGeometryChanged
clientGeometryChanged(oldGeometry: QRect)- frameGeometryAboutToChange
frameGeometryAboutToChange()- visibleGeometryChanged
visibleGeometryChanged()- tileChanged
tileChanged(tile: Tile)- fullScreenChanged
fullScreenChanged()- skipTaskbarChanged
skipTaskbarChanged()- skipPagerChanged
skipPagerChanged()- skipSwitcherChanged
skipSwitcherChanged()- iconChanged
iconChanged()- activeChanged
activeChanged()- keepAboveChanged
keepAboveChanged(keepAbove: boolean)- keepBelowChanged
keepBelowChanged(keepBelow: boolean)- demandsAttentionChanged
demandsAttentionChanged()- desktopsChanged
desktopsChanged()- activitiesChanged
activitiesChanged()- minimizedChanged
minimizedChanged()- paletteChanged
paletteChanged()- colorSchemeChanged
colorSchemeChanged()- captionChanged
captionChanged()- captionNormalChanged
captionNormalChanged()- maximizedAboutToChange
maximizedAboutToChange(mode: MaximizeMode)- maximizedChanged
maximizedChanged()- transientChanged
transientChanged()- modalChanged
modalChanged()- quickTileModeChanged
quickTileModeChanged()- moveResizedChanged
moveResizedChanged()- moveResizeCursorChanged
moveResizeCursorChanged()- interactiveMoveResizeStarted
interactiveMoveResizeStarted()- interactiveMoveResizeStepped
interactiveMoveResizeStepped(oldGeometry: QRect)- interactiveMoveResizeFinished
interactiveMoveResizeFinished()- closeableChanged
closeableChanged()- minimizeableChanged
minimizeableChanged(minimizeable: boolean)- shadeableChanged
shadeableChanged(shadeable: boolean)- maximizeableChanged
maximizeableChanged(maximizeable: boolean)- desktopFileNameChanged
desktopFileNameChanged()- applicationMenuChanged
applicationMenuChanged()- hasApplicationMenuChanged
hasApplicationMenuChanged(hasApplicationMenu: boolean)- applicationMenuActiveChanged
applicationMenuActiveChanged(active: boolean)- unresponsiveChanged
unresponsiveChanged(unresponsive: boolean)- decorationChanged
decorationChanged()- hiddenChanged
hiddenChanged()- hiddenByShowDesktopChanged
hiddenByShowDesktopChanged()- lockScreenOverlayChanged
lockScreenOverlayChanged()- readyForPaintingChanged
readyForPaintingChanged()
Remarks
I forgot if it was this complex in 5.27, but there is a lot more nuance to the Window class now that the old AbstractClient and Toplevel classes are gone.