Skip to content

Installation

Build and install OpenLogi on Ubuntu, Debian, Fedora or Arch Linux, then add the one udev rule that lets it reach Logitech devices without sudo.

OpenLogi ships as a native desktop application. Installation has two parts: the application itself, and a one-time permission step that lets it 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

Prebuilt packages

The release workflow builds a .deb, an .rpm and an AppImage, but no release has been published yet. Until one is, build from source as described below — the build produces the same three packages on your own machine. When a release appears, it will be on the releases page and on Download.

There is no AUR package, Flatpak or Snap.

Build from source

You need git, a Rust toolchain, Node.js 20 or newer, and pnpm. The setup script installs Rust for you if it is missing.

git clone https://github.com/mohin7/openlogi
cd openlogi
./scripts/setup.sh

setup.sh asks for sudo exactly once. It installs the system build dependencies with your distribution's package manager (apt, dnf or pacman), installs the udev rule, and builds the logi-probe hardware inspector. Then build the app:

pnpm install
pnpm app:build

The packages land under target/release/bundle/. Install the one for your distribution as shown below. The .deb and .rpm also install the udev rule and the openlogi group themselves.

To try the app without packaging it, run pnpm app instead.

Ubuntu and Debian

Through apt, setup.sh installs build-essential, pkg-config, curl, file, libudev-dev, libssl-dev, libgtk-3-dev, librsvg2-dev, libwebkit2gtk-4.1-dev and libayatana-appindicator3-dev. WebKitGTK 4.1 is the floor, which means Ubuntu 22.04 or newer, or Debian 12 or newer.

sudo apt install ./target/release/bundle/deb/*.deb

Fedora

Through dnf, the script installs gcc, gcc-c++, make, pkgconf-pkg-config, systemd-devel, openssl-devel, gtk3-devel, librsvg2-devel, webkit2gtk4.1-devel and libappindicator-gtk3-devel.

sudo dnf install ./target/release/bundle/rpm/*.rpm

Arch Linux

Through pacman, the script installs base-devel, pkgconf, systemd-libs, openssl, gtk3, librsvg, webkit2gtk-4.1 and libayatana-appindicator.

There is no AUR package yet, and none of the build outputs is a native Arch package. Run the AppImage, or the compiled binary directly:

./target/release/bundle/appimage/*.AppImage
# or
./target/release/openlogi

setup.sh has already installed the udev rule, so either one sees your devices once you have logged out and back in.

Other distributions

If setup.sh finds none of apt, dnf or pacman, it stops and lists what it needs: WebKitGTK 4.1, GTK 3, libudev, OpenSSL, librsvg and ayatana-appindicator. Install those with your package manager, then run sudo ./scripts/install-udev-rules.sh and continue with pnpm install.

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.

setup.sh and the .deb and .rpm packages already do this. To do it by hand — for example when you only have an AppImage:

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. Devices that are already paired and connected appear automatically — there is no sign-in step. OpenLogi does not pair new devices with a receiver; see Pairing a device.

To see what your hardware reports before opening the app, run the probe from the repository:

./target/release/logi-probe

If your device does not appear, work through Troubleshooting. For what to expect from a specific model, see Supported devices.