awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
kmonad avatar

kmonad/kmonad

0
View on GitHub↗
5,018 stars·336 forks·Haskell·MIT·17 views

Kmonad

Kmonad is a cross-platform keyboard remapper and advanced key mapping engine that intercepts physical keyboard inputs and transforms them into customized virtual output events. It functions as a programmable input wrapper and multi-layer keyboard manager, allowing users to redefine physical keys and route hardware inputs to virtual devices across different operating systems.

The system distinguishes itself through a multi-layer management architecture that enables the definition of dynamic keyboard layers and overlays to change keyboard functions based on the current context. It implements complex interaction logic, such as tap-hold behaviors, leader keys, sticky modifiers, and action cycling, to expand the utility of a limited number of physical keys.

Beyond basic remapping, the project covers system automation through the execution of shell commands and the creation of key sequence macros. It also manages low-level input timing and device connectivity, including hardware polling to ensure the service starts only after specific devices are connected.

Features

  • Keyboard Key Mappings - Remaps physical keyboard keys to different characters or modifiers to customize the input layout.
  • Keyboard Layout Layers - Kanata defines alternative keyboard layouts that activate to change key functions temporarily or permanently.
  • Keyboard Layout Managers - Provides a system-level tool for defining custom key mappings, layers, and modifier behaviors to redefine keyboard functionality.
  • Layered Keymaps - Provides sets of key mappings that can be toggled to dynamically change the active keyboard operational mode.
  • Stateful Event Buffering - Sequences key events to implement advanced functionality such as sticky modifiers, leader keys, and macro execution.
  • Custom Key Behavior Definitions - Implements advanced key event interception to provide tap-hold, leader keys, and sticky modifiers.
  • Advanced Mapping Engines - Implements a sophisticated logic engine for tap-hold, leader keys, and macros to expand keyboard capabilities.
  • Dynamic Layering - Defines sets of keymaps that toggle to change the function of the entire keyboard dynamically.
  • Dynamic Layout Layering - Manages multiple key mapping sets that can be toggled to change keyboard functionality dynamically.
  • Tap-Hold Key Behaviors - Assigns different actions to a key depending on whether it is tapped quickly or held down.
  • Input Timing Logic - Evaluates key press and release durations to distinguish between taps, holds, and multi-tap sequences.
  • Advanced Input Behaviors - Implements advanced input behaviors such as tap-mod, multi-tap, leader-key sequences, and macros.
  • Cross-Platform Input Consistency - Standardizes custom keyboard shortcut patterns and behaviors across different operating systems.
  • Input Interaction Patterns - Kanata creates interaction patterns such as sticky keys, circular sequences, and timed tap-hold transitions.
  • Input Remappers - Intercepts and redirects hardware input events to trigger customized virtual output events system-wide.
  • Multi-Use Key Configurations - Kanata assigns different actions to a single key based on whether it is tapped, held, or pressed multiple times.
  • Programmable Input Wrappers - Implements a service that routes physical hardware inputs to virtual devices to enable custom key aliases and shell command execution.
  • Keyboard Event Mappings - Implements a configuration-driven system to translate raw keyboard keycodes into customized actions and aliases.
  • Input Device Emulators - Emulates physical input devices to inject transformed events into the system stream via virtual devices.
  • Input Device Mapping - Links physical hardware device identifiers to virtual output ports for consistent keystroke processing.
  • Keyboard Input Mapping - Captures keystrokes and transforms them into different outputs based on a configurable mapping.
  • Automation Shortcuts - Provides shortcuts that automatically trigger system shell commands or complex macro sequences.
  • Shell Command Execution - Enables the execution of operating system shell commands triggered by specific keyboard events.
  • Event-Driven Execution - Automatically triggers system shell commands based on detected keyboard input events.
  • Input Sequence Macros - Executes a series of keys in a specific order as a macro with optional delays between events.
  • Key Aliasing - Assigns custom names to complex key sequences to allow for their reuse across different keyboard layers.
  • Modifier-Aware Key Mappings - Binds multiple keys into single actions while preserving the order and timing of modifier keys.
  • Action Cycling - Kanata rotates through a sequence of different key actions each time a button is pressed.
  • Input Event Timing Control - Kanata enforces minimum delays between key events or sets specific timeouts for hold and press actions.
  • Sticky Modifier Modalities - Holds a modifier key active temporarily for a set duration after a single press.

Star history

Star history chart for kmonad/kmonadStar history chart for kmonad/kmonad

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Kmonad

These projects share indexed features with Kmonad. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • zmkfirmware/zmkzmkfirmware avatar

    zmkfirmware/zmk

    4,124View on GitHub↗

    ZMK is a modular firmware framework built on the Zephyr RTOS for wireless keyboards. It functions as a programmable system for defining custom keymaps, layers, and input behaviors, acting as an HID device emulator for keyboard and mouse input on computers and mobile devices. It specifically provides a controller solution for synchronizing two separate keyboard halves over wireless or wired links. The project is distinguished by its focus on Bluetooth Low Energy connectivity, featuring multi-device pairing and the ability to switch between several saved host profiles. It includes advanced powe

    Cbluetoothhacktoberfestkeyboard
    View on GitHub↗4,124
  • rvaiya/keydrvaiya avatar

    rvaiya/keyd

    5,590View on GitHub↗

    keyd is a kernel-level daemon for Linux that intercepts and remaps physical keyboard inputs to create custom layouts and shortcuts. It functions as a system-level input service and layout manager, capable of modifying input signals before they reach the operating system. The service supports application-aware mapping, which dynamically changes keyboard behavior based on the active window. It also provides device-specific mapping, allowing unique configurations to be assigned to different physical keyboards using their hardware identifiers. The tool includes capabilities for managing multiple

    Cckeyboardkeyboard-layout
    View on GitHub↗5,590
  • tmk/tmk_keyboardtmk avatar

    tmk/tmk_keyboard

    4,125View on GitHub↗

    tmk_keyboard is keyboard firmware for AVR and Cortex-M microcontrollers designed to handle key matrix scanning and HID communication. It functions as an embedded hardware control library for managing GPIO pins and EEPROM storage, as well as a driver that transmits keystroke and mouse data to a host computer via USB or PS/2 protocols. The project features a layer-based keymap engine that allows physical keys to be mapped to multiple virtual layers. It also includes a legacy keyboard protocol translator to convert signals from vintage hardware standards to modern computer interfaces. The firmw

    C
    View on GitHub↗4,125
  • manna-harbour/miryokumanna-harbour avatar

    manna-harbour/miryoku

    3,740View on GitHub↗

    Miryoku is a universal mapping specification for ergonomic and orthogonal keyboards. It provides a standardized set of key assignments and layers designed to decouple logical input intent from specific physical hardware, ensuring consistent key placement across different firmware and devices. The system focuses on home-row navigation, placing cursor movement, mouse emulation, and system functions on the home row to minimize hand travel. It utilizes a layer-based input strategy with toggleable and modal layers to manage numerals, symbols, and media controls without relying on complex modifier

    Makefilemiryoku
    View on GitHub↗3,740
Compare all 30 related projects→

Frequently asked questions

What does kmonad/kmonad do?

Kmonad is a cross-platform keyboard remapper and advanced key mapping engine that intercepts physical keyboard inputs and transforms them into customized virtual output events. It functions as a programmable input wrapper and multi-layer keyboard manager, allowing users to redefine physical keys and route hardware inputs to virtual devices across different operating systems.

What are the main features of kmonad/kmonad?

The main features of kmonad/kmonad are: Keyboard Key Mappings, Keyboard Layout Layers, Keyboard Layout Managers, Layered Keymaps, Stateful Event Buffering, Custom Key Behavior Definitions, Advanced Mapping Engines, Dynamic Layering.

Which projects share features with kmonad/kmonad?

Projects with overlapping indexed features include: zmkfirmware/zmk — ZMK is a modular firmware framework built on the Zephyr RTOS for wireless keyboards. It functions as a programmable… rvaiya/keyd — keyd is a kernel-level daemon for Linux that intercepts and remaps physical keyboard inputs to create custom layouts… tmk/tmk_keyboard — tmk_keyboard is keyboard firmware for AVR and Cortex-M microcontrollers designed to handle key matrix scanning and HID… manna-harbour/miryoku — Miryoku is a universal mapping specification for ergonomic and orthogonal keyboards. It provides a standardized set of… jtroo/kanata — Kanata is a cross-platform keymap engine and keyboard firmware emulator that intercepts physical keystrokes to output… tekezo/karabiner — Karabiner is a system-level keyboard remapper and input modifier for macOS. It functions as a kernel-level interceptor…