rvaiya/keyd

A key remapping daemon for linux.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 48 minutes ago
Added to GitGenius on September 11th, 2026
Created on July 25th, 2021
Open Issues & Pull Requests: 324 (+0)
GitHub issues: Enabled
Number of forks: 280
Total Stargazers: 5,956 (+0)
Total Subscribers: 31 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 12.4 hours
Mean response time: 24.0 days
90th percentile: 43.5 days
Tracked items: 411

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 75% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 5% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 232
New in 7 days: 3
Closed in 7 days: 0
Avg open age: 377 days
Stale 30+ days: 219
Stale 90+ days: 186

Recent activity

Opened in 7 days: 3
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • faq (10)
  • feature request (7)
  • todo (7)
  • mouse (5)
  • unicode (5)
  • documentation (3)
  • enhancement (3)
  • 3.0 (2)

Detailed Description

keyd is a key remapping daemon for Linux that operates at the kernel level to provide system-wide keyboard customization.

Linux lacks a unified key remapping solution, forcing users to combine multiple tools like xcape and xmodmap, which often tie configurations to specific display servers like X11. keyd solves this by implementing a flexible daemon that uses kernel-level input primitives (evdev and uinput) to remap keys consistently across any environment, including virtual terminals. The daemon runs as a system-wide service with a hand-tuned input loop designed to process remappings in less than one millisecond.

keyd suits developers and power users who want to experiment with custom layers, modifier overloading, and tap-or-hold key behaviors traditionally found only in custom keyboard firmware. It works well for people managing multiple keyboards with different layouts on the same machine, those seeking an intuitive configuration format, or anyone wanting keyboard remapping that persists across display servers and virtual terminals. The tool is not designed for programming individual key up-down events. The README does not compare keyd to other remapping solutions.

The project maintains a development branch on master with occasional breaking changes between releases, while tagged releases are considered stable. Configuration format has undergone several iterations, requiring users migrating from earlier versions to consult the manual page for updated syntax. The tool ships with application-specific remapping support for X, sway, and GNOME on Wayland, with optional Python dependencies enabling these features. Installation requires only a C compiler and Linux kernel headers, making it lightweight to build and deploy.