Skip to content

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 the uaccess permission 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.