Funny enough, I actually did all of this work a while ago, before apple announced their new trackpad thingy.
Character Gestures is a new feature in jitouch 2 that allows you to invoke commands by drawing an English letter or a simpler gesture such as up, right, up-right, etc. Unlike any other software you've seen, jitouch combines the capability of multi-touch and a character recognition system together to let you draw gestures anywhere, anytime on the trackpad without a need to first draw a. BetterTouchTool 2.270 – Customize Multi-Touch trackpad gestures. July 25, 2017 BetterTouchTool adds many new, fully customizable gestures to the Magic Mouse, Multi-Touch MacBook trackpad, and Magic Trackpad. Minecraft controls mac trackpad Minecraft controls mac trackpad. With the MacBook Trackpad I can scroll documents by using two fingers or zoom into the screen with two fingers and Ctrl pressed. What could be very useful is to move the currently active window w.
Many people who use the Magic Trackpad (or the Macbook’s trackpad) prefer to do a two finger click instead of a right mouse click. Let me preface by saying, I am not one of you. I like myself a good ol’ fashion right mouse click. Like the computer gods intended.
All sacrilege aside, I have always been really pissed about how Apple hasn’t been able to get their act together when it comes to a right mouse click. Allow me to defend my claim. This is the Magic Trackpad
It is beautiful and lovely (if you ignore my shadow). And quite large, which I like. I can comfortably stretch my hand over the trackpad and scroll, swipe, pinch, etc with no problems whatsoever. I tend to keep my hand in the center of this giant thing. And this is a picture where a piece of paper is covering the part of the trackpad that is recognized as a right click
What the hell. Why is it that on this giant beast of a trackpad, there’s less than one square inch of a right click region? That is completely useless, which is why so many people go with a two finger click, or control clicking. Not me. Instead, i spend way too much time fighting against the man.
So my solution to the problem was to write an application to make it so the whole right half of the trackpad is recognized as a right click. Mypoint pro 1 17 – coordinates tool for mac desktop. AKA, making the magic mouse work the way it should have to begin with.
I’m going to assume at this point that you understand the basics of the event tap. if you don’t, go read this. It was originally going to be part of this post, but it got a little long.
Apples Private Multi Touch API
Private doesn’t have to mean scary. Just undocumented, and not really intended for anyone else to know about/use. Alfred 4 0 36. ?
If you link in Apple’s multi touch api, and you have the right headers, you can do some pretty neat things. Most of what I know on the subject came from pouring over the source of FingerMgmt. I started off by looking for an existing tool such as BetterTouchTool or MagicPrefs to see if I could accomplish my goal, but was quickly underwhelmed. If you want to be able to have gestures to play/pause, skip, previous, run an apple script or all sorts of other crazy things, BetterTouchTool or MagicPrefs has got you covered. But if you want to just make the right half of the track pad be recognized as a right click, you’re out of luck.
But in one of the windows buried deep inside one of those two apps (don’t remember which) I found a vague reference to FingerMgmt, and I spent some time looking at the source. It’s pretty complex as it relies on you having some knowledge about the subject ahead of time, but that’s ok.
You need to get yourself a copy of the multi touch headers. I think that I ended up with a self-modified version. I think it came from a mix of this github, and FingerMgmt. But I did this so long ago that I’m not positive.
With the header added to your Xcode project, you need to link to /System/Library/PrivateFrameworks/MultitouchSupport.framework
With all that in place, you can hook into the multi touch to recognize when a user touches the trackpad.
2 4 6 8 10 | { MTDeviceRef device=MTDeviceCreateFromDeviceID(device_id); MTRegisterContactFrameCallback(device,touchCallback); } voidtouchCallback(MTDeviceRef device,MTTouch touches[],size_t numTouches,doubletimestamp,size_t frame) } |
This will get a reference to the device you want to monitor, add touchCallback as a function to execute when stuff happens, and then start monitoring the multi touch frame. Unfortunately, the multi touch framework will only tell you information about the touches, it doesn’t tell you when clicks happen – which is why you need to know about the event loop. Also in this code chunk I got my device by it’s ID. I just happened to know (from debugging) that for me it’s 0x400000015dd4d84. I assume these are unique. You could certainly hook up to all multi touch devices in a loop with MTDeviceCreateList or if you’re on a macbook MTDeviceCreateDefault should always give you the one that’s built into the laptop that way you’d never have to go through the trouble of debugging to figure out what your trackpad’s id is.
The App
The app I threw together is really quite simple. Everything can fit in the app delegate.
I put Application isagent(UIElement):YES inside my info.plist so that nothing shows up in the dock. At runtime, I created a menu item with an Enable/Disable and Quit button. This allows me to disable the app if I ever have the need. This comes in handy when something causes the event loop to be upset with my app.
I put Application isagent(UIElement):YES inside my info.plist so that nothing shows up in the dock. At runtime, I created a menu item with an Enable/Disable and Quit button. This allows me to disable the app if I ever have the need. This comes in handy when something causes the event loop to be upset with my app.
I tied into the multi touch framework with this callback
2 4 6 8 10 12 | voidtouchCallback(MTDeviceRef device,MTTouch touches[],size_t numTouches,doubletimestamp,size_t frame) shouldTransformClick=NO; { floatx=touch->normalizedVector.position.x; { } } |
if there’s only one touch, and that touch is on the right half of the trackpad, I set a static bool to YES so that the event tap piece knows to transform any left click into a right click.
Note that the normalizedVector.position.x and normalizedVector.position.y points are a 0 to 1 scale.
My event tap looks like this
2 4 6 8 10 12 14 16 18 20 22 24 26 28 | CGEventRef handleCGEvent(CGEventTapProxy proxy,CGEventType type,CGEventRef eventRef,void*refcon) if(shouldTransformClickNO) returneventRef; if(type!=kCGEventLeftMouseUp&&type!=kCGEventLeftMouseDown) returneventRef; NSEvent*event=[NSEvent eventWithCGEvent:eventRef]; { } CGEventSourceRef sourceRef=CGEventCreateSourceFromEvent(eventRef); CGEventRef newRef; { newRef=CGEventCreateMouseEvent(sourceRef,kCGEventRightMouseDown,point,kCGMouseButtonRight); else newRef=CGEventCreateMouseEvent(sourceRef,kCGEventRightMouseUp,point,kCGMouseButtonRight); } |
As you can see right off, I didn’t set up the mask like I should have when i tied into the event tap, so i filter out the undesired events manually. This is something i’m going to go back and fix, but i don’t feel the need to update the code here.
After filtering out the event types i don’t care about, i check that the event came from the HID device with the same ID as my magic trackpad.
![Software Software](https://is3-ssl.mzstatic.com/image/thumb/Purple3/v4/96/ae/5e/96ae5e03-978a-4713-94df-1898f0c46ef0/source/942x0w.jpg)
When I want to turn the left click into a right click, I create a new mouse event and return the new right click event from my event handler. This will make everything else act as though I had made a right click.
There have been a few issues with this here and there, but they happen pretty infrequently. Whenever I do have problems, I tend to just disable the app, do what I need, and then enable it again.
Rather than supply all of the source in this post, I thought I’d just supply the Xcode project. Keep in mind that since this was a personal project, I didn’t spend too much time making the code beautiful.
It started off as a project named MouseFun. And then I renamed it to RCR because it fit nicely in my menu bar. Though Honestly I forgot what RCR stood for. I think it was… Right Click…. something that starts with the letter R.
Hope someone else out there finds this useful.
SOME OF THE Frequently Asked Questions
![Copy Copy](https://i1.wp.com/www.macbed.com/wp-content/uploads/2019/02/38124.png?resize=256%2C256&ssl=1)
Q.: What does the Trackpad++ Control Module user interface look like?
A.:Here is a screen shot. (Note: in the most recent version, both the appearance and the features may be different).
A.:Here is a screen shot. (Note: in the most recent version, both the appearance and the features may be different).
Q.: Why alternate trackpad driver for Windows 7 / 8 / 10?
A.: Apple trackpads are the perfect, probably world's best, touchpad devices. And the MacOS native driver is good: it unleashes almost all of the amazing trackpad capabilities. But the stock Windows driver provided by Apple for Boot Camp is, unfortunately, very far from being perfect. No support of 3+ finger gestures. No accelerated scrolling (yet the scrolling is too sensitive!). Dragging is just usable. And there is no vital option to ignore accidental input when typing. This is just an incomplete list of the issues every Boot Camp user is experiencing. Nomad fleet 1 0. So, the need of the better trackpad driver is obvious. In fact, if you are asking this question, then probably you have never tried to use Windows on an Apple Macbook Retina / Pro / Air :)
A.: Apple trackpads are the perfect, probably world's best, touchpad devices. And the MacOS native driver is good: it unleashes almost all of the amazing trackpad capabilities. But the stock Windows driver provided by Apple for Boot Camp is, unfortunately, very far from being perfect. No support of 3+ finger gestures. No accelerated scrolling (yet the scrolling is too sensitive!). Dragging is just usable. And there is no vital option to ignore accidental input when typing. This is just an incomplete list of the issues every Boot Camp user is experiencing. Nomad fleet 1 0. So, the need of the better trackpad driver is obvious. In fact, if you are asking this question, then probably you have never tried to use Windows on an Apple Macbook Retina / Pro / Air :)
Q.: Do I need to install the Boot Camp drivers first? What are the supported Boot Camp and Windows versions?
A.: Yes, the Boot Camp drivers shall be installed (but normally it's already done automatically by Apple installer, right after you install the Windows). The supported Boot Camp versions are 3.0 - 3.3, 4.0, 4.1, 5.0, 5.1, 6.0 and 6.1
A.: Yes, the Boot Camp drivers shall be installed (but normally it's already done automatically by Apple installer, right after you install the Windows). The supported Boot Camp versions are 3.0 - 3.3, 4.0, 4.1, 5.0, 5.1, 6.0 and 6.1
Q.: Which devices except of the Macbook, Macbook Pro and Macbook Air are supported?
A.: NONE. The only supported devices are: Force Touch Macbook Pro 16' Late 2019, Macbook Pro 13' / 15' Mid 2020, Mid 2019, Mid 2018, Mid 2017 and Late 2016, Macbook 12' Early 2015, Early 2016, Mid 2017, Macbook 13' / 15' Early 2015 and Mid 2015; classic Multi Touch models: Macbook Pro (Mid 2009, Mid 2010, Early 2011, Late 2011, Mid 2012 / Retina, Late 2012 / Retina, Early 2013 / Retina, Late 2013 / Retina, Mid 2014 / Retina) and Macbook Air (Late 2010, Mid 2011, Mid 2012, Mid 2013, Early 2014, Early 2015, Mid 2017, Late 2018, Mid 2019, Early 2020).
If you search for a Bluetooth Magic Trackpad / Magic Trackpad 2 driver installer and control panel for Boot Camp or PC, please see the following solution: an ExtraMagic.
A.: NONE. The only supported devices are: Force Touch Macbook Pro 16' Late 2019, Macbook Pro 13' / 15' Mid 2020, Mid 2019, Mid 2018, Mid 2017 and Late 2016, Macbook 12' Early 2015, Early 2016, Mid 2017, Macbook 13' / 15' Early 2015 and Mid 2015; classic Multi Touch models: Macbook Pro (Mid 2009, Mid 2010, Early 2011, Late 2011, Mid 2012 / Retina, Late 2012 / Retina, Early 2013 / Retina, Late 2013 / Retina, Mid 2014 / Retina) and Macbook Air (Late 2010, Mid 2011, Mid 2012, Mid 2013, Early 2014, Early 2015, Mid 2017, Late 2018, Mid 2019, Early 2020).
If you search for a Bluetooth Magic Trackpad / Magic Trackpad 2 driver installer and control panel for Boot Camp or PC, please see the following solution: an ExtraMagic.
Q.: Is it safe to install the Trackpad++? And, just in case, how do I remove the driver?
A.: Yes, it's completely safe to install, especially now when the driver is Microsoft-cross-signed, so its origin and integrity and fully assured. Just follow the simple installation instructions. Also (optional, but recommended step) you can install the Power Plan Assistant software first. In fact, the Trackpad++ does not interfere with any of the Boot Camp drivers installed. Instead, it seamlessly integrates into your existing Boot Camp installation. The setup procedure is transparent and fully automatic. If you would like to remove the Trackpad++ from your system, you can simply uninstall the Control Module (as you do with any Windows application - via Windows Control Panel) and, optionally, roll back to a 'HID-Compliant Mouse' driver via Windows 7 / 8 Device Manager. When the Trackpad++ Control Module is not installed anymore, the system will use the settings of the Boot Camp control panel, as if the Trackpad++ had never been installed.
A.: Yes, it's completely safe to install, especially now when the driver is Microsoft-cross-signed, so its origin and integrity and fully assured. Just follow the simple installation instructions. Also (optional, but recommended step) you can install the Power Plan Assistant software first. In fact, the Trackpad++ does not interfere with any of the Boot Camp drivers installed. Instead, it seamlessly integrates into your existing Boot Camp installation. The setup procedure is transparent and fully automatic. If you would like to remove the Trackpad++ from your system, you can simply uninstall the Control Module (as you do with any Windows application - via Windows Control Panel) and, optionally, roll back to a 'HID-Compliant Mouse' driver via Windows 7 / 8 Device Manager. When the Trackpad++ Control Module is not installed anymore, the system will use the settings of the Boot Camp control panel, as if the Trackpad++ had never been installed.
Q.: Even with Trackpad++, the scrolling in my web browser isn't as smooth as in MacOS (Safari). Any suggestions?
A.: First of all, even in MacOS, other browsers do not provide the same ultra-smooth experience as Safari. So, the question is not just about the trackpad driver settings, but about how each specific browser handles the scrolling events it receives from the driver. For Windows, the answer would be - consider using the Opera or Firefox web browser. These browsers work best with Trackpad++, providing almost as smooth and as intuitive scrolling experience as Safari in MacOS. As to the rest of the browsers, the experience may not be 100% perfect. In any case, the Trackpad++ significantly improves scrolling behavior vs. the Boot Camp driver, so you should get noticeable improvement regardless of the web browser you are using.
A.: First of all, even in MacOS, other browsers do not provide the same ultra-smooth experience as Safari. So, the question is not just about the trackpad driver settings, but about how each specific browser handles the scrolling events it receives from the driver. For Windows, the answer would be - consider using the Opera or Firefox web browser. These browsers work best with Trackpad++, providing almost as smooth and as intuitive scrolling experience as Safari in MacOS. As to the rest of the browsers, the experience may not be 100% perfect. In any case, the Trackpad++ significantly improves scrolling behavior vs. the Boot Camp driver, so you should get noticeable improvement regardless of the web browser you are using.
Bettertouchtool 2 319 – Customize Multi Touch Trackpad Gestures Copy Software
Q.: I have got a question which is not listed there! How can I get an answer?
A.: Please feel free to contact us.
A.: Please feel free to contact us.