Skip to main content

LogiOps & LogiOpsGUI

Install and configure LogiOps (unofficial Logitech driver for Linux) and its GUI frontend on Debian-based distros (Ubuntu, ZorinOS).

LogiOps replaces the Windows/macOS Logi Options+ software, giving you full control over Logitech mice and keyboards — DPI, scroll speed, button remapping, and more.

Prerequisites

  • Ubuntu 20.04+ or ZorinOS (any release)
  • A Logitech device that uses the HID++ protocol (most modern Logitech mice and keyboards)
  • sudo access

Installing LogiOps

LogiOps is built from source. There is no official apt package.

1. Install Build Dependencies

sudo apt update
sudo apt install -y \
build-essential \
cmake \
pkg-config \
libevdev-dev \
libudev-dev \
libconfig++-dev

2. Clone and Build

gh repo clone PixlOne/logiops
cd logiops
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install

You can also clone with plain git if you don't have gh installed:

git clone https://github.com/PixlOne/logiops.git

3. Enable the Service

LogiOps runs as a systemd daemon (logid):

sudo systemctl enable --now logid

Verify it started cleanly:

sudo systemctl status logid

Basic Configuration

The config file lives at /etc/logid.cfg. Create it if it doesn't exist:

sudo nano /etc/logid.cfg

Minimal Example (MX Master 3)

devices: (
{
name: "MX Master 3";
smartshift:
{
on: true;
threshold: 20;
};
hiresscroll:
{
hires: true;
invert: false;
target: false;
};
dpi: 1500;

buttons: (
{
cid: 0xc3;
action =
{
type: "Gestures";
gestures: (
{
direction: "Up";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_VOLUMEUP"];
};
},
{
direction: "Down";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_VOLUMEDOWN"];
};
},
{
direction: "None";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["KEY_PLAYPAUSE"];
};
}
);
};
}
);
}
);

After editing the config, restart the service:

sudo systemctl restart logid

Finding Your Device Name

If you're unsure of your device's exact name, run:

sudo logid -v

The device name will appear in the output — use it exactly (including capitalization) in logid.cfg.


Installing LogiOpsGUI

LogiOpsGUI (by matthewmoonen) provides a graphical interface for editing your logid.cfg without writing config manually.

1. Install Dependencies

sudo apt install -y python3.12-venv python3-tk

2. Clone and Run the Installer

gh repo clone matthewmoonen/LogiOpsGui
cd LogiOpsGui
./install.sh

You can also clone with plain git:

git clone https://github.com/matthewmoonen/LogiOpsGui.git

The install.sh script sets up a Python virtual environment and installs all required dependencies automatically.

note

LogiOpsGUI requires logid to already be installed and running. Make sure the logid service is active before launching the GUI.


Troubleshooting

logid fails to start — device not found

Check that your device is connected and recognized:

sudo logid -v 2>&1 | head -40

If using a USB dongle, try unplugging and replugging it.

Permission denied on /dev/input/

Add your user to the input group:

sudo usermod -aG input $USER

Log out and back in for the change to take effect.

Config changes not applying

Always restart the service after editing the config:

sudo systemctl restart logid

Check service logs

journalctl -u logid -f

See Also