Logitech MX Master: Difference between revisions
Moved links on heading text to short descriptions under each program heading. Corrected link destination to search for the full program name in the default channel, rather than specifying unstable. |
Juangiordana (talk | contribs) Correct syntax highlighting in logiops notes |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 11: | Line 11: | ||
=== Installation === | === Installation === | ||
It is possible to quickly test Solaar with nix run. Settings will not persist across reboots without proper installation.<syntaxhighlight lang="nixos"> | It is possible to quickly test Solaar with nix run. Settings will not persist across reboots without proper installation. | ||
<syntaxhighlight lang="nixos"> | |||
sudo nix run nixpkgs#solaar | sudo nix run nixpkgs#solaar | ||
# sudo needed to detect mouse | # sudo needed to detect mouse | ||
</syntaxhighlight>To install on NixOS:<syntaxhighlight lang="nixos"> | </syntaxhighlight> | ||
To install on NixOS: | |||
<syntaxhighlight lang="nixos"> | |||
environment.systemPackages = with pkgs; [ | environment.systemPackages = with pkgs; [ | ||
solaar | solaar | ||
]; | ]; | ||
</syntaxhighlight>Additionally, to use Solaar without `sudo` you will have to add a udev rule. Read the warning and apply caution.<syntaxhighlight lang="nixos"> | </syntaxhighlight> | ||
Additionally, to use Solaar without `sudo` you will have to add a udev rule. Read the warning and apply caution. | |||
<syntaxhighlight lang="nixos"> | |||
services.udev.extraRules = '' | services.udev.extraRules = '' | ||
# This rule was added by Solaar. | # This rule was added by Solaar. | ||
| Line 53: | Line 63: | ||
# vim: ft=udevrules | # vim: ft=udevrules | ||
''; | ''; | ||
</syntaxhighlight>For further configuration, see: [https://pwr-solaar.github.io/Solaar/index project documentation] or section on udev rule specifically [https://pwr-solaar.github.io/Solaar/installation/#installing-solaars-udev-rule-manually installing udev rule manually] | </syntaxhighlight> | ||
For further configuration, see: [https://pwr-solaar.github.io/Solaar/index project documentation] or section on udev rule specifically [https://pwr-solaar.github.io/Solaar/installation/#installing-solaars-udev-rule-manually installing udev rule manually] | |||
== LogiOps == | == LogiOps == | ||
[https://search.nixos.org/packages?query=LogiOps LogiOps] a userspace driver running as a [[Systemd/User Services|systemd service]]. Default location for the configuration file is /etc/logid.cfg, but another can be specified using the <code>-c</code> flag. | [https://search.nixos.org/packages?query=LogiOps LogiOps] a userspace driver running as a [[Systemd/User Services|systemd service]]. Default location for the configuration file is <code>/etc/logid.cfg</code>, but another can be specified using the <code>-c</code> flag. | ||
<syntaxhighlight lang="nixos"> | |||
# 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 = [{}]; | |||
} | |||
]; | |||
}; | |||
}; | |||
</syntaxhighlight> | |||
Additional recommendations: | |||
* Use a dedicated file for trial-and-error, i.e. <code>sudo logid -c ./logid.cfg -v</code> | |||
* If auto-detection fails, turn Off/On device while <code>logid</code> is running. | |||
See [https://github.com/PixlOne/logiops/wiki/Configuration project documentation] and [https://wiki.archlinux.org/title/Logitech_MX_Master Arch Wiki] for usage and configuration details.{{expand}} | See [https://github.com/PixlOne/logiops/wiki/Configuration project documentation] and [https://wiki.archlinux.org/title/Logitech_MX_Master Arch Wiki] for usage and configuration details.{{expand}} | ||
Latest revision as of 21:16, 1 June 2026
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.