
Security News
Feross on the 10 Minutes or Less Podcast: Nobody Reads the Code
Socket CEO Feross Aboukhadijeh joins 10 Minutes or Less, a podcast by Ali Rohde, to discuss the recent surge in open source supply chain attacks.
keycuts is a modern Javascript library for handling keyboard shortcuts. It supports listening for key combinations, key sequences and a mix of both. keycuts has no external dependencies and a small footprint (~8kb, gzipped ~3kb).
$ npm install keycuts --save
# or
$ yarn add keycuts
Alternatively you can download the distributed library and link it into your webpage.
<script src="keycuts.min.js"></script>
// Import using ES6 modules syntax
import { Keys } from 'keycuts'
// or when linked directly in the webpage
const Keys = keycuts.Keys
// Create a new object (without any parameter it is directly attached
// to the window object)
const keys = new Keys()
// Trigger a provided callback when a specific key combination is pressed
keys.bind(['Control', 'a'], () => {
// triggered when Control and a are pressed
})
// You can also provide the shortcut using a string syntax
keys.bind('Control + a', () => {
// triggered when Control and a are pressed
})
// Sequences of key or key combinations are supported too
key.bind([['Control', 'a'], ['Alt', 'b']], () => {
// triggered when Control and a followed by Control and b are pressed
})
// And the appropriate string syntax
key.bind('Control + a > Control + b', () => {
// triggered when Control and a followed by Control and b are pressed
})
// Watch every keydown or keyup event and have access
// to the current key sequence
key.watch((event, sequence) => {
// acces the currently pressed key combo
const combo = sequence[sequence.length - 1]
})
But keycuts can do more! The full documentation, API reference and a demo can be found on the keycuts homepage.
For development fetch the code from Github and install the dependencies.
$ git clone https://github.com/medihack/keycuts.git
$ cd keycuts
$ npm install # or yarn install
keycuts uses Webpack to transpile the source code (src/) into a minified and non-minified bundle in the dist/ folder.
$ npm run build
You can easily start a development server with the demo which automatically recompiles the code and refreshes the page when the source files are modified (files under dist/ stay untouched).
// Start a development server on port 8000
$ npm run start
// Just visit localhost:8000 in your browser
Run the test suite (using Jest) once or automatically when a source or test file was changed.
// Run all tests once
$ npm run test
// or contiously
$ npm run test:watch
More scripts to manage the library can be found in the scripts section in the (./package.json) file.
To contribute, please fork, add your patch, write tests for it and submit a pull request.
Logo by Torsten Kühr (werkst.de)
FAQs
A modern keyboard event library for managing keyboard shortcuts.
The npm package keycuts receives a total of 5 weekly downloads. As such, keycuts popularity was classified as not popular.
We found that keycuts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.

Security News
Socket CEO Feross Aboukhadijeh joins 10 Minutes or Less, a podcast by Ali Rohde, to discuss the recent surge in open source supply chain attacks.

Research
/Security News
Campaign of 108 extensions harvests identities, steals sessions, and adds backdoors to browsers, all tied to the same C2 infrastructure.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.