com.harryaskham.dasung-touch · Swift · macOS 14 · menu bar · CLI

Dasung Touch

A menu-bar app and command for DASUNG's Bluetooth touch device. Direct Touch puts each touch where your finger is on a chosen display, following it when the display is mirrored or rotated. Cursor uses the same surface like a trackpad.

Where a touch lands

From a touch to a point on a display How a touch becomes a desktop point. The sensor always reports two axes from 0 to 1920 in its native portrait orientation, whatever the panel shows. Dasung Touch calibrates and normalises the reading, rotates it first (from the display's reported rotation, its shape, or an override), then scales it into the chosen display's current logical bounds, including negative desktop origins. Direct Touch turns it into clicks, drags, scrolls and magnification at that point; Cursor moves the pointer relatively instead. sensor0–1920 × 0–1920 calibratenormalise · clamp rotate0° · 90° · 180° · 270° scaledisplay's logical bounds Direct Touch Cursor

The sensor always reports two axes from 0 to 1920 in its native portrait orientation; those numbers are not the panel's pixels. Each reading is calibrated, rotated, then scaled into the chosen display's logical bounds, so it lands correctly even on a display placed left of or above the main one.

Automatic rotation uses the angle macOS reports. AirPlay and BetterDisplay often report 0° even in landscape, so Automatic otherwise reads the display's shape: portrait means 0°, landscape 90° clockwise. Overrides cover the cases shape cannot tell apart, such as which way the device was turned.

Gestures

InputDirect TouchCursor
One-finger tapClick at the touchClick at the pointer
One finger movingDragMove the pointer
Hold, then moveDragDrag after the hold delay
Two-finger tapRight-click at the midpointRight-click at the pointer
Two fingers movingScrollScroll
Two fingers apartMagnifyMagnify at the pointer

Good manners