Comments (12)
@chamabreu Is #118 similar to what you're looking for?
kind of. I just throwed Linux over again, so it "solved" ;-) but if go in again, i will remember your answer and go deeper in testing. thanks buddy!
from logiops.
That's strange, I'm using the MX Master on Arch Linux, kernel 5.3.7 too and my gesture button works fine. The mouse movements and press/release events are clearly being diverted too.
You could try peeking around into logid/Actions.cpp and debugging GestureAction::Move()
and GestureAction::Release()
.
If you can figure this out, please share how you fixed this. If not, then could you share some more info that could help me reproduce this bug? Thanks.
from logiops.
Also, here's the configuration file I regularly use. See if this also has that bug:
Expand to show logid.cfg
devices: (
{
name: "MX Master";
smartshift:
{
on: true;
threshold: 30;
};
hiresscroll:
{
hires: true;
invert: false;
target: false;
};
dpi: 1000;
buttons: (
{
cid: 0xc3;
action =
{
type: "Gestures";
gestures: (
{
direction: "Up";
mode: "Axis";
axis: "REL_WHEEL";
axis_multiplier: 0.6;
},
{
direction: "Down";
mode: "Axis";
axis: "REL_WHEEL";
axis_multiplier: -0.6;
},
{
direction: "Left";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["BTN_SIDE"];
};
},
{
direction: "Right";
mode: "OnRelease";
action =
{
type: "Keypress";
keys: ["BTN_EXTRA"];
};
},
{
direction: "None"
mode: "OnRelease"
action =
{
type: "Keypress";
keys: ["BTN_MIDDLE"];
};
}
);
};
},
{
cid: 0xc4;
action =
{
type: "Keypress";
keys: ["KEY_MSDOS"];
};
},
{
cid: 0x53;
action =
{
type: "Keypress";
keys: ["KEY_UNKNOWN"];
}
}
);
}
);
from logiops.
@PixlOne thanks for your working configuration. Is there any way to keep the "ALT+TAB" behaviour pressing (and keeping pressed) the 0xc3 button?
from logiops.
Does my configuration work? On my setup, both the example config and my config work fine, and not to mention the format seems to be the same.
from logiops.
Hi, I tried your config, and the same issue occurs...
I have tried debugging a bit on my machine, and without actually understanding your code (so these may be totally off the mark), the following things I find suspicious:
- In Device.cpp > ButtonHandler::handleEvent() event.function() is always DivertedButtonEvent, never DivertedRawXYEvent which I think should be the case for a gesture?
- Actions.cpp > GestureAction::move() is never called, meaning that in Actions.cpp > GestureAction::release() the x and y values are always 0, meaning that Direction is always taken to be None.
Let me know how I should proceed - I understand that I am taking stabs in the dark, so let me know if I'm totally off the track.
Thanks for producing these libraries, and helping me to debug my setup.
from logiops.
event.function() is always DivertedButtonEvent, never DivertedRawXYEvent which I think should be the case for a gesture?
DivertedButtonEvent is called when a diverted button is pressed/released; DivertedRawXYEvent is called when the mouse is moved while a button with diverted mouse movements is held.
It's really strange that DivertedRawXYEvent is never called. Can you post your distribution, mouse firmware info, and a list of your device features using hidpp-list-features from here?
from logiops.
Hi there, so sorry it took me so long to get back on this.
Distro is clear linux
Mouse firmware...? - Don't know how to find this out.
Here is the output from hidpp-list-features, and following is some random commands from the same repo
❯ sudo ./hidpp-list-features /dev/hidraw1 MX Master (046d:b012) is a HID++ 4.5 device Feature 0x01: [0x0001] Feature set Feature 0x02: [0x0003] Device FW version Feature 0x03: [0x0005] Device name Feature 0x04: [0x1d4b] Wireless device status Feature 0x05: [0x0020] Reset Feature 0x06: [0x1000] Battery status Feature 0x07: [0x1814] Change host Feature 0x08: [0x1b04] Reprog controls v4 Feature 0x09: [0x2201] Adjustable dpi Feature 0x0a: [0x2100] Vertical scrolling Feature 0x0b: [0x2110] Smart shift Feature 0x0c: [0x2121] Hi-res wheel Feature 0x0d: [0x6501] Gesture 2 Feature 0x0e: [0x1813] ? (hidden, internal) Feature 0x0f: [0x1830] ? (hidden, internal) Feature 0x10: [0x1890] ? (hidden, internal) Feature 0x11: [0x18a1] ? (hidden, internal) Feature 0x12: [0x18c0] ? (hidden, internal) Feature 0x13: [0x1df3] ? (hidden, internal) Feature 0x14: [0x1e00] Enable hidden features (hidden) Feature 0x15: [0x1eb0] ? (hidden, internal) Feature 0x16: [0x1803] ? (hidden, internal) Feature 0x17: [0x1861] ? (hidden, internal) Feature 0x18: [0x9000] ? (hidden, internal) Feature 0x19: [0x9200] ? (hidden, internal) Feature 0x1a: [0x9240] ? (hidden, internal) Feature 0x1b: [0x1805] OOBState (hidden, internal)
❯ sudo ./hidpp20-mouse-event-test /dev/hidraw1 Feature [0x8110] MouseButtonSpy unsupported. Feature [0x8100] OnboardProfiles unsupported.
❯ sudo ./hidpp-list-devices /dev/hidraw1: MX Master (046d:b012) HID++ 4.5 /dev/hidraw1 (device 0): MX Master (046d:b012) HID++ 4.5
❯ sudo ./hidpp-check-device /dev/hidraw1 4.5
❯ sudo ./hidpp20-onboard-profiles-get-description /dev/hidraw1 terminate called after throwing an instance of 'HIDPP20::UnsupportedFeature' what(): Feature [0x8100] OnboardProfiles unsupported. Aborted
event.function() is always DivertedButtonEvent, never DivertedRawXYEvent which I think should be the case for a gesture?
DivertedButtonEvent is called when a diverted button is pressed/released; DivertedRawXYEvent is called when the mouse is moved while a button with diverted mouse movements is held.
It's really strange that DivertedRawXYEvent is never called. Can you post your distribution, mouse firmware info, and a list of your device features using hidpp-list-features from here?
from logiops.
Hmm, I personally use the B01E/4071 variant of the MX Master, could it be that this bug is specific to the B012?
Does this bug also occur over USB? If so, could you use the hidpp-dissector script on wireshark (from ratbag-toolbox) and check what (if any) HID++ events occurring while trying to use a gesture.
As far as I know, there is no way to use that dissector over bluetooth, so you will have to use the Unifying Receiver for this test.
from logiops.
same issue here.
the gesture button doesn't work. "None" direction is working but other directions do nothing!
➜ tools git:(master) ✗ sudo ./hidpp-list-devices
/dev/hidraw0: Logitech USB Receiver (046d:c52b) HID++ 1.0
/dev/hidraw0 (device 2): MX Master (046d:4041) HID++ 4.5
from logiops.
@PixlOne thanks for your working configuration. Is there any way to keep the "ALT+TAB" behaviour pressing (and keeping pressed) the 0xc3 button?
Hey did you get it? I am searching the answer for that question.
from logiops.
@chamabreu Is #118 similar to what you're looking for?
from logiops.
Related Issues (20)
- Crashes the session on startup
- Horizontal Scroll / Mouse Wheel Left-Right Tilt Buttons
- High-res scrolling only works in chromium & electron programs HOT 1
- Use three-key combinations? HOT 1
- Not working Master 3S - Ubuntu 22.04 (gnome) HOT 11
- Compilation fails with LTO HOT 5
- MX Master 3S times out HOT 10
- How this differences from the libratbag project? HOT 2
- M720: mouse freezes, but no gestures
- Compiler Error: »transform« is not element of »std« HOT 5
- Add SC COPY, PASTE and CUT key HOT 4
- How to use superkey in Ubuntu HOT 1
- Config for disability zoom in KDE? HOT 2
- Missing include in group.h HOT 1
- Running logid action from command line HOT 1
- Two keys gestures can be implemented in the MX3 profile, but adding the other 3 key doesn't work.
- One successful run with MX Master 3S and following failures
- MX Vertical: fwd button as gesture scroll HOT 1
- MX Master 3S with Bolt not detected HOT 7
- M720 freezes 30 sec after returning from suspend when in bluetooth mode
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from logiops.