Skip to content

mikkurogue/kunai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kunai

build

Per-keyboard layout switcher for Niri compositor. Automatically switches keyboard layouts based on which physical keyboard you're typing on.

What it does

kunai monitors your keyboards and switches to a configured layout when you start typing on a specific keyboard. Perfect for multi-keyboard setups where different keyboards use different layouts (e.g., QWERTY laptop keyboard + Colemak mechanical keyboard).

Requirements

  • Linux with Niri compositor
  • Rust toolchain (cargo)
  • Access to /dev/input/event* devices

Installation

./install.sh

This will:

  • Build the release binary
  • Install to /usr/local/bin/kunai
  • Set up udev rules for keyboard access (no reboot/logout required)

Setup

  1. List available keyboards:
kunai list
  1. Run interactive setup to map keyboards to layouts:
kunai setup
  1. Test the configuration (optional):
kunai daemon --dry-run
  1. Add to Niri startup config (~/.config/niri/config.kdl):
spawn-at-startup = "kunai" "daemon"

Or run manually:

kunai daemon

Commands

  • kunai list - List detected keyboards with IDs
  • kunai setup - Interactive configuration for keyboard-to-layout mapping
  • kunai daemon - Run as background daemon
  • kunai daemon --dry-run - Test mode, prints switches without applying
  • kunai test - Show which keyboard generates events

Configuration

Configuration is stored in ~/.config/kunai/config.toml and maps keyboard vendor/product IDs to Niri layout indices.

About

A lightweight daemon for niri to setup keyboard layout detection for multi layout and multi keyboard users

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors