This enables you easily to access raw data of the multitouch trackpad.
Objective-C
45
65 commits
updated Jul 30, 2025
This is a fork of Kyome22/OpenMultitouchSupport with some added features.
It adds support for:
This enables you easily to observe global multitouch events on the trackpad (only default device).
I created this library to make MultitouchSupport.framework (Private Framework) easy to use.
This library refers the following frameworks very much. Special Thanks!
App SandBox must be disabled to use OpenMultitouchSupport.
import OpenMultitouchSupport
let manager = OMSManager.shared()
Task { [weak self, manager] in
for await touchData in manager.touchDataStream {
// use touchData
}
}
manager.startListening()
manager.stopListening()
struct OMSPosition: Sendable {
var x: Float
var y: Float
}
struct OMSAxis: Sendable {
var major: Float
var minor: Float
}
enum OMSState: String, Sendable {
case notTouching
case starting
case hovering
case making
case touching
case breaking
case lingering
case leaving
}
struct OMSTouchData: Sendable {
var id: Int32
var position: OMSPosition
var total: Float // total value of capacitance
var pressure: Float
var axis: OMSAxis
var angle: Float // finger angle
var density: Float // area density of capacitance
var state: OMSState
var timestamp: String
}
This package uses a hybrid approach with both Swift wrapper code and binary XCFramework distribution. Here's how to update the library:
When you need to modify the Swift API layer (files in Sources/OpenMultitouchSupport/):
Sources/OpenMultitouchSupport/Since consuming projects typically use branch: main, they will automatically get the latest Swift wrapper changes.
When you need to modify the underlying Framework code:
Framework/OpenMultitouchSupportXCF/./build_framework.sh
./release.sh 1.0.x # Replace x with next version number
The release.sh script automates the binary release process:
This workflow allows rapid iteration on the Swift API while maintaining stable binary releases for the underlying multitouch framework.
This enables you easily to access raw data of the multitouch trackpad.
Objective-C
45
65 commits
updated Jul 30, 2025
This is a fork of Kyome22/OpenMultitouchSupport with some added features.
It adds support for:
This enables you easily to observe global multitouch events on the trackpad (only default device).
I created this library to make MultitouchSupport.framework (Private Framework) easy to use.
This library refers the following frameworks very much. Special Thanks!
App SandBox must be disabled to use OpenMultitouchSupport.
import OpenMultitouchSupport
let manager = OMSManager.shared()
Task { [weak self, manager] in
for await touchData in manager.touchDataStream {
// use touchData
}
}
manager.startListening()
manager.stopListening()
struct OMSPosition: Sendable {
var x: Float
var y: Float
}
struct OMSAxis: Sendable {
var major: Float
var minor: Float
}
enum OMSState: String, Sendable {
case notTouching
case starting
case hovering
case making
case touching
case breaking
case lingering
case leaving
}
struct OMSTouchData: Sendable {
var id: Int32
var position: OMSPosition
var total: Float // total value of capacitance
var pressure: Float
var axis: OMSAxis
var angle: Float // finger angle
var density: Float // area density of capacitance
var state: OMSState
var timestamp: String
}
This package uses a hybrid approach with both Swift wrapper code and binary XCFramework distribution. Here's how to update the library:
When you need to modify the Swift API layer (files in Sources/OpenMultitouchSupport/):
Sources/OpenMultitouchSupport/Since consuming projects typically use branch: main, they will automatically get the latest Swift wrapper changes.
When you need to modify the underlying Framework code:
Framework/OpenMultitouchSupportXCF/./build_framework.sh
./release.sh 1.0.x # Replace x with next version number
The release.sh script automates the binary release process:
This workflow allows rapid iteration on the Swift API while maintaining stable binary releases for the underlying multitouch framework.