Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thumbstap

Double-tap your thumb on the trackpad → your app grid.

A Launchpad-style, full-screen app launcher for macOS (Tahoe removed Launchpad), driven by a gesture no other tool uses: a thumb double-tap. Thumbstap tells your thumb apart from your fingertips using the touch-ellipse data that everyone else throws away.

Why a thumb double-tap?

  • No conflicts. macOS reserves three- and four-finger swipes/pinches, but plain taps are unclaimed territory — nothing in the OS fights you for them.
  • Thumbs are geometrically different. The raw multitouch stream reports each contact's ellipse (major/minor axis). Most tools only read position and finger count. The elongation ratio (major ÷ minor) separates thumbs from fingertips cleanly — measured on real hardware: fingertip taps 1.09–1.57, thumb taps 1.64–1.95, with no overlap.
  • A tap you can't fire by accident. Combined with physical-click gating (see below), normal pointing, clicking, and dragging never trigger it.

Features

  • Thumb double-tap → full-screen frosted app grid; tap again (or Esc, or click outside) to close
  • Dockless background app with a Stats-style menu-bar icon for opening the grid, pausing the gesture, launching at login, or quitting
  • 7×6 paged grid with trackpad swipe paging and clickable page dots
  • Localized app names (계산기, not Calculator) via the same Spotlight metadata the native launcher uses
  • Search: just start typing when the grid opens; Enter launches the top hit
  • Launchpad-style manual arrangement: long-press an icon → jiggle mode; drag to reorder with live reflow; drag to a screen edge to flip pages; order persists across restarts (new installs append at the end)
  • Right-click an icon → add a Finder alias to the Desktop, or reveal in Finder
  • Physical-click gating: real button clicks and a brief 0.15 s settling tail suppress gesture recognition, so click-dragging icons never reads as a thumb tap
  • Per-user calibration for the thumb/fingertip boundary

Requirements

  • macOS 14+ on a Mac with a built-in trackpad (or Magic Trackpad)
  • Xcode command line tools
  • Works best with tap to click turned off (System Settings → Trackpad) — with it on, light taps also click whatever is under the cursor

Install

Homebrew (recommended)

brew install --cask 1jsjs/tap/thumbstap

Then launch Thumbstap from /Applications. (The bundle is ad-hoc signed while the project has no Apple Developer ID; the Homebrew path installs without Gatekeeper friction, whereas a browser-downloaded zip will warn.)

Build from source

git clone https://github.com/1jsjs/thumbstap.git
cd thumbstap
./Scripts/build-app.sh
open dist/Thumbstap.app

Thumbstap.app runs as a background agent: it has no Dock icon and keeps a small grid icon in the right side of the menu bar. Use that menu to open the grid, pause gesture recognition, launch Thumbstap at login, view app information, or quit. The icon is blue while the gesture is active, orange while it is paused, and red if the gesture engine cannot start.

For a quick development run without building the app bundle:

xcrun swift run thumbstap-app

Calibrate the thumb boundary for your hand (recommended, ~30 seconds):

xcrun swift run thumbstap-demo calibrate

The result is saved to ~/Library/Application Support/Thumbstap/profile.json and shared by the app and the CLI demo. Your grid arrangement lives next to it in layout.json.

Architecture

Target What it is
Thumbstap Pure, hardware-free core: contact model, geometry classifier, tap detector, double-tap recognizer, calibrator. Fully unit-tested — no private API anywhere.
CMultitouch Minimal C bridge to the private MultitouchSupport.framework.
ThumbstapMultitouch The live TouchSource wrapping the bridge.
thumbstap-demo CLI: verbose tap logging + calibration mode.
ThumbstapApp The launcher GUI (SwiftUI overlay window + app grid).

The private framework is linked only at the executable boundary; the core stays pure so the classification logic is testable and reusable.

xcrun swift test   # core tests, no trackpad needed

Honest caveats

  • Built on a private framework (MultitouchSupport). No App Store, no sandbox, and an OS update could break it — this is the same foundation established trackpad utilities have shipped on for 15+ years, but the risk is real.
  • Ellipse thresholds were measured on one machine's trackpad family; run the calibrator on your hardware.
  • The gesture attaches to every multitouch device present at launch: a Magic Trackpad connected later needs an app restart, the calibration profile is global (not per-device), and a Magic Mouse's touch surface is not filtered out yet. The grid itself is fully mouse-operable via the menu-bar icon.
  • Reordering across a page boundary pops instead of morphing (Launchpad behaved similarly).

License

MIT

About

Thumb double-tap app launcher for macOS — a Launchpad-style grid driven by touch-ellipse thumb detection

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages