Skip to content

Instantly share code, notes, and snippets.

@aleemont
Forked from tyler-dot-earth/logid.cfg
Last active September 18, 2022 15:55
Show Gist options
  • Save aleemont/364e33da5a822349c57a9c34689e578b to your computer and use it in GitHub Desktop.
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.
// 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