Open markinhosmrk opened 1 week ago
One additional comment: with or without the .idc file I always see the following in dumpsys input. I'd expect it to change according to what is defined in the file.
Touchpad Input Mapper:
Pointer captured: false
Gesture converter:
Orientation: Rotation270
Axis info:
X: min=0, max=1599, flat=0, fuzz=0, resolution=0
Y: min=0, max=2559, flat=0, fuzz=0, resolution=0
Button state: 0x00000000
Down time: 0
Current classification: NONE
touch.orientationAware = 0
touch.orientation = ORIENTATION_0
I'm not really clear what happens because ORIENTATION_0 is the default...
Maybe you'll need touch.orientationAware = false
?
@phhusson thanks for the quick update! Any tip on where/who should I reach to share the idc files?
Will try the recommended syntax and will share the results.
Thanks, Marcos
Unfortunately it still did not work.
Hi,
Made some tests with an Android 12 GSI:
Looks like the touchpad device is configured differently in A14 GSI... any way I can make it the same as in A13?
A13
Device 13: sec_touchpad_pogo
EventHub Devices: [ 18 ]
Generation: 60
IsExternal: false
AssociatedDisplayPort: <none>
AssociatedDisplayUniqueId: <none>
HasMic: false
Sources: MOUSE
KeyboardType: 0
ControllerNum: 0
Motion Ranges:
X: source=MOUSE, min=0.000, max=2959.000, flat=0.000, fuzz=0.000, resolution=0.000
Y: source=MOUSE, min=0.000, max=1847.000, flat=0.000, fuzz=0.000, resolution=0.000
PRESSURE: source=MOUSE, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
SIZE: source=MOUSE, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
TOUCH_MAJOR: source=MOUSE, min=0.000, max=3489.513, flat=0.000, fuzz=0.000, resolution=0.000
TOUCH_MINOR: source=MOUSE, min=0.000, max=3489.513, flat=0.000, fuzz=0.000, resolution=0.000
TOOL_MAJOR: source=MOUSE, min=0.000, max=3489.513, flat=0.000, fuzz=0.000, resolution=0.000
TOOL_MINOR: source=MOUSE, min=0.000, max=3489.513, flat=0.000, fuzz=0.000, resolution=0.000
Touch Input Mapper (mode - POINTER):
Parameters:
GestureMode: MULTI_TOUCH
DeviceType: POINTER
AssociatedDisplay: hasAssociatedDisplay=true, isExternal=false, displayId=''
OrientationAware: false
Orientation: ORIENTATION_0
Raw Touch Axes:
X: min=0, max=1599, flat=0, fuzz=0, resolution=0
Y: min=0, max=2559, flat=0, fuzz=0, resolution=0
Pressure: unknown range
TouchMajor: min=0, max=255, flat=0, fuzz=0, resolution=0
TouchMinor: unknown range
ToolMajor: unknown range
ToolMinor: unknown range
Orientation: unknown range
Distance: unknown range
TiltX: unknown range
TiltY: unknown range
TrackingId: min=0, max=65535, flat=0, fuzz=0, resolution=0
Slot: min=0, max=2, flat=0, fuzz=0, resolution=0
Calibration:
touch.size.calibration: GEOMETRIC
touch.pressure.calibration: none
touch.orientation.calibration: none
touch.distance.calibration: none
touch.coverage.calibration: none
Affine Transformation:
X scale: 1.000
X ymix: 0.000
X offset: 0.000
Y xmix: 0.000
Y scale: 1.000
Y offset: 0.000
Viewport INTERNAL: displayId=0, uniqueId=local:4630947232161729154, port=130, orientation=1, logicalFrame=[0, 0, 2
960, 1848], physicalFrame=[0, 0, 2960, 1848], deviceSize=[2960, 1848], isActive=[1]
DisplayWidth: 1848px
DisplayHeight: 2960px
PhysicalWidth: 1848px
PhysicalHeight: 2960px
PhysicalLeft: 0
PhysicalTop: 0
InputDeviceOrientation: 3
Translation and Scaling Factors:
XScale: 1.155
YScale: 1.156
XPrecision: 0.866
YPrecision: 0.865
GeometricScale: 1.156
PressureScale: 0.000
SizeScale: 0.004
OrientationScale: 0.000
DistanceScale: 0.000
HaveTilt: false
TiltXCenter: 0.000
TiltXScale: 0.000
TiltYCenter: 0.000
TiltYScale: 0.000
Last Raw Button State: 0x00000000
Last Raw Touch: pointerCount=0
Last Cooked Button State: 0x00000000
Last Cooked Touch: pointerCount=0
Stylus Fusion:
ExternalStylusConnected: false
External Stylus ID: -1
External Stylus Data Timeout: 9223372036854775807
External Stylus State:
When: 9223372036854775807
Pressure: 0.000000
Button State: 0x00000000
Tool Type: 0
Pointer Gesture Detector:
XMovementScale: 0.925
YMovementScale: 0.925
XZoomScale: 0.347
YZoomScale: 0.347
MaxSwipeWidth: 754.718506
A14
Device 12: sec_touchpad_pogo
EventHub Devices: [ 1 ]
Generation: 50
IsExternal: false
IsWaking: false
AssociatedDisplayPort: <none>
AssociatedDisplayUniqueId: <none>
HasMic: false
Sources: MOUSE | TOUCHPAD
KeyboardType: 0
ControllerNum: 0
Motion Ranges:
PRESSURE: source=MOUSE, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
X: source=MOUSE, min=0.000, max=2959.000, flat=0.000, fuzz=0.000, resolution=0.000
Y: source=MOUSE, min=0.000, max=1847.000, flat=0.000, fuzz=0.000, resolution=0.000
GESTURE_X_OFFSET: source=MOUSE, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
GESTURE_Y_OFFSET: source=MOUSE, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
Touchpad Input Mapper:
Pointer captured: false
Gesture converter:
Orientation: Rotation270
Axis info:
X: min=0, max=1599, flat=0, fuzz=0, resolution=0
Y: min=0, max=2559, flat=0, fuzz=0, resolution=0
Button state: 0x00000000
Down time: 0
Current classification: NONE
Gesture properties:
Accel Max dt (real): 0.050000
Accel Min dt (real): 0.003000
Australian Scrolling (boolean): false
Bottom Zone Size (real): 10.000000
Box Height (real): 0.000000
Box Width (real): 0.000000
Button Evaluation Timeout (real): 0.050000
Button Finger Timeout (real): 0.030000
Button Max Distance From Expected (real): 20.000000
Button Move Distance (real): 10.000000
Button Right Click Zone Enable (boolean): false
Button Right Click Zone Size (real): 20.000000
Change Min Move Distance (real): 3.000000
Change Timeout (real): 0.200000
Click Drag Min Slope (real): 2.220000
Click Drag Pressure Diff Factor (real): 1.200000
Click Drag Pressure Diff Thresh (real): 10.000000
Compute Surface Area from Pressure (boolean): true
Compute Surface Area from Touch Size for Haptic Pads (boolean): false
Custom Haptic Button Force Threshold Down (real): 150.000000
Custom Haptic Button Force Threshold Up (real): 130.000000
Damp Scroll Min Move Factor (real): 0.200000
Delay On Possible Liftoff (boolean): false
Device Mouse (boolean): false
Device Pointing Stick (boolean): false
Device Touchpad (boolean): true
Drumroll Co Move Ratio (real): 1.200000
Drumroll Max Speed Change Factor (real): 15.000000
Drumroll Speed Thresh (real): 400.000000
Drumroll Suppression Enable (boolean): true
Dynamic Haptic Down Ratio (real): 1.200000
Dynamic Haptic Up Ratio (real): 0.500000
Enable Haptic Button Generation (boolean): false
Evaluation Timeout (real): 0.150000
Event Debug Logging Components Enable (integer): 0
Event Logging Enable (boolean): false
Fake Timestamp Delta (real): 0.000000
Fat Finger Min Move Distance (real): 15.000000
Fat Finger Pressure Ratio (real): 1.400000
Fat Finger Width Ratio (real): 1.300000
Filter Low Pressure (boolean): false
Finger Merge Distance Thresh (real): 140.000000
Finger Merge Filter Enabled (boolean): false
Finger Merge Maximum Pressure (real): 83.000000
Finger Merge Min Pressure (real): 51.000000
Finger Merge Minimum Touch Major (real): 280.000000
Finger Moving Energy (real): 0.012000
Finger Moving Hysteresis (real): 0.006000
Fling Buffer Depth (integer): 10
Fling Buffer Min Avg Speed (real): 10.000000
Fling Buffer Suppress Zero Length Scrolls (boolean): true
Fling Stop Extra Delay (real): 0.055000
Fling Stop Timeout (real): 0.030000
Force Calibration Offset (real): 0.000000
Force Calibration Slope (real): 1.000000
Force Touch Count To Match Finger Count (boolean): false
Four Finger Swipe Distance Ratio (real): 0.200000
Four Finger Swipe Distance Thresh (real): 1.500000
Haptic Button Sensitivity (integer): 3
Haptic Complete Release Suppression Speed (real): 200.000000
Horizontal Scroll Snap Slope (real): 0.577350
Hysteresis Pinch Scale Resolution Squared (real): 1.050000
Input Queue Delay (real): 0.000000
Input Queue Max Delay (real): 0.017000
Input Queue Min Nonsuppression Speed (real): 200.000000
Integrated Touchpad (boolean): false
Inter-Tap Timeout (real): 0.150000
Invert Scrolling (boolean): true
Inward Pinch Minimum Angle (real): 0.300000
Keyboard Palm Prevent Timeout (real): 0.500000
Keyboard Touched Timeval High (integer): 0
Keyboard Touched Timeval Low (integer): 0
Liftoff Speed Factor (real): 5.000000
Log Path (string): /var/log/xorg/touchpad_activity_log.txt
Logging Notify (integer): 0
Logging Reset (integer): 0
Max Allowed Pressure Change Per Sec (real): 800.000000
Max Dynamic Haptic Up Force (real): 350.000000
Max Finger Stationary Speed (real): 0.000000
Max Hysteresis Pressure Per Sec (real): 600.000000
Max Pressure Change Duration (real): 0.016000
Max Stationary Move Speed (real): 0.000000
Max Stationary Move Speed Hysteresis (real): 0.000000
Max Stationary Move Suppress Distance (real): 1.000000
Merged Finger Max Age (real): 0.350000
Merged Finger Max X Move (real): 180.000000
Merged Finger Max Y Move (real): 60.000000
Merged Finger Suspicious Angle Min Displacement (real): 7.000000
Merged Finger Touch Major Pressure Ratio (real): 5.000000
Merged Finger Touch Major Thresh (real): 380.000000
Merged Finger X Jump Max Disp (real): 9.000000
Merged Finger X Jump Min Disp (real): 6.000000
Metrics Mouse Moving Time (real): 0.050000
Metrics Mouse Warmup Session (integer): 100
Metrics Noisy Ground Distance (real): 10.000000
Metrics Noisy Ground Time (real): 0.100000
Min Interpolate Period (real): 0.021000
Minimum Movement Direction Detection (real): 0.003000
Minimum Pinch Scale Resolution Squared (real): 1.005000
Motion Tap Prevent Timeout (real): 0.050000
Mouse Accel Curves (boolean): false
Mouse CPI (real): 1000.000000
Mouse Pointer Accel Curve (80 reals): inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000, inf, 0.000000, 1.000000, 0.000000
Mouse Scroll Curves (boolean): false
Move Lock Speed (real): 10.000000
Move Report Distance (real): 0.350000
Multiple Palm Width (real): 75.000000
Old Mouse Accel Curves (boolean): false
One Finger Click Wiggle Timeout (real): 0.200000
Palm Edge Zone Min Point Speed (real): 100.000000
Palm Edge Zone Width (real): 14.000000
Palm Eval Timeout (real): 0.100000
Palm Filter Top Edge Enable (boolean): false
Palm Pointing Max Reverse Move Distance (real): 0.300000
Palm Pointing Min Move Distance (real): 8.000000
Palm Pressure (real): 200.000000
Palm Split Maximum Distance (real): 4.000000
Palm Stationary Distance (real): 4.000000
Palm Stationary Time (real): 2.000000
Palm Width (real): 21.200000
Pinch Certain Minimum Movement (real): 8.000000
Pinch Enable (boolean): true
Pinch Evaluation Timeout (real): 0.100000
Pinch Guess Consistent Movement Ratio (real): 0.400000
Pinch Guess Minimum Movement (real): 2.000000
Pinch Initial Scale Time Inverse (real): 3.330000
Pinch Noise Level Squared (real): 2.000000
Pinch Thumb Minimum Movement (real): 1.410000
Pinch Zoom Maximum Angle (real): -0.400000
Pinch Zoom Minimum Events (integer): 3
Point X Out Scale (real): 1.000000
Point Y Out Scale (real): 1.000000
Pointer Accel Curve (80 reals): 32.002000, 0.000000, 2.041600, 0.000000, 52.830000, 0.000000, 3.065600, -32.802560, 119.124000, 0.000000, 4.659200, -116.951680, inf, 0.000000, 9.625600, -708.835840, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000
Pointer Acceleration (boolean): true
Pointer Sensitivity (integer): 3
Pressure Calibration Offset (real): 0.000000
Pressure Calibration Slope (real): 1.000000
Pressure Minimum Threshold (real): 0.000000
Quick Acceleration Factor (real): 0.000000
Quick Move Distance Thresh (real): 3.000000
Right Click Second Finger Age Thresh (real): 0.500000
Right Click Start Time Diff Thresh (real): 0.100000
Scroll Accel Curve (80 reals): 32.002000, 0.000000, 2.041600, 0.000000, 52.830000, 0.000000, 3.065600, -32.802560, 119.124000, 0.000000, 4.659200, -116.951680, inf, 0.000000, 9.625600, -708.835840, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000
Scroll Minimum Angle (real): -0.200000
Scroll Sensitivity (integer): 3
Scroll X Out Scale (real): 1.000000
Scroll Y Out Scale (real): 1.000000
Smooth Accel (boolean): false
Stationary Pinch Scale Resolution Squared (real): 1.050000
Stationary Pinch Time (real): 0.100000
Stationary Wiggle Filter Enabled (boolean): false
Suppress Immediate Tapdown (boolean): true
T5R2 Three Finger Click Enable (boolean): false
Tap Drag Delay (real): 0.000000
Tap Drag Enable (boolean): false
Tap Drag Lock Enable (boolean): false
Tap Drag Stationary Time (real): 0.000000
Tap Drag Timeout (real): 0.300000
Tap Enable (boolean): true
Tap Exclusion Border Width (real): 8.000000
Tap Maximum Finger Age (real): 1.200000
Tap Maximum Movement (real): 0.000100
Tap Min Separation (real): 10.000000
Tap Minimum Pressure (real): 25.000000
Tap Move Distance (real): 2.000000
Tap Paused (boolean): false
Tap Timeout (real): 0.200000
Three Finger Click Enable (boolean): true
Three Finger Swipe Distance Ratio (real): 0.200000
Three Finger Swipe Distance Thresh (real): 1.500000
Three Finger Swipe Enable (boolean): true
Thumb Click Prevention Timeout (real): 0.150000
Thumb Evaluation Timeout (real): 0.060000
Thumb Movement Factor (real): 0.500000
Thumb Pinch Delay Factor (real): 9.000000
Thumb Pinch Evaluation Timeout (real): 0.250000
Thumb Pinch Minimum Movement (real): 0.800000
Thumb Pinch Movement Ratio (real): 20.000000
Thumb Pinch Threshold Ratio (real): 0.250000
Thumb Slow Pinch Similarity Ratio (real): 5.000000
Thumb Speed Factor (real): 0.500000
Top Edge Tap Exclusion Border Width (real): 3.000000
Touchpad Device Output Bias on X-Axis (real): 0.000000
Touchpad Device Output Bias on Y-Axis (real): 0.000000
Touchpad Stack Version (integer): 2
Tracing Enabled (boolean): false
Trend Classifying 2nd-order Motion Enabled (boolean): false
Trend Classifying Filter Enabled (boolean): true
Trend Classifying Min Num of Samples (integer): 6
Trend Classifying Num of Samples (integer): 20
Trend Classifying Z Threshold (real): 2.575829
Two Finger Horizontal Close Distance Thresh (real): 50.000000
Two Finger Move Distance Thresh (real): 7.000000
Two Finger Pressure Diff Factor (real): 1.650000
Two Finger Pressure Diff Thresh (real): 32.000000
Two Finger Scroll Distance Thresh (real): 1.500000
Two Finger Vertical Close Distance Thresh (real): 45.000000
Use Custom Haptic Button Force Thresholds (boolean): false
Use Custom Mouse Pointer Accel Curve (boolean): false
Use Custom Touchpad Pointer Accel Curve (boolean): true
Use Custom Touchpad Scroll Accel Curve (boolean): true
Use Dynamic Haptic Thresholds (boolean): false
Vertical Scroll Snap Slope (real): 1.191754
Wiggle Button Down Timeout (real): 0.750000
Wiggle Max Distance (real): 5.500000
Wiggle Timeout (real): 0.075000
Zero Finger Click Enable (boolean): true
Timer provider:
Timer IDs: 0
Deadlines and corresponding timer IDs:
Captured event converter:
Orientation scale: 0
Pressure scale: 1
Size scale: 0.00392157
Dimension axes: touch major
Down time: 0
Button state: 0x00000000
Pointer IDs in use: 00000000000000000000000000000000
Pointer IDs for slot numbers:
DisplayId: 0
Hi,
When using the touchpad in Book Cover keyboard, the touchpad axis are inverted (moving up/down moves left/right and vice versa, orientation seems to be portrait instead of landscape). Same issue happened in Android 13 builds but there using an .idc file with the following contents solved it, it does not work under Android 14:
/system/usr/idc/sec_touchpad_pogo.idc
I can see in dumpsys input and getevents that it is sec_touchpad_pogo device and it uses /dev/input/event15. When I apply the workaround that worked in Android 13 it shows the idc file being used in dumpsys. But apparently it is not applied, tried many different parameters there and no change at all.
This is what I see using getevent -lt for the device.
Any other way to invert axis for a touchpad? Please let me know if any additional info is needed.
Thanks, Marcos
Smartphone (please complete the following information):