# jamiebuilds/tinykeys

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jamiebuilds-tinykeys).**

4,081 stars · 87 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/jamiebuilds/tinykeys
- Homepage: https://jamiebuilds.github.io/tinykeys/
- awesome-repositories: https://awesome-repositories.com/repository/jamiebuilds-tinykeys.md

## Description

Tinykeys is a lightweight JavaScript utility for mapping keyboard combinations, sequences, and regular expression patterns to specific callback functions. It serves as an input mapping utility that triggers actions based on simultaneous modifier key presses or chronological key sequences.

The library distinguishes itself by supporting dynamic key pattern matching through regular expressions and state-based sequence tracking to execute actions after a specific series of presses. It also includes a keyboard event parser that converts human-readable shortcut strings into structured data.

These capabilities cover the broader surface of keyboard event interception and filtering, providing tools for converting keybinding strings into formats suitable for custom user interface displays.

## Tags

### Part of an Awesome List

- [Keyboard Shortcuts](https://awesome-repositories.com/f/awesome-lists/productivity/keyboard-shortcuts.md) — Provides a lightweight library for handling keyboard events and shortcuts.
- [Keyboard Input Patterns](https://awesome-repositories.com/f/awesome-lists/devtools/regex-and-pattern-matching/regex-pattern-matching/keyboard-input-patterns.md) — Allows triggering callbacks using regular expressions to match dynamic keyboard input patterns.
- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Library for handling keyboard shortcuts.

### Development Tools & Productivity

- [Ordered Key Sequences](https://awesome-repositories.com/f/development-tools-productivity/action-execution-frameworks/multi-action-triggers/ordered-key-sequences.md) — Executes actions when a user presses a series of keys in a specific chronological order. ([source](https://jamiebuilds.github.io/tinykeys/))
- [Dynamic Key Pattern Matching](https://awesome-repositories.com/f/development-tools-productivity/input-binding-libraries/multi-key-bindings/leader-key-sequences/dynamic-key-pattern-matching.md) — Triggers callbacks for a range of keys using regular expressions combined with platform-specific modifiers. ([source](https://jamiebuilds.github.io/tinykeys/))
- [Sequence-Based Mappings](https://awesome-repositories.com/f/development-tools-productivity/input-binding-libraries/multi-key-bindings/leader-key-sequences/sequence-based-mappings.md) — Supports mappings that trigger actions based on a specific chronological order of multiple keystrokes.
- [Regex-Based Keybindings](https://awesome-repositories.com/f/development-tools-productivity/keybinding-configurations/mode-specific-keybindings/modal-keybinding-engines/regex-based-keybindings.md) — Uses regular expressions to match keyboard input for flexible and scalable shortcut systems.

### Software Engineering & Architecture

- [Keyboard Shortcut Mappings](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/keyboard-shortcut-mappings.md) — Maps specific keyboard input events, including sequences and regex, to application callbacks. ([source](https://cdn.jsdelivr.net/gh/jamiebuilds/tinykeys@main/README.md))

### User Interface & Experience

- [Event-Driven Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers.md) — Implements an event-driven system to intercept and filter global keyboard events against a registry of combinations.
- [Modifier Key Listeners](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/modifier-key-listeners.md) — Provides utilities to detect and respond to system modifier keys like Ctrl, Alt, and Shift.
- [Input Mapping Utilities](https://awesome-repositories.com/f/user-interface-experience/input-mapping-utilities.md) — Triggers actions based on simultaneous modifier key presses or chronological key sequences.
- [Key Combination Mappings](https://awesome-repositories.com/f/user-interface-experience/key-combination-mappings.md) — Triggers specific functions when a user presses a combination of modifier keys and a character key. ([source](https://jamiebuilds.github.io/tinykeys/))
- [Keyboard Sequence Handlers](https://awesome-repositories.com/f/user-interface-experience/keyboard-sequence-handlers.md) — Provides tools for defining and handling complex multi-key command patterns.
- [Shortcut Data Parsers](https://awesome-repositories.com/f/user-interface-experience/keyboard-shortcut-displays/shortcut-data-parsers.md) — Converts shortcut strings into structured data for use in custom keyboard shortcut displays.

### Programming Languages & Runtimes

- [Keybinding](https://awesome-repositories.com/f/programming-languages-runtimes/string-parsing/keybinding.md) — Converts shortcut strings into structured arrays of modifiers and keys for custom user interface display. ([source](https://cdn.jsdelivr.net/gh/jamiebuilds/tinykeys@main/README.md))
- [Shortcut](https://awesome-repositories.com/f/programming-languages-runtimes/string-parsing/shortcut.md) — Converts human-readable keybinding strings into structured arrays of modifiers and keys.
