{"id":805,"date":"2026-07-22T06:30:22","date_gmt":"2026-07-22T06:30:22","guid":{"rendered":"https:\/\/jackharvest.com\/?p=805"},"modified":"2026-09-13T23:04:02","modified_gmt":"2026-09-13T23:04:02","slug":"naturalonbattery-natural-scrolling-battery-mac","status":"publish","type":"post","link":"https:\/\/jackharvest.com\/index.php\/2026\/07\/22\/naturalonbattery-natural-scrolling-battery-mac\/","title":{"rendered":"NaturalOnBattery \u2013 Natural Scrolling on Battery, Classic Scrolling When Plugged In (macOS)"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"128\" height=\"128\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/naturalonbattery-icon.png\" alt=\"NaturalOnBattery icon: an up\/down arrow over a battery on a green-to-teal square\" class=\"wp-image-745\" style=\"width:128px\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">macOS ties natural scrolling to a single global switch in <strong>System Settings \u2192 Trackpad<\/strong>. That\u2019s fine if you only ever use one input device. It\u2019s a hassle if you\u2019re like me: natural, content-follows-your-finger scrolling on the laptop trackpad on the go, and classic wheel-direction scrolling once I\u2019m back at a desk, plugged in, with a real mouse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NaturalOnBattery is a free, open-source menu bar app that makes that switch for you, based on power source. Unplug: natural. Plug in: classic. No more trips to System Settings.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/jackharvest\/NaturalOnBattery\/releases\/latest\">Download for macOS<\/a><\/div>\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/jackharvest\/NaturalOnBattery\">View on GitHub<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Using it<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Click the arrow-and-battery icon in the menu bar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enabled<\/strong> \u2014 turns automatic management on or off. The status line above it always shows what it\u2019s doing, e.g. \u201cNatural scrolling \u2014 on battery.\u201d<\/li>\n\n<li><strong>Mode<\/strong> \u2014 Automatic (the default), or force <em>Always Natural<\/em> \/ <em>Always Classic<\/em>.<\/li>\n\n<li><strong>Launch at Login<\/strong>.<\/li>\n\n<li><strong>Uninstall NaturalOnBattery\u2026<\/strong> \u2014 removes the login item, clears settings and moves the app to the Trash in one click.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installing<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"400\" src=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/naturalonbattery-installer.png\" alt=\"NaturalOnBattery installer window: drag into Applications\" class=\"wp-image-746\" srcset=\"https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/naturalonbattery-installer.png 660w, https:\/\/jackharvest.com\/wp-content\/uploads\/2026\/09\/naturalonbattery-installer-300x182.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Grab the DMG from Releases and drag the app into Applications. It isn\u2019t notarized (no paid developer account behind this), so the first time, right-click the app and choose <strong>Open<\/strong>. That\u2019s the only prompt you\u2019ll see \u2014 it doesn\u2019t need Accessibility or any other privacy permission, because all it does is read the power source and write a standard preference. Requires macOS 13 Ventura or later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How it works<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It listens for power-source changes with <code>IOPSNotificationCreateRunLoopSource<\/code> \u2014 a push notification, not a polling timer \u2014 so it reacts the instant you plug or unplug. On each change it writes <code>com.apple.swipescrolldirection<\/code> in the global preferences domain: the exact same key the \u201cNatural scrolling\u201d checkbox controls. The change takes effect system-wide immediately, no logout needed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is no network code at all. The whole app is a few hundred lines of Swift, and you\u2019re welcome to read every one of them. Tools like BetterTouchTool can do this too, among a thousand other things \u2014 this does exactly one job. MIT licensed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also in the \u201ctiny Mac fixes\u201d department: <a href=\"https:\/\/jackharvest.com\/index.php\/2026\/07\/08\/sidenav-fix-mouse-back-forward-buttons-mac-finder\/\">SideNav<\/a> makes your mouse\u2019s back\/forward buttons work in Finder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Free and open source, and it\u2019s staying that way. If it saved you some time, you can <a href=\"https:\/\/www.buymeacoffee.com\/jackharvest\">buy me a coffee<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>macOS gives you one global natural scrolling switch. NaturalOnBattery flips it for you: natural scrolling on the trackpad when you\u2019re on battery, classic scrolling for your mouse when you\u2019re plugged in at a desk.<\/p>\n","protected":false},"author":1,"featured_media":837,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"NaturalOnBattery \u2013 Auto-Switch Natural Scrolling on Mac","_seopress_titles_desc":"Natural scrolling on battery, classic scrolling on power \u2014 automatically. A tiny free macOS menu bar app for people who switch between trackpad and mouse.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"natural scrolling mouse trackpad separately mac,auto switch natural scrolling mac,natural scrolling battery,disable natural scrolling for mouse only mac","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[78,77],"tags":[86,125,124,122,88,126,123],"class_list":["post-805","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-macos","category-projects","tag-macos","tag-menu-bar-app","tag-mouse","tag-natural-scrolling","tag-open-source","tag-swift","tag-trackpad"],"_links":{"self":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/comments?post=805"}],"version-history":[{"count":2,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/805\/revisions"}],"predecessor-version":[{"id":827,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/posts\/805\/revisions\/827"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/media\/837"}],"wp:attachment":[{"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/media?parent=805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/categories?post=805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jackharvest.com\/index.php\/wp-json\/wp\/v2\/tags?post=805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}