CTray
Cross-platform Node.js class to create system trays.
Note: This package does not support macOS. (See issue #2)
Installation
$ npm install ctray
Usage
Simple Example
let Tray = require("ctray");
let tray = new Tray("path/to/icon");
tray.tooltip = "Simple Example Tray";
tray.menu = [
"Example",
"-",
{text: "Quit", callback: _ => tray.close()}
])
tray.on("close", () => console.log("Tray Closed"));
See the example file for a more complex example.
Constructor new Tray(icon: string) : Tray
Creates the tray's instance displays the icon on the taskbar.
Tray extends from EventEmitter, and it emits "close" once it is closed.
tray#close(): void
Requests the tray to close and emits "close".
tray#tooltip: string
Getter/Setter for the tooltip to show over the tray.
tray#icon: string
Getter/Setter for the absolute path to the icon to display.
Setter for the menu of the tray. Each element of the array can either be a String or an Object with the following format:
type MenuItem = {
text: string,
checked?: boolean,
disabled?: boolean,
callback?: () => void,
submenu?: MenuItem[],
}
Note that getting this property will return the menu Array as an Object to prevent Array functions that add/remove elements as they are not supported.
Setting text = '-' creates a MenuItem of type "separator". Its text cannot be changed nor have submenus.
Next steps
Notes to self
- Generate ico from svg command:
$ convert -density 2048 -background transparent icon.svg -define icon:auto-resize -colors 256 icon.ico