mkc

macos-key-cast

Log keys pressed on macOS. Useful for screen recordings and presentations.

Showing:

Popularity

Downloads/wk

130

GitHub Stars

226

Maintenance

Last Commit

22d ago

Contributors

3

Package

Dependencies

5

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

macos-key-cast Actions Status

Log keys pressed on macOS. Useful for screen recordings and presentations.

Requires macOS 10.12 or later. macOS 10.13 or earlier needs to download the Swift runtime support libraries.

Run as CLI

Using npx

$ npx macos-key-cast

Installing

$ npm install -g macos-key-cast
$ key-cast

Usage

Usage: key-cast [options]

Options:
  -b, --bounds <value>      JSON object with bounds of a rectangle to show the UI in. Example: '{"bounds":[[955,627],[656,384]]}'
  -d, --display <value>     Display number of the screen to show the UI in. Defaults to the main screen.
  -h, --help                Show help information
  -k, --key-combinations    Show key combinations only
  -s, --size <value>        Size of the window and font to use. Defaults to normal
  -t, --delay <value>       How long the key remains on screen in seconds

Node API

Installation

$ npm install macos-key-cast

Usage

const castKeys = require('macos-key-cast');

const process = castKeys({size: 'large', delay: 1.5, keyCombinationsOnly: true});

// Later

process.cancel();

Demo

Dark Mode support

API

castKeys(options: object): PCancelable<void>

Start the process.

The returned promise is an instance of PCancelable, so it has a .cancel() method which can be used to kill the process

options: object

Additional options passed to the CLI

options.size: 'small' | 'normal' | 'large'

Default: normal

How big the window and the font should be

options.delay: number

Default: 0.5

How long the window should remain on screen after the last key press

options.display: number

Display id of the screen to show the UI in. Defaults to the main screen.

Note: If you are using electron, you can find the display id in the Display Object.

options.keyCombinationsOnly: boolean

Default: false

Whether or not it should track all key presses or only combinations

options.bounds: Object

An object containing keys x, y, width, height defining an area within the display to use for the UI's initial position.

Contributing

If you want to use this and need more features or find a bug, please open an issue and I'll do my best to implement.

PRs are always welcome as well 😃

License

MIT

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100