Minimal Apple Silicon native menu bar app that maps a trackpad force click to a configurable keyboard shortcut (default: Cmd+C).
Completely free and open source • Inspired by BetterTouchTool
- Menu bar app with a single settings window.
- Force-click detection via
MultitouchSupportApple's private framework. - Works with the built-in trackpad and external Magic Trackpads, including ones connected after launch or after the Mac wakes from sleep.
- Configurable shortcut key + modifiers.
- App exceptions: pick apps where force click does nothing (Finder is excluded by default).
- Autostart toggle.
Note
What is MultitouchSupport?
It is a private macOS framework that gives low-level access to raw trackpad data. The public macOS APIs only report the high-level "Force Click" gesture, which is usually tied to Look Up. TouchBro reads the pressure values from the trackpad sensors instead, so it can fire the shortcut in any app as soon as you press, even where the system gesture is disabled or blocked.
If the app was downloaded/copied and macOS flags it as quarantined:
xattr -dr com.apple.quarantine /path/to/TouchBro.appIf installed in /Applications:
xattr -dr com.apple.quarantine /Applications/TouchBro.app- Launch the app.
- Open Settings from menu bar.
- Click Request Accessibility and grant access in System Settings.
- Return to TouchBro.
Important
Why Accessibility?
macOS only lets "trusted" apps (ones granted Accessibility permission) read the text you have selected in other apps and send keystrokes such as Cmd+C on your behalf. TouchBro needs both to turn a force click into the shortcut.
It never records your keystrokes or sends data anywhere, and it has no internet access.
You can turn TouchBro off in specific apps, such as games or apps that already use force click for their own features.
- Open Settings.
- Scroll to the Exceptions list.
- Click + Add App to select an application bundle (Finder is excluded by default).
- TouchBro ignores force clicks in every app on the list.
TouchBro can register itself as a login item so it launches automatically after sign-in.
- Open Settings.
- Enable Start With macOS.
- macOS will add TouchBro to your login items using
SMAppService.
If you turn the toggle off, TouchBro unregisters itself from login items.
The settings window currently includes:
- Force-click enable/disable toggle
- Shortcut key and modifier configuration
- Accessibility permission status and shortcut to System Settings
- App exceptions list
- Start With macOS toggle
From repo root:
./package.shThis builds a release binary, assembles TouchBro.app, signs it, creates TouchBro.dmg, and launches the app.
On macOS 27 with only the Command Line Tools (no Xcode), the macOS 27 SDK cannot build SwiftUI's @State. Build against the 26.5 SDK instead:
SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX26.5.sdk ./package.shRun the tests the same way with swift test.
macOS ties the Accessibility permission to the app's signature. An ad-hoc signature changes with every build, so each new build needs Accessibility granted again. To avoid that, create a self-signed code signing certificate once:
- Open Keychain Access → Keychain Access menu → Certificate Assistant → Create a Certificate…
- Name:
TouchBro Dev, Identity Type: Self Signed Root, Certificate Type: Code Signing → Create.
package.sh signs with TouchBro Dev. To use another certificate, run SIGN_IDENTITY="Name" ./package.sh. If the certificate is missing, the script stops with an error.
The certificate is valid for one year by default. A new certificate counts as a new signature, so Accessibility has to be granted once more after switching to it.
For a quick local build without creating a certificate, sign ad-hoc:
./package.sh --adhocGrant Accessibility again after each ad-hoc build. Don't publish ad-hoc builds as releases: every user would have to re-grant Accessibility after updating.
