{"id":380,"date":"2026-03-24T09:35:06","date_gmt":"2026-03-24T16:35:06","guid":{"rendered":"https:\/\/dejal.com\/blog\/?p=380"},"modified":"2026-03-24T09:37:51","modified_gmt":"2026-03-24T16:37:51","slug":"introducing-a-testflight-of-time-out-version-3-0","status":"publish","type":"post","link":"https:\/\/dejal.com\/blog\/introducing-a-testflight-of-time-out-version-3-0\/","title":{"rendered":"Introducing a TestFlight of Time Out version 3.0"},"content":{"rendered":"<body><p><\/p>\n<p>I\u2019m pleased to announce the first pre-release TestFlight for version 3.0 of <a href=\"https:\/\/dejal.com\/timeout\/\">Time Out<\/a>, my popular break reminder app for Mac. \ud83c\udf89<\/p>\n<p>I have been working on this big update off and on for the past couple of years, and it is finally approaching readiness for general release, though I do plan to add a few more features before that.<\/p>\n<p>This update includes several huge improvements:<\/p>\n<ul>\n<li>macOS Tahoe support<\/li>\n<li>Exclusions are now Rules, and more powerful<\/li>\n<li>Added a Duplicate Break command<\/li>\n<li>Enhanced the postpone\/skip control limits option to per break, hour, or day<\/li>\n<li>But wait, there\u2019s more!<\/li>\n<\/ul>\n<p>This pre-release build is available via Apple\u2019s TestFlight. Want to help test it? <a href=\"https:\/\/testflight.apple.com\/join\/qdgseWJX\">Install the TestFlight<\/a>. It is open to all \u2014 but note that it requires macOS Tahoe (26.0 or later).<\/p>\n<p>I would appreciate any help in testing this update. If you experience any issues, or have any suggestions for improvements, please <a href=\"https:\/\/dejal.com\/contact\/?prod=timeout&amp;subj=Time+Out+3.0+TestFlight\">contact me<\/a>.<\/p>\n<p>The data format has changed, but updating will leave the old data intact, so you can freely switch back to the general release if you wish; any changes you make in version 3 won\u2019t affect version 2.<\/p>\n<p>Read on for full details.<\/p>\n<h2>macOS Tahoe support<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Liquid Glass buttons\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/03\/UntitledImage-4.png?resize=1009%2C129&#038;ssl=1\" alt=\"Liquid Glass buttons\" width=\"1009\" height=\"129\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Time Out now requires a minimum of macOS Tahoe (26.0).<\/li>\n<li>Replaced the sidebar and <b>Action<\/b> icons with modern SF Symbols.<\/li>\n<li>Added icons to menus for macOS 26.<\/li>\n<li>The buttons at the top of the window now use the modern Liquid Glass style.<\/li>\n<li>Modernized the color pickers.<\/li>\n<li>Updated <b>Break Actions<\/b> like notifications and the speech synthesizer to the latest technology.<\/li>\n<\/ul>\n<h2>Exclusions are now Rules, and more powerful<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Rules\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/03\/UntitledImage-1.png?resize=1024%2C685&#038;ssl=1\" alt=\"Rules\" width=\"1024\" height=\"685\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>The <b>Exclusions<\/b> page has been renamed <b>Rules<\/b>, since they are now much more flexible.<\/li>\n<li>The <b>Add<\/b> (+) button is now in the top-right corner, and shows a menu of the different kinds of rules that can be added.<\/li>\n<li>Each rule now includes a checkbox to enable or disable it, so you can turn one off without removing it.<\/li>\n<li><b>Application<\/b> rules now show the path under the app name; if it isn\u2019t all visible, hover over the path to reveal the full location (or make the window wider).<\/li>\n<li>App rules also now support \u201cis\u201d \/ \u201cisn\u2019t\u201d, to reverse the \u201copen\u201d \/ \u201cfrontmost\u201d option, e.g. to skip a break if some app isn\u2019t being used.<\/li>\n<li><b>Calendar Events<\/b> rules now group your calendars by account, if you have multiple accounts. And yes, you can now have more than one calendar rule.<\/li>\n<li>A new built-in rule is <b>Fullscreen Active<\/b>, to detect when the frontmost app is fullscreen. Useful when watching videos.<\/li>\n<li><b>Script<\/b>-based rules are now supported too. Time Out can look in the <b>Rules<\/b> folder inside its <b>Application Scripts<\/b> folder, and any scripts there can be added as rules.<\/li>\n<li>Three script-based rules are included initially: <b>Teams Meeting<\/b> and <b>Zoom Meeting<\/b> to detect when actively in a meeting via Teams or Zoom, and <b>Valve Game<\/b> to detect when using a Valve \/ Steam game, since they don\u2019t always appear as normal apps. More scripts will be added over time, and you are welcome to add and\/or contribute your own.<\/li>\n<li>Script rules support \u201cis true\u201d \/ \u201cis false\u201d, so the script result can be used normally or reversed.<\/li>\n<li>The <b>Add<\/b> menu now includes script management items like <b>More\u2026<\/b>, <b>Reveal Scripts<\/b>, and <b>Get More<\/b>, similar to <b>Break Actions<\/b>.<\/li>\n<li>All rules now include a menu for what to do when the rule matches, including \u201cautomatically skip\u201d, \u201cpostpone\u201d by several amounts, and two new actions as follows.<\/li>\n<li>A new action is \u201cignore natural break\u201d. If selected, when a natural break is detected (the Mac is idle), and this rule matches, the natural break will not be taken. Useful when you\u2019re passively watching a video, to make sure you still get breaks.<\/li>\n<li>Another new action is \u201ctreat as natural break\u201d. If selected, when this rule matches, the app will act as though it is idle, even if you\u2019re actively using it. Useful when you\u2019re doing something that is equivalent to a break, like playing a relaxing game instead of working.<\/li>\n<li>The new <b>Fullscreen Active<\/b> and script-based rules, conditions, and natural break actions are all available as new rewards for recent supporters. Try them for an hour at a time, as often as you like.<\/li>\n<li>The status messages in the sidebar are now clearer, e.g. showing reasons like \u201cskipped due to Teams Meeting\u201d or \u201cskipped due to fullscreen rule\u201d.<\/li>\n<\/ul>\n<p>If you create new script-based rules that others might find useful, please <a href=\"https:\/\/dejal.com\/contact\/?prod=timeout&amp;subj=Time+Out+Script+Rule\">share them<\/a>, and I\u2019ll probably bundle them with the app!<\/p>\n<h2>Added a Duplicate Break command<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Duplicate Break\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/03\/UntitledImage-2.png?resize=607%2C362&#038;ssl=1\" alt=\"Duplicate Break\" width=\"607\" height=\"362\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>The <b>File<\/b> menu now includes a <b>Duplicate Break<\/b> command, along with the existing <b>New Break<\/b> command.<\/li>\n<li>The <b>Duplicate Break<\/b> command is only available if a break is selected, and if adding breaks is allowed.<\/li>\n<li>The + button in the window will now duplicate a selected break, or add a new one if none selected.<\/li>\n<\/ul>\n<h2>Enhanced the postpone\/skip control limits option to per break, hour, or day<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Control limits\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/03\/UntitledImage-3.png?resize=525%2C186&#038;ssl=1\" alt=\"Control limits\" width=\"525\" height=\"186\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added pop-up menus after the existing options to limit postponing or skipping a break (on the <b>Break Appearance<\/b> page).<\/li>\n<li>Options now include per break and per hour, in addition to the existing per day.<\/li>\n<li>So for example you can choose to limit yourself to postponing a break only twice before having to take it, to encourage yourself to have more breaks.<\/li>\n<li>Perhaps one of the most popular requests!<\/li>\n<\/ul>\n<h2>Adjusted Reset behavior when From Last Done<\/h2>\n<ul>\n<li>The original description for the <b>From: Last Done<\/b> scheduler option was \u201cLast Done will reset the break after it is completed, so the next break will occur the frequency interval after that. For example, a 10 minute break every 30 minutes will next occur 30 minutes after the break finishes, instead of 30 minutes after it starts (as with the <b>Last Due<\/b> option).\u201d<\/li>\n<li>But a reset has always set the due date to the break frequency minus the break duration, which didn\u2019t match that description.<\/li>\n<li>So now when <b>From<\/b> is <b>Last Done<\/b>, reset will only use the break frequency.<\/li>\n<li>The \u201cwork for\u201d label will also be hidden when <b>From<\/b> is <b>Last Done<\/b>, since the work interval will match the frequency.<\/li>\n<\/ul>\n<h2>Clarified the supporter trial to reduce confusion<\/h2>\n<ul>\n<li>When showing any settings page with supporter rewards being trialed, the info will automatically appear as a reminder.<\/li>\n<li>During a supporter trial, the <b>Support Time Out<\/b> page has a message clarifying the trial, and lists the supporter rewards being tried.<\/li>\n<li>After the trial ends, the <b>Support Time Out<\/b> page lists all of the supporter rewards that have been tried.<\/li>\n<li>Now only automatically shows the <b>Support Time Out<\/b> page once after a trial.<\/li>\n<\/ul>\n<h2>But wait, there\u2019s more!<\/h2>\n<ul>\n<li>The app data has been modernized in preparation for syncing, coming in a future update.<\/li>\n<li>Fixed a shortcut becoming unavailable when deleting a break that used it.<\/li>\n<li>If the <b>Event Monitor<\/b> idle detector is not available, now automatically falls back to <b>Event Source<\/b>.<\/li>\n<li>Improved the reliability of resetting breaks when waking from sleep.<\/li>\n<li>Now shows a red badge next to the <b>Updates<\/b> item in the sidebar after the app has been updated.<\/li>\n<li>Fixed some issues with the <b>Updates<\/b> page.<\/li>\n<li>Fixed a rare crasher with the <b>Statistics<\/b> page.<\/li>\n<li>Numerous other minor improvements.<\/li>\n<\/ul>\n<h2 class=\"_2UlSUuiYR4BRv_FiLxCcu9\">Want to help test it?<\/h2>\n<p class=\"_1qeIAgB0cPwnLhDF9XSiJM\">This pre-release build is available via Apple\u2019s TestFlight. <a href=\"https:\/\/testflight.apple.com\/join\/qdgseWJX\">Install the TestFlight<\/a>. Remember that it requires macOS Tahoe (26.0 or later).<\/p>\n<p class=\"_1qeIAgB0cPwnLhDF9XSiJM\">Once it is in general release, it will be available via the Mac App Store, Setapp, and directly from the Dejal website, as usual.<\/p>\n<p>Again if you experience any issues, or have any suggestions for improvements, please <a href=\"https:\/\/dejal.com\/contact\/?prod=timeout&amp;subj=Time+Out+3.0+TestFlight\">contact me<\/a>.<\/p>\n<p><\/p>\n<\/body>","protected":false},"excerpt":{"rendered":"<p>I\u2019m pleased to announce the first pre-release TestFlight for version 3.0 of Time Out, my popular break reminder app for Mac. \ud83c\udf89 I have been working on this big update off and on for the past couple of years, and it is finally approaching readiness for general release, though I do plan to add a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5,3],"tags":[],"class_list":["post-380","post","type-post","status-publish","format-standard","hentry","category-release","category-time-out"],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts\/380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/comments?post=380"}],"version-history":[{"count":1,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts\/380\/revisions"}],"predecessor-version":[{"id":381,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts\/380\/revisions\/381"}],"wp:attachment":[{"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/media?parent=380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/categories?post=380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/tags?post=380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}