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 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
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.