Jump to content

Xremap: Difference between revisions

From Official NixOS Wiki
Deckori (talk | contribs)
Added: a reference for installing the flake module, instructions on how to remap a copilot key
 
DHCP (talk | contribs)
m Remapping the Copilot key: fix indentation
 
(2 intermediate revisions by one other user not shown)
Line 6: Line 6:


An increasing number of new laptops come with a Copilot key that you might want to remap. Follow these steps to do so:
An increasing number of new laptops come with a Copilot key that you might want to remap. Follow these steps to do so:
Start a shell with keyd available <code>nix-shell -p keyd</code> to monitor what the Copilot key does and see your keyboard id. From that shell, run <code>sudo keyd monitor</code> and press the Copilot key.
<syntaxhighlight>
AT Translated Set 2 keyboard 0001:0001:09b4e68d leftmeta down
AT Translated Set 2 keyboard 0001:0001:09b4e68d leftshift down
AT Translated Set 2 keyboard 0001:0001:09b4e68d f23 down
AT Translated Set 2 keyboard 0001:0001:09b4e68d f23 up
AT Translated Set 2 keyboard 0001:0001:09b4e68d leftshift up
AT Translated Set 2 keyboard 0001:0001:09b4e68d leftmeta up
</syntaxhighlight>
Then translate the names of keys to the ones used by Xremap.
You may then edit your configuration accordingly:


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
services.xremap = {
services.xremap = {
      enable = true;
  enable = true;
      package = pkgs.xremap; # Use the official package to skip building xremap from source
  package = pkgs.xremap; # Use the official package to skip building xremap from source
      userName = "username"; # The username of your user
  userName = "username"; # The username of your user
       config.experimental_map.chords = [
  yamlConfig = ''
        {
    experimental_map:
           keys = [ "Super_L, Shift_L, F23" ]; # This is the triggered key combination from when the copilot key is pressed
       - chords:
          actions = "Ctrl_R"; # This is the key that you want to remap the co-pilot key to
           - keys: [Super_L, Shift_L, F23]
          timeout = 500;
            actions: Ctrl_R
        }
            timeout: 30
      ];
  '';
};
};
</nowiki>}}
</nowiki>}}
Line 24: Line 39:
This configuration was made by referring to a [https://github.com/xremap/xremap/discussions/762 GitHub discussion].
This configuration was made by referring to a [https://github.com/xremap/xremap/discussions/762 GitHub discussion].


  {{note|The above works as of Xremap version <code>0.14.19</code> in the <code>nixpkgs-unstable</code> channel.}}
  {{note|At the time of writing, the above works as of Xremap version <code>0.14.19</code> in the <code>nixpkgs-unstable</code> channel. The flake version provided version <code>0.15.1</code>. This version mismatch might cause errors. So adjust your configuration accordingly.}}

Latest revision as of 19:58, 19 July 2026

Install the flake module

Refer to Xremap's documentation on their GitHub repository.

Remapping the Copilot key

An increasing number of new laptops come with a Copilot key that you might want to remap. Follow these steps to do so:

Start a shell with keyd available nix-shell -p keyd to monitor what the Copilot key does and see your keyboard id. From that shell, run sudo keyd monitor and press the Copilot key.

AT Translated Set 2 keyboard	0001:0001:09b4e68d	leftmeta down
AT Translated Set 2 keyboard	0001:0001:09b4e68d	leftshift down
AT Translated Set 2 keyboard	0001:0001:09b4e68d	f23 down
AT Translated Set 2 keyboard	0001:0001:09b4e68d	f23 up
AT Translated Set 2 keyboard	0001:0001:09b4e68d	leftshift up
AT Translated Set 2 keyboard	0001:0001:09b4e68d	leftmeta up

Then translate the names of keys to the ones used by Xremap.

You may then edit your configuration accordingly:

❄︎ /etc/nixos/configuration.nix
services.xremap = {
  enable = true;
  package = pkgs.xremap; # Use the official package to skip building xremap from source
  userName = "username"; # The username of your user
  yamlConfig = ''
    experimental_map:
      - chords:
          - keys: [Super_L, Shift_L, F23]
            actions: Ctrl_R
            timeout: 30
  '';
};

This configuration was made by referring to a GitHub discussion.

Note: At the time of writing, the above works as of Xremap version 0.14.19 in the nixpkgs-unstable channel. The flake version provided version 0.15.1. This version mismatch might cause errors. So adjust your configuration accordingly.