New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

ctray

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ctray

Cross-platform (tested on linux and windows) Node.js class to create system trays.

latest
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

CTray Logo CTray Logo

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"; // Sets the tooltip to display

tray.menu = [ // Sets the 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.

tray#menu: MenuItem[]

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,     // Label of the element in the tray. Required
    checked?:  boolean,    // Item starts checked? defaults: false
    disabled?: boolean,    // Item is disabled? defaults: false
    callback?: () => void, // Function without arguments to run on click.
    submenu?:  MenuItem[], // Array With the same rules as menu
}

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

  • Improve documentation.
  • Test in other plattforms.
  • Create package.json Scripts.
  • Allow changing the menu dynamically.
  • Test in MacOS
Notes to self
  • Generate ico from svg command: $ convert -density 2048 -background transparent icon.svg -define icon:auto-resize -colors 256 icon.ico

Keywords

tray

FAQs

Package last updated on 08 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts