Skip to content

Universal user-level driver to support touchscreens on macOS

License

Notifications You must be signed in to change notification settings

shueber/Touch-Up

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Touch-Up

Universal user-level driver to support touchscreens on macOS


Most current touchscreens work with Microsoft Windows out-of-the-box as they implement a standardized communication via USB HID. However, nothing happens when connecting these screens to a Mac. The goal of Touch Up was to provide a simple, general-purpose driver that enables plug-and-play support for touchscreens on macOS. The code in this repository provides a user-space driver that reads and processes the HID data into a set of touches and different utilities to inject mouse events into the system.

What can you do with this App?

The Touch Up utility app allows you to control your Mac with any connected touch screen. Touch Up supports clicks, dragging, scrolling, and pinch-to-zoom. While the behavior of the driver is customizable, the default setting was inspired by iPadOS:

  • Tap anywhere on the screen to click objects
  • Scroll content by flicking over the screen
  • Drag contents by briefly resting your finger before moving it
  • Zoom content by pinching two fingers
  • Secondary clicks can be performed with two fingers
  • You can even enable touching a window to move it to the front like Stage Manager on iPadOS does

Installing the App

  • Compile the app or download the latest notarized build here.
  • If you wish, move the app into your Applications folder and add it as a Login item.
  • Launch it and allow Accessibility access.
  • Plug in your touchscreen and start touching.

Compatibility

Touch Up should work with any touchscreen that also works with Windows. We used the following screens for testing:

  • Iiyama TF3222MC and T2336MSC-B2
  • 3M C4667PW

The TouchUpCore Framework

Game developers, researchers, and others who need access to all touch data can also benefit from this project by integrating the TouchUpCore framework themselves. It provides simple access to all touches recognized on the touch surface, simplifying multitouch prototype development in macOS.

The Touch Up app itself is an example of integrating the TouchUpCore framework. You can have a look at the DebugView to see how you can visualize the different touch points. Remember that your app needs an Entitlement to access USB if running in the Sandbox.

About

Universal user-level driver to support touchscreens on macOS

Resources

License

Stars

Watchers

Forks

Packages

No packages published