notificationcenter-settings-macos

Exposes a streamlined interface to the settings for Apple OSX and Apple macOS applications.

Usage no npm install needed!

<script type="module">
  import notificationcenterSettingsMacos from 'https://cdn.skypack.dev/notificationcenter-settings-macos';
</script>

README

notificationcenter-settings-macos

Gitter issues


Exposes a streamlined interface to the Notification Center settings for OSX / macOS applications.


Contents

  1. Platforms
  2. Programmatic Usage
  3. Commandline Interface
  4. API
  5. Tests
  6. Under the Hood
  7. Author

Platforms

  • Tested on Yosemite, El-Capitan and Sierra (10.10 upward).

Programmatic Usage

Install it

$ npm install --save notificationcenter-settings

Require it

var ncSettings = require('notificationcenter-settings');

Use the get() callback to parse settings:

ncSettings.get('com.apple.iTunes', function(err, result) {
    if (err) return err;
    console.dir(result);
};

Result:

{
    isHidden: false,
    showBadge: true,
    playSound: true,
    isBanner: true,
    isAlert: false,
    hideInLockscreen: false,
    showPreview: false,
    hidePreview: false
}

Commandline Interface

Install the module globally:

npm install --global notificationcenter-settings

Run the provided nc-settings executable:

$ nc-settings com.apple.iTunes

Result:

Notification Center settings for "com.apple.iTunes":
{
    "isHidden": false,
    "showBadge": true,
    "playSound": true,
    "isBanner": true,
    "isAlert": false,
    "hideInLockscreen": false,
    "showPreview": false,
    "hidePreview": false
}

API

get(bundleId, callback)

Get current Notification Center settings for app using bundleId.

  • String bundleId - Bundle identifier for the callback function
  • Function callback - The function to call to start Notification Center parsing

Returns:

  • Object with the following properties:

  • isHidden Show in Notification center

  • showBadge Show badge app icon

  • playSound Play sound for notifications

  • isBanner Show as banner

  • isAlert Show as alert

  • hideInLockscreen Hide notifications on lock screen

  • showPreview Show message preview

  • hidePreview Hide message preview

path()

Get absolute path to Notification Center database file.

See also 'Getting the bundle identifier of an OS X application in a shell script'

Returns:

  • String containing the absolute path to the database file

Tests

npm test

Under the hood

The module parses the default Sqlite3 .db database for com.apple.notificationcenter. The contained bit flags for each application identifier contain its current settings.

Author

Sidney Bofah

Thanks goes to the NCUtil project for laying out the baseline implementation in Python.

Badge

badge