<?xml version='1.0' encoding='utf-8'?>
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
  <channel>
    <title>TouchGuard</title>
    <link>https://touchguard.hornmicro.com/appcast.xml</link>
    <description>TouchGuard updates</description>
    <language>en</language>
    <item>
      <title>Version 2.0.2</title>
      <pubDate>Mon, 12 Oct 2026 10:34:28 GMT</pubDate>
      <sparkle:version>64</sparkle:version>
      <sparkle:shortVersionString>2.0.2</sparkle:shortVersionString>
      <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
      <description>&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;After you switch TouchGuard on in System Settings, the permission window stays open and confirms that TouchGuard is on, shows its new menu bar icon, and says you can close System Settings.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;When the daily update check finds a new version, the update window no longer opens unseen behind other apps. If TouchGuard can't show it in front, the update waits at the top of its menu as &lt;b&gt;Update Available&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://github.com/sjhorn/TouchGuard/releases/download/v2.0.2/TouchGuard-2.0.2.dmg" type="application/octet-stream" sparkle:edSignature="BY5/AS9iBoVstUzsyZA0kBdwsMDpeJtftCstg18L+/Ju5t0AEyyxJYEOft7UOOXnt151+BK6VMR/ZbNTsrouCQ==" length="1479503" />
    </item>
    <item>
      <title>Version 2.0.1</title>
      <pubDate>Mon, 12 Oct 2026 07:13:38 GMT</pubDate>
      <sparkle:version>59</sparkle:version>
      <sparkle:shortVersionString>2.0.1</sparkle:shortVersionString>
      <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
      <description>&lt;h3&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;On first launch, the permission window could open behind the app TouchGuard was launched from (for example Finder), so it was easy to miss. It now always opens in front.&lt;/li&gt;
&lt;li&gt;Clicking the permission window's button opened System Settings and macOS's own permission prompt at the same time, leaving the prompt stranded behind Settings. The button is now &lt;b&gt;Continue&lt;/b&gt;: it asks for one permission at a time and opens System Settings only if macOS doesn't show its prompt.&lt;/li&gt;
&lt;li&gt;In the Mac App Store version, switching on a permission in System Settings wasn't noticed until TouchGuard was restarted, so the permission window waited forever. TouchGuard now notices straight away and restarts itself once to apply it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The permission window shows a checklist of the permissions TouchGuard needs and asks for the next one by itself.&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://github.com/sjhorn/TouchGuard/releases/download/v2.0.1/TouchGuard-2.0.1.dmg" type="application/octet-stream" sparkle:edSignature="FLYgPkTOyu7FCT+qRHxKV0oGLUuQ5bEorfxt5QuEiaAdDhHcakT5BEYnYoZ4RWDKBw/g67BWgDT0MpgJsryeDw==" length="1455793" />
    </item>
    <item>
      <title>Version 2.0.0</title>
      <pubDate>Tue, 06 Oct 2026 16:51:04 GMT</pubDate>
      <sparkle:version>39</sparkle:version>
      <sparkle:shortVersionString>2.0.0</sparkle:shortVersionString>
      <sparkle:minimumSystemVersion>14.0</sparkle:minimumSystemVersion>
      <description>&lt;p&gt;A rewrite in Swift, with a menu bar app.&lt;/p&gt;
&lt;h3&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Menu bar app with an on/off toggle, delay presets and a custom delay slider (50–1000 ms), a blocked-click counter, Launch at Login and a global shortcut (⌃⌥⌘T).&lt;/li&gt;
&lt;li&gt;First-launch onboarding that explains the permission and closes by itself once it's granted.&lt;/li&gt;
&lt;li&gt;Automatic updates with Sparkle in the download version.&lt;/li&gt;
&lt;li&gt;Developer ID signed and notarised DMG, and a sandboxed Mac App Store version.&lt;/li&gt;
&lt;li&gt;Shows when another app's secure input (a password field, a password manager or a terminal's Secure Keyboard Entry) stops TouchGuard from seeing typing, with a link to the fix.&lt;/li&gt;
&lt;li&gt;Diagnostic logging (&lt;code&gt;log stream --predicate 'subsystem == "com.hornmicro.TouchGuard"'&lt;/code&gt;). It records event types only, never which keys.&lt;/li&gt;
&lt;li&gt;Privacy manifest. TouchGuard collects no data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Needs Accessibility permission instead of &lt;code&gt;sudo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The event tap is turned back on at once when macOS disables it, and a watchdog checks it every 2 seconds. Blocking no longer stops silently. If the permission is removed while it's running, the tap is removed instead of stalling input.&lt;/li&gt;
&lt;li&gt;A drag that started before you typed always gets its mouse-up, so it can't get stuck.&lt;/li&gt;
&lt;li&gt;The command-line tool keeps the 1.x options (&lt;code&gt;-time&lt;/code&gt;, &lt;code&gt;-nodebug&lt;/code&gt;, &lt;code&gt;-TapEnableMsg&lt;/code&gt;, &lt;code&gt;-TapDisableMsg&lt;/code&gt;, &lt;code&gt;-version&lt;/code&gt;) and is included in the app at &lt;code&gt;Contents/Helpers/touchguard&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Requires macOS 14 or later.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The C implementation. It's kept in history under the tag &lt;code&gt;legacy-final&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://github.com/sjhorn/TouchGuard/releases/download/v2.0.0/TouchGuard-2.0.0.dmg" type="application/octet-stream" sparkle:edSignature="37PED5Whmzu6Jf+2iCmAREDzZZK7ayAL9JMISgUkGt/GDXszTQ5+1g2/+Z5q7rFaIzpX57ZcIWxCz4NaTVDGCA==" length="1420505" />
    </item>
  </channel>
</rss>