Skip to content
/ keyd Public
forked from rvaiya/keyd

A key remapping daemon for linux.

License

Notifications You must be signed in to change notification settings

rxhfcy/keyd

 
 

Repository files navigation

Kofi

Impetus

Packaging status

Linux lacks a good key remapping solution. In order to achieve satisfactory results a medley of tools need to be employed (e.g xcape, xmodmap) with the end result often being tethered to a specified environment (X11). keyd attempts to solve this problem by providing a flexible system wide daemon which remaps keys using kernel level input primitives (evdev, uinput).

Note on v2

The config format has undergone several iterations since the first release. For those migrating their configs from v1 it is best to reread the man page.

See also: changelog.

Goals

  • Speed (a hand tuned input loop written in C that takes <<1ms)
  • Simplicity (a config format that is intuitive)
  • Consistency (modifiers that play nicely with layers by default)
  • Modularity (a UNIXy core extensible through the use of an IPC mechanism)

Features

keyd has several unique features many of which are traditionally only found in custom keyboard firmware like QMK as well as some which are unique to keyd.

Some of the more interesting ones include:

  • Layers (with support for hybrid modifiers).
  • Key overloading (different behaviour on tap/hold).
  • Keyboard specific configuration.
  • Instantaneous remapping (no more flashing :)).
  • A client-server model that facilitates scripting and display server agnostic application remapping. (Currently ships with support for X, sway, and gnome).
  • System wide config (works in a VT).
  • First class support for modifier overloading.
  • Unicode support.

keyd is for people who:

  • Would like to experiment with custom