Wayland-compatible global hotkeys for LibreSplit
Find a file
2026-02-10 17:34:09 +01:00
.gitignore Add build script and include version in help text 2026-02-10 17:30:24 +01:00
build.sh Fix build script 2026-02-10 17:34:09 +01:00
config.go Add copyright notices to source files 2026-02-10 00:39:49 +01:00
go.mod Initial commit with existing project files 2026-02-10 00:18:04 +01:00
input_event.go Add copyright notices to source files 2026-02-10 00:39:49 +01:00
keylistener.go Add copyright notices to source files 2026-02-10 00:39:49 +01:00
keymap.go Add comment to keymap.go about supported keys 2026-02-10 00:22:49 +01:00
LICENSE Make authorship in LICENSE more clear 2026-02-10 00:33:25 +01:00
main.go Add build script and include version in help text 2026-02-10 17:30:24 +01:00
README.md Add section 'Permissions' to the README 2026-02-10 00:37:12 +01:00
version.go Add build script and include version in help text 2026-02-10 17:30:24 +01:00

(WIP) keyVent - LibreSplit Global Hotkeys

Warning

This is a work in progress!

Note

Only single-key hotkeys are supported.

This program uses udev to enable display server independent global hotkeys for LibreSplit on Linux.

It detects keyboard input devices in /dev/input/event* and reads key presses from there. The program then controls LibreSplit through it's libresplit-ctl unix domain socket.

Note

This software is heavily based on https://github.com/MarinX/keylogger

Compatibility

This program was tested on

  • Debian 13 / Wayland

Permissions

You need to be in the input group for this program to work.

Config

Example config:

{
    "keybinds": {
        "start_or_split": 82,
        "stop_or_reset": 83,
        "unsplit": 75,
        "skip_split": 77,
        "cancel": 72,
        "close_libresplit": 0
    }
}
  • Start/Split: Keypad 0
  • Stop/Reset: Keypad Dot
  • Undo Split: Keypad 4
  • Skip Split: Keypad 6
  • Cancel Run: Keypad 8
  • Close Libresplit: disabled

The keybinds must be valid keycodes. You can run keyvent dumpkeys to print all incoming key presses to the terminal, or have a look at keymap.go
Use 0 to disable the key bind.

Usage

Example:

keyvent control ./path/to/config.json

Print Help Text:

keyvent help