Logitech MX Master
Tips on using Logitech MX Master family computer mice
There are 2 main configuration paths for specific MX Master options:
- Solaar - GUI application using the
hidapilibrary
- LogiOps - Command Line controlled systemd service
Solaar
Solaar is a program that runs as a user process for configuring devices using Logitech's HID++ protocol.
Installation
It is possible to quickly test Solaar with nix run. Settings will not persist across reboots without proper installation.
sudo nix run nixpkgs#solaar
# sudo needed to detect mouse
To install on NixOS:
environment.systemPackages = with pkgs; [
solaar
];
Additionally, to use Solaar without `sudo` you will have to add a udev rule. Read the warning and apply caution.
services.udev.extraRules = ''
# This rule was added by Solaar.
#
# Allows non-root users to have raw access to Logitech devices.
# Allowing users to write to the device is potentially dangerous
# because they could perform firmware updates.
ACTION == "remove", GOTO="solaar_end"
SUBSYSTEM != "hidraw", GOTO="solaar_end"
# USB-connected Logitech receivers and devices
ATTRS{idVendor}=="046d", GOTO="solaar_apply"
# Lenovo nano receiver
ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6042", GOTO="solaar_apply"
# Bluetooth-connected Logitech devices
KERNELS == "0005:046D:*", GOTO="solaar_apply"
GOTO="solaar_end"
LABEL="solaar_apply"
# Allow any seated user to access the receiver.
# uaccess: modern ACL-enabled udev
TAG+="uaccess"
# Grant members of the "plugdev" group access to receiver (useful for SSH users)
#MODE="0660", GROUP="plugdev"
LABEL="solaar_end"
# vim: ft=udevrules
'';
For further configuration, see: project documentation or section on udev rule specifically installing udev rule manually
LogiOps
LogiOps a userspace driver running as a systemd service. Default location for the configuration file is /etc/logid.cfg, but another can be specified using the -c flag.
# Adds `pkgs.logitech-udev-rules` and `pkgs.ltunify`
hardware.logitech.wireless.enable = true;
services.logiops = {
enable = true;
config = {
devices = [
{
name = "MX Keys for Business";
buttons = [
{
cid = (fromTOML "hex = 0x0103").hex; # Dictation / Fn+F5
action = {
type = "Keypress";
keys = ["KEY_DICTATE"];
};
}
{
cid = (fromTOML "hex = 0x0108").hex; # Emoji / Fn+F6
action = {
type = "Keypress";
keys = ["KEY_EMOJI_PICKER"];
};
}
{
cid = (fromTOML "hex = 0x011C").hex; # Mic Mute /Fn+F7
action = {
type = "Keypress";
keys = ["KEY_MICMUTE"];
};
}
{
cid = (fromTOML "hex = 0x010A").hex; # Screenshot / Print screen
action = {
type = "Keypress";
keys = ["KEY_PRINT"];
};
}
{
cid = (fromTOML "hex = 0x006F").hex; # Lock screen / Numpad padlock
action = {
type = "Keypress";
keys = ["KEY_SCREENSAVER"];
};
}
];
}
{
name = "MX Vertical Advanced Ergonomic Mouse";
dpi = 1500; # max=4000
hiresscroll = {
hires = true;
invert = false;
target = true;
};
# buttons = [{}];
}
];
};
};
Additional recommendations:
- Use a dedicated file for trial-and-error, i.e.
sudo logid -c ./logid.cfg -v - If auto-detection fails, turn Off/On device while
logidis running.
See project documentation and Arch Wiki for usage and configuration details.
Tips and Tricks
Smoother Scrolling (Scroll Wheel Resolution)
By default High Resolution Scrolling might be disabled. To enable:
with Solaar:
sudo nix run nixpkgs#solaar
# sudo needed to detect mouse
in Solaar find Scroll Wheel Resolution and enable it.
with Logiops:
add following to your Logiops config file:
hiresscroll:
{
hires: true;
};Scroll Speed issues
High Resolution Scrolling may feel too fast. You may want to lower scroll speed in your Desktop Environment -> Mouse settings or if it doesn't help enough - possibly will have to disable hires scrolling.