Skip to content

Add PTH Touch Relative Mode for macOS - #197

Open
matebenyovszky wants to merge 7 commits into
OpenTabletDriver:masterfrom
matebenyovszky:add-pth-touch-relative-mode
Open

matebenyovszky wants to merge 7 commits into
OpenTabletDriver:masterfrom
matebenyovszky:add-pth-touch-relative-mode

Conversation

@matebenyovszky

@matebenyovszky matebenyovszky commented Nov 10, 2026 •

Copy link
Copy Markdown

Adds a macOS output-mode plugin combining Wacom touch with relative pen input. One finger moves the pointer, exactly two fingers scroll, taps produce native left/double/right clicks, and tap-and-drag supports selection/window movement. Pen handling preserves OpenTabletDriver's pipeline, with optional far-hover gating and median/deadband noise filtering.

Version 1.5.1 includes these opt-in features:

  • Upper-button joystick autoscroll: the press point anchors a bounded physical field (default ±20 mm, 40 × 40 mm total). Deflection selects speed, stationary edge holding continues scrolling, centre/release stops it and reanchors relative pointing. Reach, speed, deadzone, acceleration and direction are adjustable. Existing Scroll Bindings drag scrolling remains selectable; scroll coordinates can use a separate noise filter.
  • A short stationary upper-button press/release can send a middle click. Movement, pressure, another button, long hold or proximity loss cancels it.
  • Three-finger system swipes use Control+Function+Arrow for Spaces, Mission Control and app windows. Experimental horizontal desktop transitions can instead follow finger progress on macOS 13–26, with reversal and partial-contact recovery. Undocumented native fields are involved; small transition hitches may remain, and macOS 27+ falls back to shortcuts.
  • Experimental two-finger pinch sends native magnification events to compatible apps, independently of two-finger scrolling. Contact loss, palm input, pen takeover and unloading cancel gestures safely.
  • An optional universal macOS settings companion exposes the controls, merges edits into current driver settings, backs up/verifies/saves and resynchronizes the main window. It uses the existing same-user settings pipe and needs no new input permissions. The plugin ZIP contains only PthTouch.dll.

Source and documentation · Release v1.5.1

Requires OpenTabletDriver 0.6.8.1 or newer; MIT license. Native gesture-field reference attribution is included in THIRD_PARTY_NOTICES.md.

Applying settings preserves relative input even if the host configures a new mode while reports arrive. A deterministic regression test covers the ResetTime race fixed in 1.5.1.

Validation: 185 deterministic touch/pen/gesture/pointer checks and 15 settings preservation/concurrent-edit/local RPC checks. CI also verifies native magnify envelopes without posting UI events and builds the universal settings app. Live PTH-851 testing on macOS 26.5.2 / Apple silicon confirmed touch/pen input, taps/drag, all four system directions, pinch, stable hover, pen-scroll release without jumps, middle tapping, joystick scrolling and GUI Save & apply. Interactive horizontal following works, with a minor transition hitch remaining. A stationary 30-second recording replay produced zero movements with a 0.10 mm deadband and spike rejection.

The released plugin ZIP is checked against the metadata SHA256 and contains only PthTouch.dll at the archive root. No new macOS permissions are required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant