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
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
| Input | Direct Touch | Cursor |
|---|---|---|
| One-finger tap | Click at the touch | Click at the pointer |
| One finger moving | Drag | Move the pointer |
| Hold, then move | Drag | Drag after the hold delay |
| Two-finger tap | Right-click at the midpoint | Right-click at the pointer |
| Two fingers moving | Scroll | Scroll |
| Two fingers apart | Magnify | Magnify at the pointer |
Good manners
- Nothing by default. A fresh install has no display selected, so opening it never takes over input unasked.
- No polling. While the display or device is missing it waits without a timer and resumes when both are back.
- No fighting. If it cannot get exclusive access to the device it says so and offers Retry, rather than sharing input or killing another mapper.
- Permissions stay yours. It needs Input Monitoring and Accessibility; Open at Login is off until you turn it on.