A Fyne GUI for remapping keyboard keys with systemd-hwdb on Linux. Lists input devices, captures key presses with evtest, and saves remaps to /etc/udev/hwdb.d.
- Linux desktop (X11 or Wayland)
evtest,systemd-hwdb,udevadm(checked on startup)pkexecorsudo(for saving and applying changes)
Install on Debian/Ubuntu:
sudo apt install evtest systemd udev policykit-1- Install mise:
curl https://mise.run | sh
eval "$(mise activate bash)"- Clone and run:
git clone <repo>
cd systemd-hwdb-gui
mise trust
mise install
mise run devThe binary builds to build/systemd-hwdb-gui.
mise run fmt # format code
mise run check # check fmt, vet, and test
mise run test # run tests
mise run build # build binary
mise run dev # run app
mise run coverage # coverage reportRequired to build from source (already installed if using mise):
- Go 1.26 (managed by
.mise.toml) - Fyne C dependencies
On Debian/Ubuntu:
sudo apt install gcc pkg-config libgl1-mesa-dev xorg-dev libxkbcommon-dev \
libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev libwayland-dev \
wayland-protocols libegl1-mesa-devIf VS Code/VSCodium's Go extension reports missing go:
mise run env-fix
mise run ide-openmise run hooks-installRuns fmt-check, vet, and test before each commit.
- Remaps are scan-code based (from
MSC_SCANcapture). - One hwdb file per device identifier.
- The app checks for missing runtime dependencies on startup.
