Skip to content

Latest commit

Β 

History

History
131 lines (96 loc) Β· 3.69 KB

File metadata and controls

131 lines (96 loc) Β· 3.69 KB

Installing OpenLogi on Linux

Note

Linux support is in active development. HID++ device enumeration supports Logi Bolt (USB PID 0xC548) and Logi Unifying (PID 0xC52B and others) receivers, as well as Bluetooth-direct devices.

Prerequisites

  • Quit Solaar (or any other Logitech manager) before starting OpenLogi β€” the two applications fight over HID++ access.
  • A kernel with hidraw and uinput module support (standard on all major distros).
  • systemd + udev (standard on Ubuntu, Fedora, Arch, Debian, openSUSE, …).

Build from source

Pre-built .deb and .rpm packages are available on the releases page β€” see the main README for the package-based install. To build from source instead, use the stable Rust toolchain:

git clone https://github.com/AprilNEA/OpenLogi
cd OpenLogi
cargo build --release

The three binaries land in target/release/:

Binary Role
openlogi CLI β€” inventory, diagnostics, asset sync
openlogi-gui Desktop GUI
openlogi-agent Background agent β€” HID++ loop, input hook

Device access: udev rules

OpenLogi needs:

  • Write access to /dev/uinput β€” to create the virtual input device for button remapping.
  • Read/write access to /dev/hidraw* β€” to send HID++ commands to the Bolt receiver.

Install the bundled udev rules to grant access to the active-seat user without requiring sudo or group membership (requires systemd-logind):

sudo cp packaging/linux/udev/70-openlogi.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

Verify access (should open without error):

# Check uinput
openlogi-agent --check-uinput 2>/dev/null || \
    test -w /dev/uinput && echo "uinput OK"

# Check a hidraw node
ls -la /dev/hidraw*

The GUI Settings β†’ Permissions page shows a live Granted / Not granted indicator; check it after installing the rules (no restart needed).

Device already connected? udevadm trigger re-evaluates rules but does not re-grant uaccess ACLs on nodes that were already open when the rules were installed. If access is still denied, unplug and replug your receiver or mouse (or power-cycle for wireless devices) to let udev apply the new rules on reconnect.

Non-systemd systems (SysV init, OpenRC)

Replace TAG+="uaccess" in the rules file with MODE="0660", GROUP="input", then add your user to the input group:

sudo usermod -aG input "$USER"
# Re-login for the group change to take effect.

Install with the script

The packaging/linux/install.sh script copies the binaries, udev rules, systemd unit, desktop entry, and icon to system paths, then reloads udevadm.

# From the repo root, after building:
sudo packaging/linux/install.sh
# Or to a custom prefix (e.g. /usr):
packaging/linux/install.sh --prefix=/usr

To remove:

packaging/linux/uninstall.sh

Autostart (launch at login)

The background agent (openlogi-agent) must be running for the GUI and CLI to show connected devices. Enable it for your user session:

systemctl --user enable --now openlogi-agent.service

Alternatively, toggle Settings β†’ General β†’ Launch at login in the GUI β€” it writes the unit to ~/.config/systemd/user/openlogi-agent.service automatically.

Verify the installation

# List connected Logitech devices:
openlogi list

# Launch the GUI:
openlogi-gui

Known limitations

Limitation Status
Wayland: per-application profile switching Requires XWayland (WM_CLASS lookup uses X11)
Button capture: middle / mode-shift / thumbwheel Side buttons only today