imbushuo / mac-precision-touchpad

Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad
Other
9.06k stars 570 forks source link

Force Touch #100

Open imbushuo opened 6 years ago

imbushuo commented 6 years ago

Force touch exposes additional HID collections to the host OS (accelerometer and actuator). On USB-based trackpad, they are recognized by default, but no OS support is implemented. On SPI-based trackpad, another miniport driver is required to make it available to host OS.

See if we have applicable scenarios for Force Touch on Windows.

AB#688

imbushuo commented 5 years ago

Will be tracked in AB#635.

imbushuo commented 5 years ago

Force touch structure: 14-bytes packed structure

typedef struct _HAPTIC_FEEDBACK {
    USHORT Magic;
    UINT Strength;
    int X;
    int Y;
} HAPTIC_FEEDBACK, *PHAPTIC_FEEDBACK;

It exists as a dedicated HID device on MI_03 (Magic Trackpad 2) or MI_02 (others). Tap test works fine but I don't have idea about usable scenarios on Windows.

DrJedikiah commented 4 years ago

It could be used as right click, folder&file rename, middle mouse button for opening in new tab etc. Or if we could set a virtual key code from like regedit or an .ini file, that would be nice.

chanibal commented 4 years ago

Middle click +1 this would solve a lot of my issues. Middle-button drag would work (used in my uml diagraming software), I could also use the same functionality as in macos with middle clicking links to open in new tabs.

Is more than one button force touch recognizable? Ex. can you distinguish between one button force touch and two or three button force touch?

zzFluke commented 4 years ago

Hey @imbushuo, looked at your feedback test program but couldn't understand how to get accelerator reports from trackpad with applied force values. Is it possible? Could you please point me to the place where I can read about that?

imbushuo commented 4 years ago

@zzFluke Force value retrieved from touchpad HID collection, the accelerator seems unknown to me. Actuator is used for haptic.

not-holar commented 2 years ago

Would it be possible to add a setting for how hard you need to press for a click to register? It feels a little too stiff on my MT2, fine for clicks, but a little difficult to drag while holding