Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
sindresorhus/do-not-disturb: Control the macOS `Do Not Disturb` feature

sindresorhus/do-not-disturb: Control the macOS `Do Not Disturb` feature

13 hours ago

do-not-disturb

Control the macOS Do Not Disturb feature
[!WARNING]
This package is archived. It does not work on macOS 11 or later.
> macOS 11 replaced Do Not Disturb with Focus, and Apple ships no public API to read or set it. Use a shortcut with the built-in "Set Focus" action instead: shortcuts run "".

Note that this package does not work inside a sandboxed app.

If you want to see an official API for this, please copy-paste the following into a new Feedback Assistant report, and submit it to Apple. Apple uses duplicates as an indication for how popular a request is.

Install

npm install @sindresorhus/do-not-disturb

Usage

import doNotDisturb from '@sindresorhus/do-not-disturb';

await doNotDisturb.enable();

API

doNotDisturb

All the methods return a Promise. You only really need to await them if you use multiple methods at once.

.enable(): Promise

.disable(): Promise

.toggle(force?): Promise

##### force

Type: boolean

Force it to be enabled/disabled.

.isEnabled(): Promise

.on('change', listener, options): EventEmitter

Attach an event listener that gets called when the "Do Not Disturb" state changes.

##### options

Type: object

###### pollInterval

Type: number\ Default: 3000

Interval in milliseconds at which the polling for the change event is made.

.off('change', listener): EventEmitter

Remove an event listener that was attached previously.

import doNotDisturb from '@sindresorhus/do-not-disturb';

const listener = status => { console.log(Do Not Disturb status: ${status}); }

doNotDisturb.on('change', listener, {pollInterval: 100});

// …

doNotDisturb.off('change', listener);

Related

Chat with me