What this is

January 2, 2026 · View on GitHub

Important

Recent commit set services.xremap.enable to false by default so that it matches other modules. Make sure to enable the service (services.xremap.enable = true;)

What this is

This is a Nix flake that installs and configures xremap.

Flake allows running xremap as a system-wide service and as a user service (controlled by services.xremap.serviceMode option).

Flake implements xremap features that allow specifying per-application remapping. Following combinations are tested:

ModeNo featuresKDEGnomeX11WlrootsNiriCosmic
System:heavy_check_mark::heavy_multiplication_x::heavy_multiplication_x::heavy_check_mark::heavy_multiplication_x::question::question:
User:heavy_check_mark::heavy_check_mark::heavy_check_mark::heavy_check_mark::heavy_check_mark::heavy_check_mark::question:
  • :heavy_check_mark: – tested, works
  • :heavy_multiplication_x: – not implemented
  • :question: – implemented, not tested

How to use

TL;DR:

  1. Import one of this flake's modules (xremap-flake.nixosModules.default or xremap-flake.homeManagerModules.default)
  2. (optional) configure xremap for your DE (services.xremap.withWlroots/withX11/etc., see HOWTO)
  3. Configure xremap binds in services.xremap.config

See HOWTO for more information and sample configs.

Development

The subflake in .dev that includes the CI config, formatters, linters, automatic tests and demos.

The .envrc file bundled in the repo loads the development shell automatically.