{"id":452,"date":"2026-08-17T15:39:30","date_gmt":"2026-08-17T22:39:30","guid":{"rendered":"https:\/\/dejal.com\/blog\/?p=452"},"modified":"2026-08-17T15:39:12","modified_gmt":"2026-08-17T22:39:12","slug":"introducing-a-testflight-of-time-out-version-3-1","status":"publish","type":"post","link":"https:\/\/dejal.com\/blog\/introducing-a-testflight-of-time-out-version-3-1\/","title":{"rendered":"Introducing a TestFlight of Time Out version 3.1"},"content":{"rendered":"<body><p><\/p>\n<p>I\u2019m pleased to announce a pre-release TestFlight for version 3.1 of <a href=\"https:\/\/dejal.com\/timeout\/\">Time Out<\/a>, my popular break reminder app for Mac. \ud83c\udf89<\/p>\n<p>This update includes several big improvements:<\/p>\n<ul>\n<li>Added an option to keep a break displayed until you click a new <strong>End Break<\/strong> button, with an overtime counter showing how long the break has continued.<\/li>\n<li>Added several fun, appearance-aware menu bar icons, including symbols and activity shapes.<\/li>\n<li>Added <strong>Advanced<\/strong> options to hide or disable commands that could bypass a break.<\/li>\n<li>Added <strong>Messages<\/strong> for occasional tips, feature explanations, announcements, and invitations from Dejal, with brief non-disruptive appearances during breaks.<\/li>\n<li>Added optional <strong>Premium<\/strong> subscriptions and a <strong>Lifetime<\/strong> purchase, alongside the existing non-recurring <strong>Supporter<\/strong> options.<\/li>\n<li>Breaks now wait for mouse or trackpad drag operations to finish before appearing.<\/li>\n<li>And a number of other minor improvements.<\/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>Read on for full details.<\/p>\n<h2>New option to end a break when done<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Show button to end break when done\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-8.png?resize=510%2C228&#038;ssl=1\" alt=\"Show button to end break when done\" width=\"510\" height=\"228\" border=\"0\" loading=\"lazy\"><\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"End Break button\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-7.png?resize=608%2C268&#038;ssl=1\" alt=\"End Break button\" width=\"608\" height=\"268\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added a <b>Show button to end break when done<\/b> checkbox to the <b>Break Appearance<\/b> page.<\/li>\n<li>If enabled, when the break reaches its scheduled duration, it remains displayed instead of fading out automatically.<\/li>\n<li>The control panel shows an <b>End Break<\/b> button; click it when you are ready to finish the break.<\/li>\n<li>The left-hand time label continues to show the scheduled duration, while the right-hand label counts upward, e.g. <code>+35 seconds<\/code>, so you can see how long the break has continued beyond its schedule.<\/li>\n<li>Clicking <b>End Break<\/b> fades out the break as usual.<\/li>\n<li>This option is available as a new reward for recent Time Out supporters.<\/li>\n<\/ul>\n<h2>New icons for the menu bar status item<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Status icons\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-9.png?resize=202%2C535&#038;ssl=1\" alt=\"Status icons\" width=\"202\" height=\"535\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added several new icons for the menu bar status item, as fun indicators of Time Out breaks.<\/li>\n<li>Symbols include a palm tree, umbrella, leaf, cup, pause, and more.<\/li>\n<li>Activity shapes include walking, cardio, strength training, flexibility, etc.<\/li>\n<li>Unlike the app icon and break label icons, these will adapt to the current menu bar appearance.<\/li>\n<\/ul>\n<h2>Optionally hide commands that could bypass a break<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Hide Pause, Reset, Disable, Delete, and\/or Quit commands\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-11.png?resize=404%2C64&#038;ssl=1\" alt=\"Hide Pause, Reset, Disable, Delete, and\/or Quit commands\" width=\"404\" height=\"64\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added <b>Advanced<\/b> options to separately hide or disable the <b>Reset<\/b>, <b>Disable<\/b>, <b>Delete<\/b>, and\/or <b>Quit<\/b> commands.<\/li>\n<li>These join the existing option to hide the <b>Pause<\/b> commands.<\/li>\n<li>These options make it harder to bypass breaks, for people who want a little extra help.<\/li>\n<\/ul>\n<h2>Introducing Messages from Dejal<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Messages page\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-1.png?resize=1023%2C708&#038;ssl=1\" alt=\"Messages page\" width=\"1023\" height=\"708\" border=\"0\" loading=\"lazy\"><\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Tip message\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-2.png?resize=1023%2C708&#038;ssl=1\" alt=\"Tip message\" width=\"1023\" height=\"708\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added a new <b>Messages<\/b> page in the settings window for occasional tips, helpful feature explanations, announcements, and invitations from Dejal.<\/li>\n<li>A brief message may sometimes appear as part of the control panel during a break; it won\u2019t pause, extend, postpone, or otherwise change the break, and the complete message remains available in Settings.<\/li>\n<\/ul>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Welcome to Messages\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage.png?resize=475%2C187&#038;ssl=1\" alt=\"Welcome to Messages\" width=\"475\" height=\"187\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Unread messages are marked, and messages can be searched or marked as read.<\/li>\n<li>Messages can include a <strong>Show Me<\/strong> button, that takes you to the relevant settings page and highlights the control being discussed.<\/li>\n<\/ul>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Green highlight for Show Me\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-10.png?resize=626%2C214&#038;ssl=1\" alt=\"Green highlight for Show Me\" width=\"626\" height=\"214\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>As a new reward for recent Time Out supporters, options are available to disable messages, hide them during breaks, or exclude promotional messages.<\/li>\n<li>Time Out does not show third-party advertising; promotional messages are just very rare mentions of other Dejal apps that you might find useful.<\/li>\n<\/ul>\n<h2>Introducing an optional Premium subscription and Lifetime purchase<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Supporter options\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-5.png?resize=1023%2C708&#038;ssl=1\" alt=\"Supporter options\" width=\"1023\" height=\"708\" border=\"0\" loading=\"lazy\"><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Premium options\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-4.png?resize=1023%2C708&#038;ssl=1\" alt=\"Premium options\" width=\"1023\" height=\"708\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added an <b>automatically recurring subscription<\/b> option, as an alternative to the <b>Supporter<\/b> options.<\/li>\n<li>It works like a normal subscription, unlocking all premium features while subscribed.<\/li>\n<li>The existing non-recurring <strong>Supporter<\/strong> options are still available.<\/li>\n<li>Also added a <b>Lifetime<\/b> purchase option, which keeps all current and future premium features available forever.<\/li>\n<li>The existing trial mechanism is unchanged; a trial will automatically start when any supporter\/premium feature is used.<\/li>\n<li>Trials now more clearly highlight the options being tried with a red highlight.<\/li>\n<li>And of course the basic features of the app can still be used completely free.<\/li>\n<\/ul>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Show button to end break when done\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-6.png?resize=1023%2C708&#038;ssl=1\" alt=\"Show button to end break when done\" width=\"1023\" height=\"708\" border=\"0\" loading=\"lazy\"><\/p>\n<h2>Modernized the break display<\/h2>\n<ul>\n<li>Rewrote the break display using SwiftUI, while retaining compatibility with all existing themes.<\/li>\n<li>The available control buttons are now always centered when some buttons are hidden.<\/li>\n<li>This modernization was the groundwork for the <b>Messages<\/b> and <b>End Break<\/b> enhancements.<\/li>\n<\/ul>\n<h2>Added anonymous analytics to help improve the app<\/h2>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" title=\"Analytics option\" src=\"https:\/\/i0.wp.com\/dejal.com\/blog\/wp-content\/uploads\/2026\/08\/UntitledImage-12.png?resize=436%2C74&#038;ssl=1\" alt=\"Analytics option\" width=\"436\" height=\"74\" border=\"0\" loading=\"lazy\"><\/p>\n<ul>\n<li>Added a checkbox to the <b>Advanced<\/b> page to control sending anonymous analytics to Dejal.<\/li>\n<li>This does not include any personally identifiable information, and doesn\u2019t include any third-party trackers.<\/li>\n<li>It was written by Dejal to provide basic aggregated information like the major OS version and similar values, to help guide future improvements of the app.<\/li>\n<\/ul>\n<h2>But wait, there\u2019s more!<\/h2>\n<ul>\n<li>If the mouse\/trackpad button is down when a break is due, it now waits until the button is released, to avoid interrupting a drag operation.<\/li>\n<li>Added support for URLs like <code>timeout:\/\/break\/micro\/postpone\/2m<\/code> and <code>timeout:\/\/postpone\/2m<\/code>, i.e. postponing a specific break or all breaks by a custom time interval.<\/li>\n<li>Added support for a <code>timeout:\/\/scheduler\/logging\/on<\/code> URL to turn on break scheduler diagnostic logging, and <code>timeout:\/\/scheduler\/logging\/off<\/code> to turn it off again. Leave off unless instructed by Dejal.<\/li>\n<li>Several 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>. Note 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 a pre-release TestFlight for version 3.1 of Time Out, my popular break reminder app for Mac. \ud83c\udf89 This update includes several big improvements: Added an option to keep a break displayed until you click a new End Break button, with an overtime counter showing how long the break has continued. Added [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","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-452","post","type-post","status-publish","format-standard","hentry","category-release","category-time-out"],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts\/452","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=452"}],"version-history":[{"count":1,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts\/452\/revisions"}],"predecessor-version":[{"id":453,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/posts\/452\/revisions\/453"}],"wp:attachment":[{"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/media?parent=452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/categories?post=452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dejal.com\/blog\/wp-json\/wp\/v2\/tags?post=452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}