<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: TrackStudio</title>
    <description>The latest articles on DEV Community by TrackStudio (@trackstudio).</description>
    <link>https://dev.to/trackstudio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4224642%2F136ef69b-c236-427b-9422-2624f4bd9093.png</url>
      <title>DEV Community: TrackStudio</title>
      <link>https://dev.to/trackstudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/trackstudio"/>
    <language>en</language>
    <item>
      <title>The Mac trackpad settings worth changing</title>
      <dc:creator>TrackStudio</dc:creator>
      <pubDate>Tue, 03 Nov 2026 19:13:25 +0000</pubDate>
      <link>https://dev.to/trackstudio/the-mac-trackpad-settings-worth-changing-1jkl</link>
      <guid>https://dev.to/trackstudio/the-mac-trackpad-settings-worth-changing-1jkl</guid>
      <description>&lt;p&gt;The Mac trackpad is tuned for the average user, which means it is usually wrong for you. These are the changes worth making, in the order that removes the most misfires.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the misfires
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Click pressure.&lt;/strong&gt; If the trackpad clicks when you rest your hand, set it to Firm. This fixes more accidental clicks than any other setting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tap to click.&lt;/strong&gt; Turn it off for a day if you get clicks you did not intend. If you miss it, turn it back on; if you do not, you just removed a class of errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Look up &amp;amp; data detectors.&lt;/strong&gt; This is the popup that interrupts text selection. It is not Force Click, and turning it off does not disable pressure. Set it to Off, or move it to a three-finger tap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Force Click.&lt;/strong&gt; If you press hard while dragging, turn the deeper press off. You lose the system haptic click with it, so most people should fix Look Up first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then the speed
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tracking speed.&lt;/strong&gt; One notch below maximum is the precision setting. Maximum feels fast for a day and twitchy for a year.&lt;/p&gt;

&lt;p&gt;Do not change tracking and scroll speed in the same session. You will not be able to tell which one caused the overshoot.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gestures
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Swipe between pages.&lt;/strong&gt; Keep it. Two fingers, two pages, it works in every browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission Control.&lt;/strong&gt; Pick three or four fingers and stay there. Switching between them is how people end up saying gestures are unreliable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three-finger drag.&lt;/strong&gt; It lives in Accessibility, Pointer Control, Trackpad Options, not in the Trackpad pane. Enable it only if you drag windows or select long passages all day; it collides with three-finger swipes and Look Up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not enable every gesture just in case.&lt;/strong&gt; A gesture you do not use is a gesture that fires by accident.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where macOS stops
&lt;/h2&gt;

&lt;p&gt;macOS gives you one global layout. It cannot give Safari and Figma different controls, and it cannot put brightness and volume on the pad edges. Those need a third-party layout app. If the settings above are enough, stop there.&lt;/p&gt;

&lt;p&gt;The full version, with the exact paths and the conflict table, is here: &lt;a href="https://trackstudio.xyz/blog/best-mac-trackpad-settings" rel="noopener noreferrer"&gt;https://trackstudio.xyz/blog/best-mac-trackpad-settings&lt;/a&gt;&lt;/p&gt;

</description>
      <category>macos</category>
      <category>productivity</category>
      <category>tools</category>
      <category>design</category>
    </item>
    <item>
      <title>Middle click on a Mac trackpad: what actually works</title>
      <dc:creator>TrackStudio</dc:creator>
      <pubDate>Tue, 03 Nov 2026 17:15:07 +0000</pubDate>
      <link>https://dev.to/trackstudio/middle-click-on-a-mac-trackpad-what-actually-works-4mh</link>
      <guid>https://dev.to/trackstudio/middle-click-on-a-mac-trackpad-what-actually-works-4mh</guid>
      <description>&lt;p&gt;macOS has no middle click. Not a hidden setting, not a defaults write, not a checkbox in System Settings. A trackpad has one physical click and a two-finger click for the secondary button. Button 3 exists in the event model, but nothing maps a trackpad contact to it.&lt;/p&gt;

&lt;p&gt;That surprises people coming from Linux or from a mouse with a wheel, because middle click is load-bearing in those environments: open a link in a new tab, close a tab, paste a selection, pan a canvas.&lt;/p&gt;

&lt;p&gt;If you want it on a Mac, something has to synthesize the event. Here is what actually works, what fails, and how the plumbing looks if you are building it yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three approaches
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;The catch&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;An input utility (BetterTouchTool, Karabiner-Elements, a dedicated middle-click app)&lt;/td&gt;
&lt;td&gt;Binds button 3 to a gesture, key, or corner&lt;/td&gt;
&lt;td&gt;Free to about $25&lt;/td&gt;
&lt;td&gt;Another background app; synthetic clicks are ignored by some targets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A mouse with a wheel&lt;/td&gt;
&lt;td&gt;A real button 3&lt;/td&gt;
&lt;td&gt;Hardware&lt;/td&gt;
&lt;td&gt;Not the trackpad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A trackpad surface app&lt;/td&gt;
&lt;td&gt;Maps regions and gestures to actions, not mouse buttons&lt;/td&gt;
&lt;td&gt;Varies&lt;/td&gt;
&lt;td&gt;Usually does not emulate button 3 at all&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There is no fourth option. Apple has never shipped a middle-click mapping for the trackpad.&lt;/p&gt;

&lt;h2&gt;
  
  
  What most people actually wanted
&lt;/h2&gt;

&lt;p&gt;Before installing anything, check which job you were doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open a link in a new tab: &lt;code&gt;Command&lt;/code&gt;-click does it in Safari, Chrome, Arc, Firefox, and Orion.&lt;/li&gt;
&lt;li&gt;Close a tab: &lt;code&gt;Command&lt;/code&gt;-W. Reopen: &lt;code&gt;Command&lt;/code&gt;-Shift-T.&lt;/li&gt;
&lt;li&gt;Paste a selection: macOS has no primary-selection buffer. This is the one that genuinely needs button 3 or a clipboard manager.&lt;/li&gt;
&lt;li&gt;Pan a canvas: most Mac apps use space-drag or a two-finger scroll, not middle-drag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two of those four have native shortcuts. If the habit is the only thing missing, the shortcut is cheaper than a utility.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the event actually works
&lt;/h2&gt;

&lt;p&gt;If you are writing the app, the relevant AppKit entry point is &lt;code&gt;otherMouseDown&lt;/code&gt;. The button number for the middle button is 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;override&lt;/span&gt; &lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;otherMouseDown&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="nv"&gt;event&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;NSEvent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;buttonNumber&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// middle button&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To synthesize one, build a &lt;code&gt;CGEvent&lt;/code&gt; and post it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;down&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;CGEvent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;mouseEventSource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;mouseType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;otherMouseDown&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                   &lt;span class="nv"&gt;mouseCursorPosition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;point&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;mouseButton&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;center&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;up&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;CGEvent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;mouseEventSource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;mouseType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;otherMouseUp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                 &lt;span class="nv"&gt;mouseCursorPosition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;point&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;mouseButton&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;center&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;down&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cghidEventTap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;up&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cghidEventTap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two things bite immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permission.&lt;/strong&gt; Posting events into other apps requires Accessibility access. A global monitor for the gesture that triggers it usually needs it too. Without the grant, your code runs and nothing happens, which is the worst failure mode to debug.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Targets that ignore synthetic input.&lt;/strong&gt; Secure input fields suppress event taps, some games read HID directly, and a few apps filter events by source. Your middle click will work in Safari and do nothing in the app you actually cared about. Test there first, not in a demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you are choosing a utility
&lt;/h2&gt;

&lt;p&gt;Pick the gesture last. The trigger is the easy part; the conflicts are what make a trackpad utility annoying.&lt;/p&gt;

&lt;p&gt;A three-finger tap is the usual choice, and it is also the gesture macOS uses for Look Up, and the one many apps use for drag or navigation. A corner click is less discoverable but far less likely to fire while you are selecting text. Whatever you pick, give the gesture exactly one owner: one app, one action.&lt;/p&gt;

&lt;p&gt;Test in three places before you trust it: a browser link, a text field, and the app where you originally wanted it. If it fails in the third, the utility is not the problem; the target is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Need button 3 specifically: an input utility or a mouse.&lt;/li&gt;
&lt;li&gt;Want fewer reaches in the browser: &lt;code&gt;Command&lt;/code&gt;-click and &lt;code&gt;Command&lt;/code&gt;-W cover most of it.&lt;/li&gt;
&lt;li&gt;Want the trackpad to do more in general: a surface app is a better shape than a single mouse button.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I make TrackStudio, a Mac trackpad control surface with edges, corners, custom areas, per-app scenes, and haptics. It deliberately does not emulate a middle click, because that is a different job. The longer version of this post, including the settings paths and the failure cases, is here: &lt;a href="https://trackstudio.xyz/blog/middle-click-mac-trackpad" rel="noopener noreferrer"&gt;https://trackstudio.xyz/blog/middle-click-mac-trackpad&lt;/a&gt;&lt;/p&gt;

</description>
      <category>macos</category>
      <category>productivity</category>
      <category>tools</category>
      <category>design</category>
    </item>
    <item>
      <title>Per-app trackpad scenes: the missing layer in Mac input</title>
      <dc:creator>TrackStudio</dc:creator>
      <pubDate>Tue, 03 Nov 2026 16:24:38 +0000</pubDate>
      <link>https://dev.to/trackstudio/per-app-trackpad-scenes-the-missing-layer-in-mac-input-3ogh</link>
      <guid>https://dev.to/trackstudio/per-app-trackpad-scenes-the-missing-layer-in-mac-input-3ogh</guid>
      <description>&lt;p&gt;Your Mac trackpad is the best input device on the machine, and macOS still treats it as a rectangle for moving a pointer.&lt;/p&gt;

&lt;p&gt;The gestures are global. Three fingers up. Two fingers swipe. Pinch. They work everywhere, which is exactly why they cannot be specific to anything. The same swipe that means "go back" in a browser means nothing in Figma, and the edge that would make a good volume slider is ignored by the system.&lt;/p&gt;

&lt;p&gt;A per-app scene is a different model. Instead of starting with a gesture, you start with the app in front of you and arrange the surface: edges, corners, custom areas, a center gesture. The layout changes when the app changes. A default scene covers everything else.&lt;/p&gt;

&lt;p&gt;I have been building TrackStudio around this model. This post is about the model, not the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why global layouts break
&lt;/h2&gt;

&lt;p&gt;A global layout assumes every app wants the same controls. They do not.&lt;/p&gt;

&lt;p&gt;A browser wants navigation. An editor wants windows and screenshots. A terminal wants restraint. A video editor wants transport and a way back to Mission Control. If the layout never changes, you either build a lowest-common-denominator surface or a surface that is wrong in half your apps.&lt;/p&gt;

&lt;p&gt;The second problem is conflict. Two apps can claim the same gesture, or an app can claim a gesture the utility also wants. Scenes reduce the overlap by giving each app its own map.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a scene actually is
&lt;/h2&gt;

&lt;p&gt;A scene is a saved layout bound to an app. The mechanics are similar across implementations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detect the frontmost app.&lt;/li&gt;
&lt;li&gt;Apply the layout for that app.&lt;/li&gt;
&lt;li&gt;Fall back to a default when there is no match.&lt;/li&gt;
&lt;li&gt;Yield when the app needs the input.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The fallback is the part people forget. If every app needs a scene before the trackpad works, the system is too heavy. Start with a good default, then add scenes only where the default is wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hard parts
&lt;/h2&gt;

&lt;p&gt;Frontmost app detection is cheap. macOS gives you NSWorkspace notifications; the switch itself is not the problem.&lt;/p&gt;

&lt;p&gt;The problems are at the edges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Secure input fields can suppress event taps.&lt;/li&gt;
&lt;li&gt;Accessibility and Input Monitoring permissions decide which actions work.&lt;/li&gt;
&lt;li&gt;Games and remote desktops often capture input directly.&lt;/li&gt;
&lt;li&gt;A layout switch has to feel instant; a visible delay makes the surface feel broken.&lt;/li&gt;
&lt;li&gt;Haptics have to carry information. A detent says a value changed. A tick says an action ran. Decorative haptics become noise.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is exotic. It is the unglamorous work that separates a demo from something you keep using.&lt;/p&gt;

&lt;h2&gt;
  
  
  A worked example: Figma
&lt;/h2&gt;

&lt;p&gt;Figma is a keyboard-first app, so a useful scene stays around the edges of the work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Left edge: brightness, for comparing colors.&lt;/li&gt;
&lt;li&gt;Right edge: volume, if you listen while you work.&lt;/li&gt;
&lt;li&gt;Bottom edge: media scrub, if music is part of your day.&lt;/li&gt;
&lt;li&gt;Top-left corner: Mission Control.&lt;/li&gt;
&lt;li&gt;Top-right corner: screenshot.&lt;/li&gt;
&lt;li&gt;Two small areas: undo and redo.&lt;/li&gt;
&lt;li&gt;Center gesture: command palette, if you prefer a press-and-drag to the keyboard shortcut.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point is not to replace Figma's shortcuts. The point is to remove the reaches around them: the window switch, the screenshot, the brightness change.&lt;/p&gt;

&lt;h2&gt;
  
  
  What not to do
&lt;/h2&gt;

&lt;p&gt;Do not map a destructive action to a single edge tap. Do not put a control where your palm rests. Do not duplicate a shortcut you already type faster. And do not buy a scripting tool for a layout problem, or a layout tool for a scripting problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;The trackpad is not only a gesture surface. It is a layout surface. Once the layout can follow the app, the interesting design question changes from "which gesture should I memorize?" to "which controls belong in this app?"&lt;/p&gt;

&lt;p&gt;That is the layer macOS does not provide. It is also the layer that makes the trackpad feel like hardware instead of a pointer.&lt;/p&gt;




&lt;p&gt;I make TrackStudio, a Mac app built around this model. The longer guide, including the failure cases and a scene checklist, is here: &lt;a href="https://trackstudio.xyz/blog/per-app-trackpad-scenes" rel="noopener noreferrer"&gt;https://trackstudio.xyz/blog/per-app-trackpad-scenes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>macos</category>
      <category>productivity</category>
      <category>design</category>
      <category>swift</category>
    </item>
  </channel>
</rss>
