Installation
Install OpenLogi on Debian, Ubuntu, Fedora, Arch, or from source, and complete the one-time permission setup.
Installation
OpenLogi ships as a native desktop application. Installation has two parts: the package itself, and a one-time permission step that lets the app reach your hardware without running as root.
Requirements
- A 64-bit Linux system with
systemd(for theuaccesspermission mechanism) - A Logitech device that speaks HID++ — anything using Bolt, Unifying, Lightspeed, Bluetooth, or a direct USB cable
- Wayland or X11; both are fully supported
Install the package
sudo apt install ./openlogi_0.1.0_amd64.deb
sudo dnf install ./openlogi-0.1.0-1.x86_64.rpm
yay -S openlogi-bin
The .deb and .rpm packages run the permission setup automatically as part of
installation. If you use those, skip ahead to First run.
Build from source
You need a Rust toolchain, Node.js 20 or newer, and pnpm.
git clone https://github.com/mohin7/openlogi
cd openlogi
./scripts/setup.sh
setup.sh asks for sudo exactly once, then installs build dependencies and
the udev rule together. Afterwards:
pnpm install
pnpm app:build
Permission setup
This is the only step that needs root, and it only happens once. It installs a udev rule that does two things:
Grants you access to Logitech HID endpoints. The rule tags Logitech
hidraw nodes with uaccess, which makes systemd-logind attach an ACL for
whoever is logged in at the physical seat. The access is granted at login and
revoked at logout.
Grants write access to /dev/uinput. Remapped buttons are delivered by
synthesising input events, which requires writing to uinput. OpenLogi creates
a dedicated openlogi group for this rather than using the conventional input
group — see Permissions for why that distinction matters.
If you installed from a package, this already ran. To do it manually:
sudo ./scripts/install-udev-rules.sh
Verify it worked
# Expect a "user:" ACL entry for your username
getfacl -p /dev/hidraw0 | grep '^user:'
# Expect group "openlogi"
ls -l /dev/uinput
If /dev/uinput does not exist at all, the kernel module is not loaded:
sudo modprobe uinput
The install script writes /etc/modules-load.d/openlogi.conf so this happens
automatically on every boot.
First run
Launch OpenLogi from your application menu, or run openlogi from a terminal.
Connected devices appear automatically — there is no pairing or sign-in step.
If your device does not appear, work through Troubleshooting.