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)
sudoaccess
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
ghinstalled: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.
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
- LogiOps GitHub (PixlOne) — source, README, and supported devices list
- LogiOps Wiki — full config reference
- LogiOpsGui GitHub (matthewmoonen) — GUI frontend source