/trayicon

node system tray trayicon helper

Primary LanguageC#MIT LicenseMIT

Build Status Version License Code style Available platform

Motivation

trayicon provide you system tray icon for your nodejs application.

Usage example

const Tray = require('trayicon');

Tray.create(function(tray) {
  let main = tray.item("Power");
  main.add(tray.item("on"), tray.item("on"));

  let quit = tray.item("Quit", () => tray.kill());
  tray.setMenu(main, quit);
});

API

(Promise <Tray>) tray.create({icon, title, action, useTempDir} [, readyCb])

Create a new Tray instance, return a promise / emit a callback when the trayicon is ready. If defined, action callback is triggered when double clicking the tray. Set useTempDir to true or "clean" to copy executable files to temporary directory (clean removes temp files on tray.kill()). Allows using the package with pkg.

(void) tray.setTitle(tray title)

Set the systray title.

(void) tray.setIcon(binary icon buffer)

Set the systray icon.

(void) tray.notify("Some title", "Some message")

Display a notification balloon.

(void) tray.setMenu(...items)

Set the systray menu.

(Item) tray.item("foo", { ?checked : boolean, ?disabled : boolean, ?bold : boolean, ?action : function})

Create a menu item. If defined, the action callback is triggered when the item is selected.

(void) parentItem.add(...childrenItems)

Create a submenu of childrenItems under parentItem.

(Item) tray.separator()

Create an item of type "separator"

Extra features

  • Work when running node as SYSTEM\NT authority (trayicon will fallback to interactive session if needed)

Credits