Logitech MX Master: Difference between revisions
m links, formatting, added {{expand}} - kind of complicated how to setup systemd service and config. I haven't done it and don't understand it. |
Juangiordana (talk | contribs) Correct syntax highlighting in logiops notes |
||
| (6 intermediate revisions by 3 users not shown) | |||
| Line 3: | Line 3: | ||
There are 2 main configuration paths for specific MX Master options: | There are 2 main configuration paths for specific MX Master options: | ||
* [https://search.nixos.org/packages? | *[https://search.nixos.org/packages?query=solaar Solaar] - GUI application using the <code>hidapi</code> library | ||
* [https://search.nixos.org/packages? | * [https://search.nixos.org/packages?query=logiops LogiOps] - Command Line controlled systemd service | ||
== [https://search.nixos.org/packages? | == Solaar == | ||
It is possible to quickly | [https://search.nixos.org/packages?query=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. | |||
<syntaxhighlight lang="nixos"> | |||
sudo nix run nixpkgs#solaar | sudo nix run nixpkgs#solaar | ||
# sudo needed to detect mouse | # sudo needed to detect mouse | ||
</syntaxhighlight>For | </syntaxhighlight> | ||
To install on NixOS: | |||
<syntaxhighlight lang="nixos"> | |||
environment.systemPackages = with pkgs; [ | |||
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"> | |||
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 | |||
''; | |||
</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 == | |||
[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}} | ||
== Tips == | == Tips and Tricks == | ||
=== Smoother Scrolling (Scroll Wheel Resolution) === | === Smoother Scrolling (Scroll Wheel Resolution) === | ||