KeepingYouAwake

GitHub

Prevents your Mac from going to sleep.

RAW Doc

Versions/V1.1

Version 1.1: Start at Login & Developer ID

This release adds a "Start at Login" menu item.

- Added Developer ID signing

---

Versions/V1.2.1

Version 1.2.1: AC Power Update

- Fixed an issue where "Start at Login" would crash when clicked multiple times in a row (Fixed by [registered99][1], thank you!)
- Less aggressive awake handling when the MacBook lid is closed by using the caffeinate -di command instead of caffeinate -disu
- You can revert back to the previous behaviour by pasting the following snippet into Terminal.app:
- defaults write info.marcel-dierkes.KeepingYouAwake.PreventSleepOnACPower -bool YES
- ctrl + click will now display the menu

[1]: https://github.com/registered99

---

Versions/V1.2

Version 1.2: Activation Timer

- There are no significant changes since beta1
- Tweaked the experimental (and hidden) notifications

You can enable the notifications preview by pasting the following snippet into Terminal.app:

defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.NotificationsEnabled -bool YES

and to disable it again:

defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.NotificationsEnabled -bool NO

---

Versions/V1.2beta1

Version 1.2beta1: Activation Timer

- Activation timer
- Sparkle integration for updates
- Sparkle will check for updates once a day
- A second beta will follow in the coming days to test automatic updates
- This is beta software. If you notice any issues, please report them here

---

Versions/V1.3.1

Version 1.3.1: Updater and Icon Fixes

- Fixed Sparkle Updates (Broken thanks to App Transport Security in OS X 10.11 and GitHub disabling HTTPS for pages) If you know someone with Version 1.3.0, please let them know that 1.3.1 is available and can be downloaded manually to receive future updates. This is a nightmare come true… 😱
- Fixed rendering for custom icons: They are now rendered as template images
- Added advanced settings to disable the blue highlight rectangle on click. Enable it with (replace YES with NO to disable it again):
- defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.MenuBarIconHighlightDisabled -bool YES

---

Versions/V1.3

Version 1.3: Scripting and Custom Icons Update

- Basic command line interface through URI schemes
- Thank you KyleKing for the suggestion!
- you can activate/deactivate the sleep timer with unlimited time intervals
- you can open KeepingYouAwake from the command line with a custom sleep timer duration
- the seconds, minutes and hours parameters are rounded up to the nearest integer number and cannot be combined at the moment

text
open keepingyouawake://  
open keepingyouawake:///activate # indefinite duration
open keepingyouawake:///activate?seconds=5
open keepingyouawake:///activate?minutes=5
open keepingyouawake:///activate?hours=5
open keepingyouawake:///deactivate

- Support for custom menu bar icons. Just place four images named ActiveIcon.png, [email protected], InactiveIcon.png, [email protected] in your ~/Library/Application Support/KeepingYouAwake/ folder. The recommended size for these images is 22x20 points
- hold down the option key and click inside the "Activate for Duration" menu to set the default duration for the menu bar icon

---

Versions/V1.4.0

Version 1.4.0: Preferences Update

- Added a preferences window that replaces seldom used menu items and surfaces advanced and experimental preferences
- You can now set the default activation duration for the menu bar icon in preferences
- Removed the advanced preference for info.marcel-dierkes.KeepingYouAwake.PreventSleepOnACPower
- Added an advanced preference to allow display sleep while still preventing system sleep ([Issue #25][1])
- Ability to set a battery level on MacBooks where the app will deactivate itself ([Issue #24][2])
- Thank you [timbru31][3] for the suggestion!
- Upgraded to Sparkle 1.14.0 to fix potential security issues

[1]: https://github.com/newmarcel/KeepingYouAwake/issues/25
[2]: https://github.com/newmarcel/KeepingYouAwake/issues/24
[3]: https://github.com/timbru31

---

Versions/V1.4.0beta1

Version 1.4.0beta1: Preferences Beta

- Added a preferences window that replaces seldom used menu items and surfaces advanced and experimental preferences
- You can now set the default activation duration for the menu bar icon in preferences
- Removed the advanced preference for info.marcel-dierkes.KeepingYouAwake.PreventSleepOnACPower
- Added an advanced preference to allow display sleep while still preventing system sleep ([Issue #25][1])
- Ability to set a battery level on MacBooks where the app will deactivate itself ([Issue #24][2])
- Thank you [timbru31][3] for the suggestion!

[1]: https://github.com/newmarcel/KeepingYouAwake/issues/25
[2]: https://github.com/newmarcel/KeepingYouAwake/issues/24
[3]: https://github.com/timbru31

---

Versions/V1.4.1

Version 1.4.1: L10n Update

- Localization support
- German
- French (Issue #51)
- Thank you rei-vilo!
- Korean (Issue #64)
- Thank you Pusnow!
- removed advanced preference to allow the display to sleep (didn't work properly and lead to confusion)
- the info.marcel-dierkes.KeepingYouAwake.AllowDisplaySleep preference was removed
- a similar, more powerful replacement feature will be introduced soon

---

Versions/V1.4.2

Version 1.4.2: Additional Localizations

- support cmd+w and cmd+q keyboard shortcuts in the preferences window (#56)
- preferences now remember the window position
- allow option-click on the menubar icon (#59)
- fixed the incorrect fullscreen behavior of the preferences window (#71), thanks Eitot!
- more localization updates
- Spanish (#70)
- Thank you nbalonso!
- Dutch (#73)
- Thank you Eitot!
- improvements to the French translation by alexandreleroux (#63)
- Danish (#78)
- Thank you JacobSchriver!
- Turkish (#79)
- Thank you durul!
- Chinese (Simplified) (#87)
- Thank you zangyongyi!
- Chinese (Traditional zh-Hant-TW) (#89)
- Thank you passerbyid!
- updated Sparkle to 1.18.1

---

Versions/V1.4.3

Version 1.4.3: Small Improvements

- the icon can be dragged out of the menubar to quit on macOS Sierra and newer (#82, suggested by Eitot)
- support for the keepingyouawake:///toggle action (#96), thanks code918!
- new localizations
- Polish (#90) _Thank you karolgorecki!_
- Portuguese (#94) _Thank you luizpedone!_
- Update German for informal style (#74) _Thank you Eitot!_
- allows Dark Aqua appearance on macOS Mojave

---

Versions/V1.4.3beta1

Version 1.4.3beta1: Small Improvements

- the icon can be dragged out of the menubar to quit on macOS Sierra and newer (#82, suggested by Eitot)
- support for the keepingyouawake:///toggle action (#96), thanks code918!
- new localizations
- Polish (#90) _Thank you karolgorecki!_
- Portuguese (#94) _Thank you luizpedone!_
- Update German for informal style (#74) _Thank you Eitot!_
- allows Dark Aqua appearance on macOS Mojave

---

Versions/V1.5.0

Version 1.5.0: Sandboxed, Hardened & Notarized

<span style="font-weight: bold; color: red;">Please disable <em>Start at login</em> in <em>Preferences</em> before you update. You can also check <a target="_blank" href="https://github.com/newmarcel/KeepingYouAwake/wiki/1.5:-Start-at-Login-Problems">this wiki page</a> for troubleshooting help.</span>

- added an _Updates_ tab to _Preferences_ (#107)
- enabled the _Hardened Runtime_ security feature (#111)
- enabled the _App Sandbox_ security feature (#112)
- custom icons need to be placed in ~/Library/Containers/info.marcel-dierkes.KeepingYouAwake/Data/Documents now and will be migrated during the app update
- _Start at login_ uses a launcher helper app now (#110)
- the previous login item is not compatible anymore and it is recommended to disable _Start at login_ before updating!
- please check this wiki page if you encounter problems
- updated Sparkle to the ui-separation-and-xpc version (#109) (#113)

---

Versions/V1.5.0beta1

Version 1.5.0beta1: Sandboxed, Hardened & Notarized

<span style="font-weight: bold; color: red;">Please disable <em>Start at login</em> in <em>Preferences</em> before you update. You can also check <a target="_blank" href="https://github.com/newmarcel/KeepingYouAwake/wiki/1.5:-Start-at-Login-Problems">this wiki page</a> for troubleshooting help.</span>

- added an _Updates_ tab to preferences (#107)
- enabled the _Hardened Runtime_ security feature (#111)
- enabled the _App Sandbox_ security feature (#112)
- custom icons need to be placed in ~/Library/Containers/info.marcel-dierkes.KeepingYouAwake/Data/Documents now and will be migrated during the app update
- _Start at login_ uses a launcher helper app now (#110)
- the previous login item is not compatible anymore and it is recommended to disable _Start at login_ before updating!
- please check this wiki page if you encounter problems
- updated Sparkle to the ui-separation-and-xpc version (#109)

---

Versions/V1.5.0beta2

Version 1.5.0beta2: Sandboxed, Hardened & Notarized

<span style="font-weight: bold; color: red;">Please disable <em>Start at login</em> in <em>Preferences</em> before you update. You can also check <a target="_blank" href="https://github.com/newmarcel/KeepingYouAwake/wiki/1.5:-Start-at-Login-Problems">this wiki page</a> for troubleshooting help.</span>

- added an _Updates_ tab to preferences (#107)
- enabled the _Hardened Runtime_ security feature (#111)
- enabled the _App Sandbox_ security feature (#112)
- custom icons need to be placed in ~/Library/Containers/info.marcel-dierkes.KeepingYouAwake/Data/Documents now and will be migrated during the app update
- _Start at login_ uses a launcher helper app now (#110)
- the previous login item is not compatible anymore and it is recommended to disable _Start at login_ before updating!
- please check this wiki page if you encounter problems
- updated Sparkle to the ui-separation-and-xpc version (#109) (#113)

Beta 2 fixes a bug that prevents 1.5.0 Beta 1 from downloading updates. Please manually re-download Beta 2 from GitHub if you experience any issues.

---

Versions/V1.5.1

Version 1.5.1: Customizable Activation Durations

- added the ability to customize activation durations in _Preferences_ (#132)
- added an advanced preference to quit the app when the activation duration is over (#133)
- _Thanks jamesgecko for the suggestion!_
- added an Indonesian translation (#137)
- Thank you ibnuh!

Please note: The 1.5.x series of releases will be the last supporting macOS Yosemite and El Capitan. If you see any critical reason for supporting those, please leave a comment on GitHub.

---

Versions/V1.5.2

Version 1.5.2: Allow Display Sleep

- added the ability to allow the display to sleep (#148)
- _Thanks creamelectricart!_

Please note: The 1.5.x series of releases will be the last supporting macOS Yosemite and El Capitan. If you see any critical reason for supporting those, please leave a comment on GitHub.

---

Versions/V1.6.0

Version 1.6.0: Big Sur Update

- raised minimum deployment target to macOS Sierra (#142)
- updated icons using the macOS Big Sur style (#141)
- added support for the arm64 architecture on macOS Big Sur
- created an official website https://keepingyouawake.app/
- added a Russian translation (#147, #155)
- Thank you Kromsator!

Please note: This release requires macOS Sierra or newer, you can continue using version 1.5.2 if you need support for macOS Yosemite or El Capitan.

---

Versions/V1.6.1

Version 1.6.1: Notifications

- added support for notifications, use System Preferences to manage notification settings (#164)
- please note, this feature is only available on macOS 11 or newer; the previous experimental notifications support has been removed
- updated the French translation (#146, #169)
- Thank you alexandreleroux!

---

Versions/V1.6.1beta1

Version 1.6.1beta1: Notifications

- added support for notifications, use System Preferences to manage notification settings (#164)
- please note, this feature is only available on macOS 11 or newer; the previous experimental notifications support has been removed

---

Versions/V1.6.1beta2

Version 1.6.1beta2: Notifications

- added support for notifications, use System Preferences to manage notification settings (#164)
- please note, this feature is only available on macOS 11 or newer; the previous experimental notifications support has been removed
- updated the French translation (#146, #169)
- Thank you alexandreleroux!

---

Versions/V1.6.2

Version 1.6.2: Minor Changes

- updated the Danish translation (#171, #180)
- Thank you JacobSchriver!
- updated the Sparkle update framework to version 2.0 (#178)
- added a Ukrainian translation (#179)
- Thank you gelosi!

---

Versions/V1.6.2beta1

Version 1.6.2beta1: Minor Changes

- updated the Danish translation (#171)
- Thank you JacobSchriver!
- updated the Sparkle update framework to version 2.0 (#178)

---

Versions/V1.6.2beta2

Version 1.6.2beta2: Minor Changes

- updated the Danish translation (#171)
- Thank you JacobSchriver!
- updated the Sparkle update framework to version 2.0 (#178)
- added a Ukrainian translation (#179)
- Thank you gelosi!

---

Versions/V1.6.3

Version 1.6.3: Low Power Mode

- added Battery preferences with support for Low Power Mode on compatible Macs (#181)
- added a Japanese translation (#182)
- Thank you hiroto-t!
- updated the Turkish translation (#183)
- Thank you egemenu!
- added an Italian translation (#184)
- Thank you gmcinalli!
- added an advanced preference to auto-activate when an external screen is connected (#186, #84)
- Thank you sturza!
- added an advanced preference to deactivate while another user account is active

Please note: The 1.6.3 release does not support macOS Sierra anymore. You can continue using version 1.6.2 on this version of macOS.

---

Versions/V1.6.3beta1

Version 1.6.3beta1: Low Power Mode

- added Battery preferences with support for Low Power Mode on compatible Macs (#181)
- added a Japanese translation (#182)
- Thank you hiroto-t!
- updated the Turkish translation (#183)
- Thank you egemenu!
- added an Italian translation (#184)
- Thank you gmcinalli!
- added an advanced preference to auto-activate when an external screen is connected (#186, #84)
- Thank you sturza!
- added an advanced preference to deactivate while another user account is active

Please note: The 1.6.3 release does not support macOS Sierra anymore. You can continue using version 1.6.2 on this version of macOS.

---

Versions/V1.6.4

Version 1.6.4: Ventura Login Item and URL Scheme Fix

- shows in the "Login Items" > "Open at Login" section in System Settings on macOS Ventura if "Start at Login" is enabled
- fixes a regression introduced in 1.6.3 where the keepingyouawake:///activate URL scheme stopped working as expected (#193)

---

Versions/V1.6.5

Version 1.6.5: Translation Updates

- updated the Traditional Chinese translation (#198)
- Thank you YuerLee!
- updated the French translation (#201)
- Thank you tmuguet!
- removed the advanced setting "Disable menu bar icon highlight color", this behavior can still be enabled using the defaults command: defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.MenuBarIconHighlightDisabled -bool YES

---

Versions/V1.6.5beta1

Version 1.6.5beta1: Translation Updates

- updated the Traditional Chinese translation (#198)
- Thank you YuerLee!
- updated the French translation (#201)
- Thank you tmuguet!
- removed the advanced setting "Disable menu bar icon highlight color", this behavior can still be enabled using the defaults command: defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.MenuBarIconHighlightDisabled -bool YES

---

Versions/V1.6.6

Version 1.6.6: 10th Anniversary Update

- added Slovak translations (#209)
- Thank you Tomáš Švec!
- updated the Turkish translations (#212)
- Thank you egesucu!
- updated the Chinese translations (#213)
- Thank you LZhenHong!
- updated the Russian translations (#216)
- Thank you user334!
- updated the Ukrainian translations (#218)
- Thank you gelosi!
- updated Sparkle to v2.6.4 (#214)

This update approximately marks ten years of development of KeepingYouAwake. I didn't expect this small hobby project to last for such a long time, but I'm very grateful for all contributors and users who find it useful.

Thank you for using KeepingYouAwake,
Marcel Dierkes

---

Versions/V1.6.6beta1

Version 1.6.6beta1: Translation Updates

- added Slovak translations (#209)
- Thank you Tomáš Švec!
- updated the Turkish translations (#212)
- Thank you egesucu!
- updated the Chinese translations (#213)
- Thank you LZhenHong!
- updated Sparkle to v2.6.4 (#214)

---

Versions/V1.6.6beta2

Version 1.6.6beta2: Translation Updates

- added Slovak translations (#209)
- Thank you Tomáš Švec!
- updated the Turkish translations (#212)
- Thank you egesucu!
- updated the Chinese translations (#213)
- Thank you LZhenHong!
- updated the Russian translations (#216)
- Thank you user334!
- updated the Ukrainian translations (#218)
- Thank you gelosi!
- updated Sparkle to v2.6.4 (#214)

---

Versions/V1.6.7

Version 1.6.7: External Display Fixes and Translation Updates

- fixed two issues with the "Activate when an external display is connected" advanced setting:
- fixed an issue where multiple caffeinate tasks were spawned when an external display was connected (#203)
- fixed an issue where a mirrored display was not treated internally as external display (#210)
- fixed an issue where the menu bar icon did not update properly when the URL scheme was used to activate or deactivate (#224)
- updated the Spanish translations (#223)
- Thank you agusbattista!
- added Vietnamese translations (#222)
- Thank you ksajolaer!
- added Hindi translations (#232)
- Thank you AnandChowdhary!
- added Greek and Finnish translations (#230)
- Thank you ziz1zaza!
- since macOS 26 Tahoe allows hiding the app's menu bar icon, the settings window was extended to handle this situation better:
- the settings window will now be presented when the app is launched again while running
- added a Quit button to the General settings
- updated the app icon to not be trapped in a grey box on macOS 26 Tahoe

---

Versions/V1.6.7beta1

Version 1.6.7beta1: External Display Fixes and Translation Updates

- fixed two issues with the "Activate when an external display is connected" advanced setting:
- fixed an issue where multiple caffeinate tasks were spawned when an external display was connected (#203)
- fixed an issue where a mirrored display was not treated internally as external display (#210)
- fixed an issue where the menu bar icon did not update properly when the URL scheme was used to activate or deactivate (#224)
- updated the Spanish translations (#223)
- Thank you agusbattista!
- added Vietnamese translations (#222)
- Thank you ksajolaer!
- added Hindi translations (#232)
- Thank you AnandChowdhary!
- added Greek and Finnish translations (#230)
- Thank you ziz1zaza!
- since macOS 26 Tahoe allows hiding the app's menu bar icon, the settings window was extended to handle this situation better:
- the settings window will now be presented when the app is launched again while running
- added a Quit button to the General settings

---

Documentation/Automation

KeepingYouAwake Automation

URL Scheme

KeepingYouAwake supports the keepingyouawake:/// URL scheme to activate and deactive the app externally.

activate

text
keepingyouawake:///activate

Activates and prevents sleep for the configured default duration.

#### activate?seconds=X

text
keepingyouawake:///activate?seconds=30

Activates and prevents sleep for exactly 30 seconds.

#### activate?minutes=X

text
keepingyouawake:///activate?minutes=5

Activates and prevents sleep for exactly 5 minutes.

#### activate?hours=X

text
keepingyouawake:///activate?hours=2

Activates and prevents sleep for exactly 2 hours.

_Please note: the seconds, minutes and hours parameters cannot be combined at the moment._

deactivate

text
keepingyouawake:///deactivate

Deactivates and allows the system to go to sleep.

toggle

text
keepingyouawake:///toggle

Toggles the activation state between activated and deactivated.

Command Line Usage

The URL scheme can be used together with the open command to control KeepingYouAwake from the command line.

text
open -g "keepingyouawake:///activate"
open -g "keepingyouawake:///activate?seconds=30"
open -g "keepingyouawake:///deactivate"
open -g "keepingyouawake:///toggle"

---

Documentation/Custom Icons

Custom Icons

KeepingYouAwake 1.2.2beta2 and newer allows the use of custom icons.

Usage

Just place four images named

- ActiveIcon.png (22x20px)
- [email protected] (44x40px)
- InactiveIcon.png (22x20px)
- [email protected] (44x40px)

in your ~/Library/Containers/info.marcel-dierkes.KeepingYouAwake/Data/Documents folder. These images are treated as template images, so it's recommended to only use black as base color and different opacity values for e.g. shadows or lighter areas.

Please see the example PNG image files in the "Custom Icons" folder.

---

Older versions (< 1.5.0) without App Sandbox support require the icons to be located in ~/Library/Application Support/KeepingYouAwake/.

---

CHANGELOG

KeepingYouAwake

Changelog

v1.6.9

- raised minimum deployment target to macOS 12 _(sadly, this is an external requirement by Apple's Xcode developer tools)_

v1.6.8 (2025-09-12)

- added a light/dark/clear app icon for macOS 26 Tahoe

v1.6.7 (2025-07-18)

- fixed two issues with the "Activate when an external display is connected" advanced setting:
- fixed an issue where multiple caffeinate tasks were spawned when an external display was connected (#203)
- fixed an issue where a mirrored display was not treated internally as external display (#210)
- fixed an issue where the menu bar icon did not update properly when the URL scheme was used to activate or deactivate (#224)
- updated the Spanish translations (#223)
- Thank you agusbattista!
- added Vietnamese translations (#222)
- Thank you ksajolaer!
- added Hindi translations (#232)
- Thank you AnandChowdhary!
- added Greek and Finnish translations (#230)
- Thank you ziz1zaza!
- since macOS 26 Tahoe allows hiding the app's menu bar icon, the settings window was extended to handle this situation better:
- the settings window will now be presented when the app is launched again while running
- added a Quit button to the General settings
- updated the app icon to not be trapped in a grey box on macOS 26 Tahoe

v1.6.6 (2024-10-26)

- added Slovak translations (#209)
- Thank you Tomáš Švec!
- updated the Turkish translations (#212)
- Thank you egesucu!
- updated the Chinese translations (#213)
- Thank you LZhenHong!
- updated the Russian translations (#216)
- Thank you user334!
- updated the Ukrainian translations (#218)
- Thank you gelosi!
- updated Sparkle to v2.6.4 (#214)

v1.6.5 (2023-10-02)

- updated the Traditional Chinese translation (#198)
- Thank you YuerLee!
- updated the French translation (#201)
- Thank you tmuguet!
- removed the advanced setting "Disable menu bar icon highlight color", this behavior can still be enabled using the defaults command: defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.MenuBarIconHighlightDisabled -bool YES

v1.6.4 (2022-11-14)

- shows in the "Login Items" > "Open at Login" section in System Settings on macOS Ventura if "Start at Login" is enabled
- fixes a regression introduced in 1.6.3 where the keepingyouawake:///activate URL scheme stopped working as expected (#193)

v1.6.3 (2022-10-30)

- added Battery preferences with support for Low Power Mode on compatible Macs (#181)
- added a Japanese translation (#182)
- Thank you hiroto-t!
- updated the Turkish translation (#183)
- Thank you egemenu!
- added an Italian translation (#184)
- Thank you gmcinalli!
- added an advanced preference to auto-activate when an external screen is connected (#186, #84)
- Thank you sturza!
- added an advanced preference to deactivate while another user account is active

Please note: The 1.6.3 release does not support macOS Sierra anymore. You can continue using version 1.6.2 on this version of macOS.

v1.6.2 (2022-02-20)

- updated the Danish translation (#171, #180)
- Thank you JacobSchriver!
- updated the Sparkle update framework to version 2.0 (#178)
- added a Ukrainian translation (#179)
- Thank you gelosi!

v1.6.1 (2021-07-24)

- added support for notifications, use System Preferences to manage notification settings (#164)
- please note, this feature is only available on macOS 11 or newer; the previous experimental notifications support has been removed
- updated the French translation (#146, #169)
- Thank you alexandreleroux!

v1.6.0 (2020-11-06)

- raised minimum deployment target to macOS Sierra (#142)
- updated icons using the macOS Big Sur style (#141)
- added support for the arm64 architecture on macOS Big Sur
- created an official website https://keepingyouawake.app/
- added a Russian translation (#147, #155)
- Thank you Kromsator!

v1.5.2 (2020-07-04)

- added the ability to allow the display to sleep (#148)
- _Thanks creamelectricart!_

v1.5.1 (2019-12-26)

- added the ability to customize activation durations in _Preferences_ (#132)
- added an advanced preference to quit the app when the activation duration is over (#133)
- _Thanks jamesgecko for the suggestion!_
- added an Indonesian translation (#137)
- Thank you ibnuh!

Please note: The 1.5.x series of releases will be the last supporting macOS Yosemite and El Capitan. If you see any critical reason for supporting those, please leave a comment on GitHub.

v1.5.0 (2019-01-20)

- added an _Updates_ tab to _Preferences_ (#107)
- enabled the _Hardened Runtime_ security feature (#111)
- enabled the _App Sandbox_ security feature (#112)
- custom icons need to be placed in ~/Library/Containers/info.marcel-dierkes.KeepingYouAwake/Data/Documents now and will be migrated during the app update
- _Start at login_ uses a launcher helper app now (#110)
- the previous login item is not compatible anymore and it is recommended to disable _Start at login_ before updating!
- please check this wiki page if you encounter problems
- updated Sparkle to the ui-separation-and-xpc version (#109) (#113)

v1.4.3 (2018-08-15)

- the icon can be dragged out of the menubar to quit on macOS Sierra and newer (#82, suggested by Eitot)
- support for the keepingyouawake:///toggle action (#96), thanks code918!
- new localizations
- Polish (#90) _Thank you karolgorecki!_
- Portuguese (#94) _Thank you luizpedone!_
- Update German for informal style (#74) _Thank you Eitot!_
- allows Dark Aqua appearance on macOS Mojave

v1.4.2 (2017-09-16)

- support cmd+w and cmd+q keyboard shortcuts in the preferences window (#56)
- preferences now remember the window position
- allow option-click on the menubar icon (#59)
- fixed the incorrect fullscreen behavior of the preferences window (#71), thanks Eitot!
- more localization updates
- Spanish (#70)
- Thank you nbalonso!
- Dutch (#73)
- Thank you Eitot!
- improvements to the French translation by alexandreleroux (#63)
- Danish (#78)
- Thank you JacobSchriver!
- Turkish (#79)
- Thank you durul!
- Chinese (Simplified) (#87)
- Thank you zangyongyi!
- Chinese (Traditional zh-Hant-TW) (#89)
- Thank you passerbyid!
- updated Sparkle to 1.18.1

v1.4.1 (2016-12-30)

- Localization support
- German
- French (Issue #51)
- Thank you rei-vilo!
- Korean (Issue #64)
- Thank you Pusnow!
- removed advanced preference to allow the display to sleep (didn't work properly and lead to confusion)
- the info.marcel-dierkes.KeepingYouAwake.AllowDisplaySleep preference was removed
- a similar, more powerful replacement feature will be introduced soon

v1.4 (2016-04-16)

- Added a preferences window that replaces seldom used menu items and surfaces advanced and experimental preferences
- You can now set the default activation duration for the menu bar icon in preferences
- Removed the advanced preference for info.marcel-dierkes.KeepingYouAwake.PreventSleepOnACPower
- Added an advanced preference to allow display sleep while still preventing system sleep (Issue #25)
- Ability to set a battery level on MacBooks where the app will deactivate itself (Issue #24)
- Thank you timbru31 for the suggestion!
- Upgraded to Sparkle 1.14.0 to fix potential security issues

v1.3.1 (2015-12-08)

- Fixed Sparkle Updates (Broken thanks to App Transport Security in OS X 10.11 and GitHub disabling HTTPS for pages) If you know someone with Version 1.3.0, please let them know that 1.3.1 is available and can be downloaded manually to receive future updates. This is a nightmare come true… 😱
- Fixed rendering for custom icons: They are now rendered as template images
- Added advanced settings to disable the blue highlight rectangle on click. Enable it with (replace YES with NO to disable it again):

defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.MenuBarIconHighlightDisabled -bool YES

v1.3 (2015-11-02)

- Basic command line interface through URI schemes
- Thank you KyleKing for the suggestion!
- you can activate/deactivate the sleep timer with unlimited time intervals
- you can open KeepingYouAwake from the command line with a custom sleep timer duration
- the seconds, minutes and hours parameters are rounded up to the nearest integer number and cannot be combined at the moment

open keepingyouawake://
open keepingyouawake:///activate # indefinite duration
open keepingyouawake:///activate?seconds=5
open keepingyouawake:///activate?minutes=5
open keepingyouawake:///activate?hours=5
open keepingyouawake:///deactivate

- Support for custom menu bar icons. Just place four images named ActiveIcon.png, [email protected], InactiveIcon.png, [email protected] in your ~/Library/Application Support/KeepingYouAwake/ folder. The recommended size for these images is 22x20 pts
- hold down the option key and click inside the "Activate for Duration" menu to set the default duration for the menu bar icon


v1.2.1 (2015-01-11)

- Fixed an issue where "Start at Login" would crash when clicked multiple times in a row (Fixed by registered99, thank you!)
- Less aggressive awake handling when the MacBook lid is closed by using the caffeinate -di command instead of caffeinate -disu
- You can revert back to the previous behaviour by pasting the following snippet into Terminal.app:

defaults write info.marcel-dierkes.KeepingYouAwake.PreventSleepOnACPower -bool YES

- ctrl + click will now display the menu

v1.2 (2014-11-23)


- There are no significant changes since beta1
- Tweaked the experimental (and hidden) notifications
- You can enable the notifications preview by pasting the following snippet into Terminal.app:

defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.NotificationsEnabled -bool YES

- and to disable it again:

defaults write info.marcel-dierkes.KeepingYouAwake info.marcel-dierkes.KeepingYouAwake.NotificationsEnabled -bool NO


v1.2beta1


- Activation timer
- Sparkle integration for updates
- Sparkle will check for updates once a day
- A second beta will follow in the coming days to test automatic updates
- This is beta software. If you notice any issues, please report them here

v1.1 (2014-11-13)


- Signed with Developer ID
- Start At Login menu item added

v1.0 (2014-10-19)


- Initial Release
- Keeps your Mac awake

---

CONTRIBUTING

Contribution Guidelines


Thank you for considering a contribution to KeepingYouAwake! These guidelines are intended to help with avoiding rejection of code contributions and rework requests.

Localizations


The preferred way of updating or adding a localization for KeepingYouAwake is by creating a pull request that only contains the modified .xliff files within a .xcloc localization catalog. Updated translations can be exported from within _Xcode_ as an *.xcloc catalog. Updated translations should be located in Localizations/KeepingYouAwake/<language>.xcloc/Localized Contents/<language>.xliff.

Localizations will usually be imported back into the app by the maintainer after the pull request is merged or after a major _Xcode_ version is released. The project configuration for a new language will also be updated by the maintainer after the pull request is merged. A pull request for a localization update should be restricted to a single language and should not include unrelated code changes.

It's not forbidden to create a pull request with modified *.xcstrings files, it's just not preferred and should be avoided.

Credits (Optional)


The maintainer of this project likes to credit anyone who adds a new language or contributes major translation updates. This is done using the Credits.rtf file, which shows up in the "About" tab of the app settings. If you want to be credited, a line in the following format can be included in the pull request itself or the pull request description:

text
[language] Translation
[existing name or username] <email or URL as clickable link>
[your name or username] <email or URL as clickable link>

_(just follow the pattern of the other translation credits)_

Code Style and Programming Language


There are no strict up-to-date code style rules for this project. Please follow the code style of existing code, especially when it comes to brackets ({}, ()), spaces and line breaks. Please use the Auto helper macro for type inference of local variables, which is non-standard in Objective-C.

Objective-C, C and C++ are the preferred languages of this project and at the time of writing it is not considered to convert or accept code in any other programming language.

Features, Structural Changes and UI Modifications


If you plan working on concrete features, structural changes to the setup of the project or any UI modifications, please start by creating a GitHub issue first as a proposal. This is the safest way to avoid pull request rejection or long feedback cycles.

Generated Or Assisted AI Code


AI-assisted or generated code changes and pull requests are generally not accepted and will be closed. This is a project by humans for humans and its features and source code are entirely curated by actual people. The functionality of KeepingYouAwake can be trivially copied, so the curation aspect is integral to the project.

If you only use AI tools to help with writing the issue or pull request description, please disclose this within the description. It's generally preferred to be brief in those cases and avoid needlessly wordy generated text.

---

A pull request can always be closed. The maintainer of this project aims to provide a reason when this happens, because it's always respected that time and energy went into the creation of the pull request.


_Thank you very much!_

Marcel Dierkes

Creator and Maintainer of KeepingYouAwake

---

README

KeepingYouAwake

KeepingYouAwake is a small menu bar utility for macOS (Version 10.13 and newer) that can prevent your Mac from entering sleep mode for a predefined duration or as long as it is activated.

https://keepingyouawake.app/

Installation

Download the latest version here.

or install it via cask: brew install --cask keepingyouawake.

<img src="./Extras/[email protected]" width="500" />

How does it work?

The app is a small wrapper around Apple's caffeinate command line utility. All current versions of macOS ship with this tool by default. You can read the manual page here.

Does it work on a MacBook with a closed lid?

No. Because of _(sensible)_ macOS limitations and out of thermal considerations, KeepingYouAwake will only prevent sleep on desktop Macs and portable Macs with an open lid.

Is this dangerous?

This utility will not harm your Mac because it is based on an official command line tool by Apple. BUT I cannot guarantee anything, so use this tool AT YOUR OWN RISK.

Inspired by Caffeine

KeepingYouAwake is inspired by Caffeine from Lighthead Software. I used it for many years, but sadly it hasn't been updated in a while. Eventually in 2014 I decided to build a replacement for myself that was optimized for macOS Yosemite and used the caffeinate command line tool under the hood.

Still using old macOS versions?

- Version 1.6.8 is the last release that supports macOS Big Sur and older (11.0, 10.15, 10.14, 10.13)
- Version 1.6.2 is the last release that supports macOS Sierra (10.12)
- Version 1.5.2 is the last release that supports macOS Yosemite (10.10) and El Capitan (10.11)

Contribution Guidelines

If you plan to contribute to the project, I recommend taking a look at the Contribution Guidelines. These should cover common questions and will be updated over time.

License

Everything in this project is licensed under the MIT license. Provided image assets are also covered by this license.

Although it's not required please do not redistribute forked versions of the app with the same name and icon. Thanks!

---