System Event
Triggerdesktopcomputer
trigger.system_event
Fires on macOS system events like sleep, wake, lock, network, volume, or Bluetooth device changes. This trigger lets you react to operating system-level events that affect your entire Mac.
Select the specific system event to monitor. Different events provide different output variables — for example, the dark mode event includes the current dark mode state, while network events include connection type and status.
Ports
| Direction | Name | Data Type | Description |
|---|---|---|---|
| Outlet | Output | Any | Payload emitted when the system event occurs |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
| Event | Dropdown |
Wake | System event type: Sleep, Wake, Screen Lock, Screen Unlock, Dark Mode Changed, Network Changed, Volume Mount, Volume Unmount, Bluetooth Device Connected, or Bluetooth Device Disconnected |
| Device Name Filter | Text |
— | Shown for Bluetooth Device Connected. Only fire when the device name contains this text (case-insensitive substring). Leave empty to fire for all devices. |
| Device Name Filter | Text |
— | Shown for Bluetooth Device Disconnected. Same case-insensitive substring match, applied independently of the connected filter. |
| Paired Devices Only | Boolean |
On | Shown for Bluetooth Device Connected. When on, only devices paired with this Mac fire — matching what the Bluetooth menu shows. Turn off to also catch unpaired devices (route them with a Condition on isPaired or transport). |
| Paired Devices Only | Boolean |
On | Shown for Bluetooth Device Disconnected. Same paired-only gate, applied independently of the connected toggle. |
| Custom Arguments | Key-Value |
— | Additional key-value pairs included in the output payload |
Output Variables
| Variable | Type | Description |
|---|---|---|
event |
String | Event type that fired |
timestamp |
String | ISO 8601 timestamp |
isDarkMode |
Boolean | Current dark mode state (dark_mode event) |
networkType |
String | Network type: wifi / cellular / wired / other (network_changed event) |
isConnected |
Boolean | Whether network is connected (network_changed event) |
isExpensive |
Boolean | Whether network is expensive/metered (network_changed event) |
volumeName |
String | Name of mounted/unmounted volume (volume events) |
volumePath |
String | Path of mounted/unmounted volume (volume events) |
deviceName |
String | Name of the Bluetooth device (bluetooth events) |
deviceAddress |
String | MAC address of the device, e.g. ac-88-fd-ee-30-66 (bluetooth events) |
deviceKind |
String | Device type: headphones, audio, keyboard, mouse, gamepad, phone, computer, or unknown (bluetooth events) |
transport |
String | Bluetooth transport: classic or ble (bluetooth events) |
isPaired |
Boolean | Whether the device is paired with this Mac (bluetooth events) |
deviceClass |
Number | Raw Bluetooth class-of-device integer; 0 for BLE devices (bluetooth events) |
vendorID |
String | HID vendor ID as a string; omitted when unavailable (bluetooth events) |
productID |
String | HID product ID as a string; omitted when unavailable (bluetooth events) |
Bluetooth Event Behavior
- Permission: the first time you arm a flow with a Bluetooth event, macOS shows a one-time Bluetooth permission prompt. If access is denied, the trigger stays unarmed until you enable it in System Settings → Privacy & Security → Bluetooth.
- Disconnect debounce: disconnect events fire after a 3-second settle window. A device that reconnects within the window (AirPods auto-switching between your Apple devices) emits nothing; a genuine disconnect fires about 3 seconds after the device drops.
- Wake and radio-on reconnects fire: devices that reconnect when your Mac wakes from sleep, or when Bluetooth is turned back on, emit real connect events on purpose — "when my AirPods connect, set the volume" should run on wake too. Use the Device Name Filter (or combine with the Wake event in a condition) if you want fewer fires.
- Classic and BLE both supported: classic Bluetooth devices (AirPods, speakers, phones) and BLE devices (most modern keyboards and mice) both fire. BLE devices report
deviceClass0 andtransport"ble". - Paired Devices Only (default on): some devices maintain a second, unpaired low-energy link alongside their main connection — AirPods, for example, briefly open one when stowed in their case, which would otherwise fire a phantom "connected" event under the same device name. The default suppresses these so events match what the Bluetooth menu shows. Turn the toggle off to observe every link — useful for "alert me when an unknown device connects" flows — and route with a Condition on
isPairedortransport. - Device names: the OS-cached personalized name ("Greg's AirPods Pro") is used while connected; a disconnect may report the generic advertised name ("AirPods Pro") because the link is already torn down. Name filters match both (substring), but exact-match conditions should prefer
deviceAddress. - deviceKind values: headphones, audio, keyboard, mouse, gamepad, phone, computer, or unknown — derived from the device class, with an HID fallback for BLE devices.
Example
Show a notification when dark mode is activated: