xremap 0.15.7

Dynamic key remap for X and Wayland
Documentation
## Key names

All keys and modifiers are case-insensitive. And the `KEY_` prefix is optional, though the `BTN_` prefix is required.

### Ordinary keys

#### Aliases for left and right modifiers, special to xremap

- `CONTROL_L`, `CTRL_L`, `C_L`
- `SHIFT_L`, `S_L`
- `ALT_L`, `A_L`, `M_L`
- `SUPER_L`, `WINDOWS_L`, `WIN_L`, `W_L`

The original keys are named: `KEY_LEFTCTRL`, `KEY_LEFTSHIFT`, `KEY_LEFTALT` and `KEY_LEFTMETA`.

#### Numpad keys are named like

- `KEY_KP1`, `KEY_KPDOT`, `KEY_KPASTERISK`

#### Some special keys

- `KEY_ESC` can't be replaced with `KEY_ESCAPE`.
- `KEY_LEFTMETA` means the left windows key (aka super key).
- `KEY_102ND` can be the key placed near the bottom left of the keyboard.
- The print key can have the name `KEY_SYSRQ`, even though `KEY_PRINT` also exists.
- `KEY_SCROLLUP` etc. does likely nothing. See below for scroll functionality.
- `BTN_TRIGGER_HAPPY1`..`BTN_TRIGGER_HAPPY40` can be used as `virtual keys`, that can be emitted
  from `modmap` and remapped in `keymap`. Because they likely has no effect if emitted from xremap.

### Modifiers

When a key combo like: `Ctrl-a` is specified it will match both left and right modifiers. It's the
same as specifying: Both `Ctrl_L-a` and `Ctrl_R-a`.

- `CONTROL`, `CTRL`, `C`
- `SHIFT`, `S`
- `ALT`, `A`, `M`
- `SUPER`, `WINDOWS`, `WIN`, `W`

### Numbers

Numbers must be given with quotation marks, when used like this:

```yml
keymap:
  - remap:
      Capslock: "1"
```

Other positions don't need quotation: like `1: A`, or `Capslock: C-1`

### Mouse buttons

Mouse buttons have the prefix: `BTN_`, which is not optional.
E.g. `BTN_LEFT`, `BTN_RIGHT`, `BTN_MIDDLE`.

#### Scroll

Some special keys exist: `XRIGHTSCROLL`, `XLEFTSCROLL`, `XUPSCROLL`, `XDOWNSCROLL`, they
match the when a mouse scrolls. But they cannot be emitted from xremap.

#### Mouse move

Keys for mouse movement are named: `XRIGHTCURSOR`, `XLEFTCURSOR`, `XDOWNCURSOR` and `XUPCURSOR`.

### Unknown keys

Keys that don't have names can be identified by their key code, e.g. `Code_123`.