Socket
Socket
Sign inDemoInstall

@c8h_/keyboard.js

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @c8h_/keyboard.js

Listen for keyboard events from stdin easier


Version published
Weekly downloads
1
Maintainers
1
Created
Weekly downloads
 

Readme

Source

keyboard.js

A Keyboard library for NodeJS

Usage

keyboard.js has a default export, being the Keyboard class. To create a new Keyboard, add this to your code:

const Keyboard = require("keyboard.js");
const kb = new Keyboard();

Keyboard inherits EventEmitter. It emits events through .on(), .once(), .addListener(). By default, the Keyboard will emit in the following format:

C-M-{key}
e.g.
C-c == control + c
M-k == windows + k
B   == shift   + b

To listen for these, you can add event listeners. Here's how:

kb.on("C-c", () => process.exit()); // Exit when ctrl+c is pressed

Config

When creating your Keyboard, you can specify custom options:

// All of these are their default options
const kb = new Keyboard(process.stdin, {
    encoding: "utf8",
    rawMode: true,
    longKeyNames: false,
    seperator: "-",
});

Let's run through what each one of these do.

Stream

Deafult: process.stdin The stream to read.

Encoding

Default: "utf8" The encoding to read the stream in.

Raw Mode

Default: true Whether to enable raw mode for the stream, recommended if using keyboard shortcuts.

Long Key Names

Default: false If enabled, replace C- with ctrl- and M- with meta- in the events

Seperator

Default: "-" A seperator which goes after each modifier key in the listeners.

Event

Event is a class which is returned on every event.

Keywords

FAQs

Last updated on 23 Jun 2021

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc