HSEventTapEvent
TypeAn input event captured or constructed by hs.eventtap.
Objects of this type are passed to event tap callbacks and can also be created directly via the factory methods on hs.eventtap. Properties can be inspected and modified before the event is passed through or posted back to the system.
Properties
rawFlags
number
The raw modifier flags bitmask (get/set). Use values from hs.eventtap.modifierFlags.
flags
string[]
An array of active modifier key names (e.g. ["cmd", "shift"]).
When a device-specific modifier is detected, both the generic and side-specific
names are included — e.g. pressing the left Command key yields ["cmd", "leftCmd"].
location
{[key: string]: number}
The event's screen position as {x, y} in Hammerspoon screen coordinates
(top-left origin of primary display, y increases downward, matching hs.screen).
characters
string
The Unicode characters produced by this keyboard event, or null for non-keyboard events
Methods
duplicate() -> HSEventTapEvent
Create an independent copy of this event
Declaration
duplicate() -> HSEventTapEvent
Returns
HSEventTapEvent
A new HSEventTapEvent with the same properties, or null if the copy failed
Example
const copy = event.duplicate()
copy.keyCode = 0 // modify the copy
copy.post()
post(app) -> None
Post this event to the HID event stream, optionally targeting a specific application.
When `app` is omitted or `null`, the event is posted to the global HID stream and
delivered by the OS as if a real input device generated it. When an application is
provided, the event is delivered directly to that process by PID.
Declaration
post(app) -> None
Parameters
| Name | Type | Description |
|---|---|---|
| app | HSApplication | The application to target, or null/omit to post globally |
Returns
None
Example
const evt = hs.eventtap.makeKeyEvent("a", true)
evt.post() // post globally
const safari = hs.application.find("Safari")
if (safari) evt.post(safari) // post directly to Safari