30 open-source projects similar to kmonad/kmonad, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
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
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
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
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
Kanata is a cross-platform keymap engine and keyboard firmware emulator that intercepts physical keystrokes to output modified signals on Windows, Linux, and macOS. It serves as a keyboard remapper and layer manager, allowing users to define custom key-map sequences and modal editing behaviors through a declarative configuration file. The system implements keyboard firmware features in software, enabling advanced behaviors such as tap-hold logic, unicode output, and dynamic macros. It utilizes a state-based layer stack to manage multiple sets of key assignments that toggle dynamically and sup
Karabiner is a system-level keyboard remapper and input modifier for macOS. It functions as a kernel-level interceptor that modifies raw hardware events before they reach the operating system, utilizing a virtual hardware device to inject synthesized keyboard and mouse actions. The project distinguishes itself as a context-aware input manager, applying modification rules dynamically based on the active application, connected hardware, or current input source. It serves as a keyboard macro engine capable of automating multi-key shortcuts and conditional behaviors. Its broader capabilities inc
MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and consoles to run original software on modern devices. It functions as a retro gaming preservation framework for managing, verifying, and archiving ROM sets and disk images to ensure long-term software accessibility. The project features a system debugging tool for inspecting emulated memory, CPU registers, and execution flow via breakpoints and disassembly. It also includes a Lua-based automation layer that exposes core system state and hardware controls for custom behavior and anal
Karabiner-Elements is a system-level utility designed for advanced keyboard and mouse customization. It functions as a background service that intercepts raw hardware input signals at the driver level, allowing for the transformation of key presses and pointer movements before they reach the operating system. By utilizing virtual input device emulation, the software re-injects modified events into the system stream, enabling complex remapping, macro execution, and hardware-specific control. The project distinguishes itself through a sophisticated state-based logic engine that enables context-
Kinto is an application-specific keymap engine and contextual keyboard remapper. It functions as a configuration-driven utility that automatically switches keyboard mappings and modifier keys based on the active application window. The project acts as a cross-platform input manager and desktop shortcut emulator, specifically designed to replicate macOS keyboard shortcuts and layout behaviors on Linux and Windows. This enables a Mac-style workflow on Linux by matching keyboard shortcut behaviors across different operating systems. The system provides capabilities for custom input remapping an
This project is a macOS keyboard remapping utility that intercepts and transforms hardware input events to customize key mappings, mouse behavior, and system automation. It utilizes a kernel-level input interceptor to modify or block raw hardware signals before they reach the operating system, paired with a state-aware rule engine that processes signals through conditional logic based on the active application or hardware. The system includes a human interface device emulator to inject synthesized keyboard and mouse events into macOS and a keyboard macro system for executing shell commands, l
skhd is a hotkey daemon and keyboard remapper for macOS. It operates as a background service that maps custom keyboard shortcuts to shell commands, scripts, and system actions. The utility features application-aware shortcut management, allowing the same hotkey to execute different commands depending on which application is focused. It also includes an input mode manager to define distinct operational modes that change how keys behave based on the active state. The system supports contextual routing through application-specific shortcuts and event exclusions to preserve native app behavior.
Blink is a mobile terminal platform for iOS that combines an SSH and Mosh client with a local shell emulator, snippet manager, and SSH key storage. It renders terminal output using Chromium's HTerm engine for fast display and maintains persistent remote sessions across network changes through the Mosh protocol. The platform supports SSH key-based authentication, WebAuthn hardware security keys, and SOCKS5 proxy tunneling for secure remote access. The terminal environment is built around gesture-based session navigation, allowing users to switch between multiple shells with swipe and pinch ges
PiKVM is an IP-KVM remote access solution for out-of-band server management. It enables remote control of a host computer's hardware and operating system through a web browser or VNC client, allowing access to the BIOS or boot sequence when the main operating system is unresponsive. The system provides remote hardware control by managing physical power switches and GPIO triggers. It emulates human interface devices, such as keyboards and mice, and supports the emulation of mass storage to mount virtual disk images for bare metal operating system installation and recovery. Additional capabili
Watchdog is a Python library and set of shell utilities for monitoring filesystem events. It provides a framework for tracking real-time changes to files and directories, mapping those events to configurable automation handlers, and executing system actions based on file creation, modification, or deletion. The project includes an event-driven shell utility for triggering custom scripts and commands automatically. It utilizes a configurable handler framework that allows users to associate specific filesystem events with specialized plugin logic defined in configuration files. The system moni
This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM microcontrollers. It provides the embedded software necessary to implement the USB Human Interface Device standard, allowing hardware to communicate keystrokes and mouse movements to a host computer. The framework distinguishes itself by offering a comprehensive toolchain for custom hardware development, including a command line interface for project scaffolding, firmware flashing, and configuration linting. It supports a variety of flexible configuration methods, allowing users to
This project is a Nintendo Entertainment System emulator written in Go. It functions as a hardware simulation that executes game ROMs by mimicking the original console's circuitry, including the processor and picture processing unit. The emulator includes a game library browser that identifies local files and retrieves titles and thumbnails from online databases using file checksums. It also implements a system of memory management mappers to ensure compatibility across various game ROM formats and hardware configurations. The software covers high-level capabilities for game ROM execution an
Aya is a graphical desktop client for managing Android devices via the Android Debug Bridge. It serves as a centralized interface for system administration, application debugging, and remote device interaction. The project provides specialized tools for mirroring a device screen to a computer for remote control and detecting active webview pages for inspection using remote developer tools. It also includes a visual file manager for browsing and transferring files and APK packages between a host and a connected device. Broad capabilities cover system monitoring for real-time CPU and memory us
SharpKeys is a Windows registry keyboard remapper and input customizer. It functions as a tool for changing keyboard key assignments by modifying the Windows registry scancode map. The utility includes a keyboard key identifier to detect the internal scan code of a pressed key, which facilitates accurate remapping and identification of physical keys. The software covers keyboard input identification and custom keyboard layout setup, allowing users to swap or disable keyboard inputs by managing the Windows registry.
HelloWord-Keyboard is a modular keyboard hardware framework and a system for integrating interchangeable interaction modules, expansion docks, and coordinated firmware for screens and sensors. It functions as a USB HID device driver that reports keystrokes and receives control packets between a keyboard and a host computer. The project includes a brushless motor haptic controller using field-oriented control to simulate tactile feedback on rotary encoders. It also features a per-key RGB lighting controller that employs high-refresh-rate timing to create dynamic visual effects. The system cov
AltSnap is a window manager utility and layout system that organizes application windows using custom snap grids and mouse-driven resizing and movement. It functions as a low-level input hook that intercepts keyboard and mouse events at the OS level to trigger custom window management actions. The project includes a coordinate-based grid mapper for precise snapping to custom zones and an input remapper that assigns keyboard scan codes to virtual mouse buttons. It also features a window automation CLI used to trigger management tasks on foreground or targeted application windows. The tool pro
AntiMicroX is a gamepad input manager and automation tool that translates gamepad inputs into keyboard and mouse commands. It functions as an input remapper capable of translating physical controller buttons and joystick movements into system actions for applications that lack native controller support. The system features window detection to automatically switch between custom input profiles based on the currently active application. It includes tools for game controller automation through complex macros and provides hardware standardization to ensure diverse controller models behave consist
This project is a macOS input remapper and mouse customizer designed to assign custom actions and system-wide gestures to mouse button presses and movements. It functions as a mouse gesture manager and scroll enhancer, enabling the emulation of multi-finger trackpad motions and providing omnidirectional precision scrolling. The utility distinguishes itself by allowing independent scroll direction settings for a mouse without altering global trackpad configurations. It further implements a momentum-based algorithm to replace discrete scroll steps with smooth, fluid movement. The software cove
Piston is a modular game engine and framework written in Rust for building two and three-dimensional graphical applications. It functions as a cross-platform windowing library and a system for managing input events and window loops across different operating systems. The project provides specialized rendering systems, including a voxel rendering engine for volumetric pixels and a skeletal animation system for deforming meshes via hierarchical bone structures. It also features an immediate mode user interface toolkit for creating responsive on-screen elements and a behavior tree AI framework t
LinearMouse is a macOS system utility that overrides default pointer acceleration and scrolling behaviors for mice and trackpads. It provides tools to remove cursor acceleration for linear movement and decouple scroll directions for individual devices. The project features an input device profiler that allows for unique cursor and scroll configurations based on the connected hardware. It also includes an input remapper to assign mouse buttons and scroll gestures to keyboard shortcuts and system media controls. The utility covers pointer precision adjustment, scroll behavior customization, an
jsnes is a JavaScript-based NES emulator that runs classic NES games in the browser or in Node.js. It provides cycle-accurate CPU emulation, frame-buffer-based video rendering, and sample-buffer audio synthesis, along with a ROM cartridge mapper abstraction for broad game compatibility. The emulator exposes a programmable core with a simple API for controlling emulation state, capturing screenshots, and managing save data. It supports keyboard control remapping at runtime, with settings persisted to localStorage, and offers state serialization for save and restore operations. Battery-backed S
skhd is a keyboard shortcut manager and hotkey daemon for macOS. It functions as an input remapper that maps custom keyboard shortcuts to shell commands and system actions via a plain text configuration file. The utility supports modal keyboard workflows, allowing groups of shortcuts to activate only when the system is in a specific operational mode. It also enables application-specific hotkeys and application blacklisting, ensuring shortcuts only trigger based on which application is currently in focus. Additional capabilities include the remapping of hardware media keys and the synthesis o
Weylus is a tablet-to-PC screen mirroring tool and remote input controller that transforms a mobile device into a digital graphic tablet emulator. It enables users to stream a computer display to a mobile device while translating touch gestures, keyboard strokes, and pen data into native computer mouse and keyboard events. The system specifically functions as a virtual secondary monitor and a digital graphic tablet emulator capable of capturing stylus pressure and tilt data for professional drawing. It supports multi-touch input mapping and allows for the configuration of a mobile device as a
InputSourcePro is a macOS keyboard layout manager and automation tool designed to automate the switching of input sources based on application focus and system rules. It serves as a contextual input source switcher and keyboard shortcut mapper that triggers layout changes when specific applications gain focus or certain browser URLs are visited. The tool distinguishes itself by offering URL-based layout switching and the ability to enforce English punctuation within specific applications. It also provides dynamic function key behavior, allowing the system to toggle between standard function k
Apollo is a remote desktop streaming server designed to transmit a low-latency video feed of a host screen to remote clients using hardware-accelerated encoding. It functions as a remote input controller and virtual display manager, allowing the host to match the resolution and framerate of connected devices. The system includes a gamepad input emulator that simulates controller hardware on the host machine to translate remote inputs into local events. Server configurations and client pairing are managed through a web-based remote access interface. The project also covers bidirectional clipb
Evil is a modal editing framework and state-machine layer for the Emacs text editor. It functions as a modal text editing layer that separates text entry from navigation and manipulation by routing intercepted keystrokes through a central command dispatching system. The project serves as a Vim keybinding emulator, mapping standard modal editing commands and keyboard shortcuts into the Emacs environment. It utilizes an operator-motion command engine to compose atomic movement and action inputs into complex grammatical editing operations. The framework covers keyboard-driven navigation and tex