notificationcenter-settings-macos v2.2.1
notificationcenter-settings-macos
Exposes a streamlined interface to the Notification Center settings for OSX / macOS applications.
Contents
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
Thanks goes to the NCUtil project for laying out the baseline implementation in Python.