-
-
Save aleemont/364e33da5a822349c57a9c34689e578b to your computer and use it in GitHub Desktop.
logid.cfg for Logitech MX Master 3 with music, brightness, volume and workspaces controls (using gestures) in KDE Plasma. Working thumbwheel.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Logiops (Linux driver) configuration for Logitech MX Master 3. | |
// Includes gestures, smartshift, DPI. | |
// Tested on logid v0.2.3 - GNOME 3.38.4 on Zorin OS 16 Pro | |
// What's working: | |
// 1. Window snapping using Gesture button (Thumb) | |
// 2. Forward Back Buttons | |
// 3. Top button (Ratchet-Free wheel) | |
// What's not working: | |
// 1. Scroll button | |
// File location: /etc/logid.cfg | |
devices: ({ | |
name: "Wireless Mouse MX Master 3"; | |
smartshift: { | |
on: true; | |
threshold: 14; | |
}; | |
hiresscroll: { | |
hires: true; | |
invert: false; | |
target: false; | |
}; | |
dpi: 1350; // max=4000 | |
buttons: ( | |
//Forward btn | |
{ | |
cid: 0x56; | |
action = { | |
type: "Gestures"; | |
gestures: ( | |
{ | |
direction: "None"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_FORWARD" ]; | |
} | |
}, | |
{ | |
interval: 5; | |
threshold: 3; | |
direction: "Up"; | |
mode: "OnInterval"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_BRIGHTNESSUP" ]; | |
} | |
}, | |
{ | |
interval: 5; | |
threshold: 3; | |
direction: "Down"; | |
mode: "OnInterval"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_BRIGHTNESSDOWN" ]; | |
} | |
}, | |
/* { | |
direction: "Right"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_F2" ]; | |
} | |
}, | |
*/ | |
// { | |
// direction: "Left"; | |
// mode: "OnRelease"; | |
// action = { | |
// type: "Keypress"; | |
// keys: [ "KEY_FASTBACKWARD" ]; | |
// } | |
// } | |
); | |
}; | |
}, | |
//Back btn | |
{ | |
cid: 0x53; | |
action = { | |
type: "Gestures"; | |
gestures: ( | |
{ | |
direction: "None"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_BACK" ]; | |
} | |
}, | |
{ | |
direction: "Up"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_PLAYPAUSE" ]; | |
} | |
}, | |
{ | |
direction: "Down"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_MUTE" ]; | |
} | |
}, | |
{ | |
direction: "Left"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_PREVIOUSSONG" ]; | |
} | |
}, | |
{ | |
direction: "Right"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_NEXTSONG" ]; | |
} | |
} | |
); | |
}; | |
}, | |
//Gestures btn | |
{ | |
cid: 0xc3; | |
action = { | |
type: "Gestures"; | |
gestures: ( | |
{ | |
direction: "None"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_LEFTMETA", "KEY_TAB" ]; | |
} | |
}, | |
{ | |
direction: "Up"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_LEFTMETA", "KEY_UP" ]; | |
} | |
}, | |
{ | |
direction: "Down"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_LEFTCTRL", "KEY_F9" ]; | |
} | |
}, | |
{ | |
direction: "Left"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_LEFTMETA", "KEY_LEFT" ]; | |
} | |
}, | |
{ | |
direction: "Right"; | |
mode: "OnRelease"; | |
action = { | |
type: "Keypress"; | |
keys: [ "KEY_LEFTMETA", "KEY_RIGHT" ]; | |
} | |
} | |
); | |
}; | |
}, | |
//Top btn | |
{ | |
cid: 0xc4; | |
action = { | |
type: "Gestures"; | |
gestures: ( | |
{ | |
direction: "None"; | |
mode: "OnRelease"; | |
action = { | |
type: "ToggleSmartShift"; | |
} | |
}, | |
{ | |
direction: "Up"; | |
mode: "OnRelease"; | |
action = { | |
type: "ChangeDPI"; | |
inc: 200; | |
} | |
}, | |
{ | |
direction: "Down"; | |
mode: "OnRelease"; | |
action = { | |
type: "ChangeDPI"; | |
inc: -200; | |
} | |
}, | |
); | |
}; | |
}, | |
), | |
thumbwheel: | |
{ | |
divert: true; | |
invert: false; | |
left: | |
{ | |
threshold: 1; | |
interval: 1; | |
direction: "Left"; | |
mode: "OnInterval"; | |
action = | |
{ | |
type: "Keypress"; | |
keys: ["KEY_VOLUMEDOWN"]; | |
}; | |
}; | |
right: | |
{ | |
threshold: 1; | |
interval: 1; | |
direction: "Right"; | |
mode: "OnInterval"; | |
action = | |
{ | |
type: "Keypress"; | |
keys: ["KEY_VOLUMEUP"]; | |
}; | |
}; | |
tap: | |
{ | |
mode: "OnRelease"; | |
action = | |
{ | |
type: "Keypress"; | |
keys: ["KEY_LEFTCTRL", "KEY_PLUS"]; | |
} | |
} | |
}; | |
} | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment