Event list

These are all the events that can be listened to using Event Hooks.

Complete list

ℹ️
M: means std::unordered_map<std::string, std::any> following props are members.
namedescriptionargument(s)cancellable
tickfired on a tick, meaning once per (1000 / highestMonitorHz) msnullptr
activeWindowfired on active window changePHLWINDOW
keyboardFocusfired on keyboard focus change. Contains the newly focused surfaceSP<CWLSurfaceResource>
moveWorkspacefired when a workspace changes its monitorstd::vector<std::any>{PHLWORKSPACE, CMonitor*}
focusedMonfired on monitor focus changeCMonitor*
moveWindowfired when a window changes workspacestd::vector<std::any>{PHLWINDOW, PHLWORKSPACE}
openLayerfired when a LS is mappedPHLLS
closeLayerfired when a LS is unmappedPHLLS
openWindowfired when a window is mappedPHLWINDOW
closeWindowfired when a window is unmappedPHLWINDOW
windowUpdateRulesfired when a window’s rules are updatedPHLWINDOW
urgentfired when a window requests urgentPHLWINDOW
monitorAddedfired when a monitor is plugged inCMonitor*
monitorRemovedfired when a monitor is unpluggedCMonitor*
createWorkspacefired when a workspace is createdPHLWORKSPACE
destroyWorkspacefired when a workspace is destroyedPHLWORKSPACE
fullscreenfired when a window changes fullscreen statePHLWINDOW
changeFloatingModefired when a window changes float statePHLWINDOW
workspacefired on a workspace change (only ones explicitly requested by a user)PHLWORKSPACE
submapfired on a submap changestd::string
mouseMovefired when the cursor moves. Param is coords.const Vector2D
mouseButtonfired on a mouse button pressIPointer::SButtonEvent
mouseAxisfired on a mouse axis eventM: event:IPointer::SAxisEvent
touchDownfired on a touch down eventITouch::SDownEvent
touchUpfired on a touch up eventITouch::SUpEvent
touchMovefired on a touch motion eventITouch::SMotionEvent
activeLayoutfired on a keyboard layout change. String pointer temporary, not guaranteed after execution of the handler finishes.std::vector<std::any>{SP<IKeyboard>, std::string}
preRenderfired before a frame for a monitor is about to be renderedCMonitor*
screencastfired when the screencopy state of a client changes. Keep in mind there might be multiple separate clients.std::vector<uint64_t>{state, framesInHalfSecond, owner}
renderfired at various stages of rendering to allow your plugin to render stuff. See src/SharedDefs.hpp for a list with explanationseRenderStage
windowtitleemitted when a window title changes.PHLWINDOW
configReloadedemitted after the config is reloadednullptr
preConfigReloademitted before a config reloadnullptr
keyPressemitted on a key pressM: event:IKeyboard::SButtonEvent, keyboard:SP<IKeyboard>
pinemitted when a window is pinned or unpinnedPHLWINDOW
swipeBeginemitted when a touchpad swipe is commencedIPointer::SSwipeBeginEvent
swipeUpdateemitted when a touchpad swipe is updatedIPointer::SSwipeUpdateEvent
swipeEndemitted when a touchpad swipe is endedIPointer::SSwipeEndEvent