Repolode
jtroo

jtroo/kanata

A cross-platform keyboard remapper for Linux, macOS and Windows that adds layers, tap-hold, macros and Unicode output to any keyboard.

Open-source alternative to:Karabiner-Elements

Stars
8,070
Forks
309
Open issues
138
Last commit
6 days ago

What is it?

Kanata is a software keyboard remapper that runs on Linux, macOS and Windows. It lets you give any key alternate layers of function, the way Shift switches the keyboard to uppercase, so keys that overlap with the home row can be reached on another layer without changing hardware.

Behaviour is defined in a human-readable configuration file. It supports advanced key actions such as tap-hold, unicode output, and dynamic and static macros, along with Vim-like leader sequences. The configuration reloads live, so changes can be tested without restarting.

Kanata runs as a foreground process and needs elevated permissions on Linux and macOS to intercept the keyboard. An optional TCP server lets other programs react to layer changes or trigger them.

Key features

  • 01Multiple layers of key functionality on any keyboard
  • 02Tap-hold and other advanced key behaviour customization
  • 03Unicode output, dynamic and static macros
  • 04Vim-like leader sequences
  • 05Live reloading of configuration files
  • 06Optional TCP server for integration with other programs

Use cases

  • Adding a navigation or numpad layer under home-row keys on a laptop keyboard
  • Replicating QMK-style layouts on a standard office keyboard
  • Switching layers automatically per application with community companion tools
  • Building a personal keymap that is shared across Linux, macOS and Windows

Quick start

  1. 1

    Install kanata with Cargo

    cargo install kanata
  2. 2

    Run kanata with your configuration file (sudo may be needed on Linux and macOS)

    kanata --cfg <your_configuration_file>

Things to know

  • Kanata does not run as a background process, so its window must stay open.
  • On Linux and macOS it usually needs sudo to intercept the keyboard, and macOS also requires the Karabiner driver.
  • It is licensed under LGPL-3.0, a copyleft license.

In collections

Topics

#keyboard#keyboard-layout#key-remapper#rust#cross-platform#productivity#macros#interception-driver#linux#macos

FAQ

What is kanata?
A cross-platform keyboard remapper for Linux, macOS and Windows that adds layers, tap-hold, macros and Unicode output to any keyboard. Kanata is a software keyboard remapper that runs on Linux, macOS and Windows. It lets you give any key alternate layers of function, the way Shift switches the keyboard to uppercase, so keys that overlap with the home row can be reached on another layer without changing hardware.
Is kanata free to use? What license does it have?
kanata is open source under the LGPL-3.0 license. Check the license terms before using it in commercial products.
Is kanata still maintained?
Actively maintained. The last commit to kanata was on Nov 2, 2026.
What can I use kanata for?
Adding a navigation or numpad layer under home-row keys on a laptop keyboard Replicating QMK-style layouts on a standard office keyboard Switching layers automatically per application with community companion tools Building a personal keymap that is shared across Linux, macOS and Windows
How do I install kanata?
Install kanata with Cargo: cargo install kanata Run kanata with your configuration file (sudo may be needed on Linux and macOS): kanata --cfg <your_configuration_file>
Where can I get kanata?
The source code and installation instructions are on GitHub: https://github.com/jtroo/kanata

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects