Installation
How to install OpenLogi on macOS, Linux, or Windows via Homebrew, package manager, or direct download.
macOS, Linux, and Windows are supported.
Quit Logi Options+ before installing or launching OpenLogi
macOS
Requires macOS 13 or later.
brew install --cask openlogiThe official cask is the default path. To track the latest GitHub release instead:
brew tap aprilnea/tap
brew install --cask aprilnea/tap/openlogi@latestInstall either openlogi or openlogi@latest, not both.
Download the release
Download the signed, notarized DMG installer for Apple silicon or Intel.
Install the app
Open the DMG installer and drag OpenLogi.app to /Applications.
Launch and grant permissions
The packaged app starts its embedded OpenLogi Agent through macOS's registered Login Item service. This background helper owns HID access and the event tap; the GUI communicates with it over local IPC.
On first launch, follow the permission setup in the app. Grant Input Monitoring and Accessibility to OpenLogi Agent, not to the OpenLogi GUI. Input Monitoring lets the agent open devices, while Accessibility enables button remapping. Camera permission for webcam preview belongs to the OpenLogi GUI. Settings → Permissions reports the agent's current status.
Linux
Packages are published for both x86_64/amd64 and arm64/aarch64.
Pre-built packages require GLIBC 2.35 or newer, with Ubuntu 22.04 as the
baseline. NixOS users should use the NixOS module below.
Verified release installer
Install minisign through your distribution's package manager first. Run the
installer as your normal user; do not run the whole script with sudo.
Download the script over HTTPS, inspect it, then run it. Do not pipe the
download into a shell:
curl --proto '=https' --proto-redir '=https' --tlsv1.2 \
--fail --location --silent --show-error \
--retry 3 --retry-connrefused \
--output openlogi-install.sh \
https://raw.githubusercontent.com/AprilNEA/OpenLogi/master/packaging/linux/install.sh
less openlogi-install.sh
sh openlogi-install.shThe installer selects the latest GitHub release by default. It detects your
architecture and apt, dnf, yum, zypper, rpm, or pacman, then downloads the
matching package. Before invoking the package manager with sudo, it
authenticates the package's detached signature against the minisign public key
embedded in the script and verifies the package's entry in SHA256SUMS.
When systemd is available, the installer enables and starts
openlogi-agent.service for your user. If the user service manager cannot be
reached, the package stays installed and the installer reports that the agent
could not start.
Add these options to sh openlogi-install.sh when needed:
| Option | Effect |
|---|---|
--version 0.8.11 | Install a specific release. |
--package-manager zypper | Override package-manager detection. |
--dry-run | Download and verify the package without installing or starting the agent. |
--no-start | Install the package without enabling or starting the agent. |
Manual package installation
Download the package for your distribution:
# Debian / Ubuntu
sudo dpkg -i openlogi-*.deb
# Fedora / RHEL
sudo rpm -i openlogi-*.rpm
# Arch Linux
sudo pacman -U openlogi-*.pkg.tar.zstDirect links: .deb · .rpm ·
.pkg.tar.zst.
After installing a package manually, enable the background agent for your user:
systemctl --user enable --now openlogi-agent.serviceThe packages install udev rules that grant your user access to /dev/hidraw*
(HID++ commands), /dev/uinput (the virtual remapping device), and your
Logitech mouse's /dev/input/event* node without sudo.
If a device was already plugged in when the udev rules were installed, unplug and replug the receiver (or power-cycle the device) so the new rules apply. The GUI's Settings → Permissions page shows a live access indicator.
NixOS
Prefer the repository's NixOS module over adding the package alone. The module installs OpenLogi and its udev rules, and starts the user agent with the graphical session by default. Merge the following into your existing flake, keeping your host's hardware and system configuration modules:
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.openlogi.url = "github:AprilNEA/OpenLogi";
inputs.openlogi.inputs.nixpkgs.follows = "nixpkgs";
outputs = { nixpkgs, openlogi, ... }: {
nixosConfigurations.my-host = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; # or aarch64-linux
modules = [
openlogi.nixosModules.default
{ programs.openlogi.enable = true; }
];
};
};
}See INSTALL-linux.md
for the complete flake example and the launchAtLogin option.
For source installs and distros without systemd, see INSTALL-linux.md.
Windows
Download the signed .msi installer for
x86_64 or arm64. Portable
.zip builds are attached to each release too.
Both ship the GUI (OpenLogi.exe) alongside the background agent
(openlogi-agent.exe), which owns all device I/O; keep the two files side by
side when using the portable zip, or the GUI has nothing to connect to. The agent
shows a notification-area icon (Show Main Window / Quit) so the app stays
reachable after the main window is closed; to hide it, set
show_in_menu_bar = false in the TOML [app_settings] block and restart the
agent (the GUI toggle is macOS-only today).
Installation source
Since v0.8.6, Settings → Updates → Installation source shows how the running copy was installed: Homebrew, a macOS app bundle, a Linux package, Nix, a Windows MSI, or a portable ZIP. Unrecognized installations appear as Not identified. The detected source is informational and does not change update behavior.
Build from source
See DEVELOPMENT.md in the repository.