запрет сна для Mac
обновлено · автор Anton Shakirov
долгая загрузка, рендер, сборка, звонок на внешнем мониторе. Mac не знает, что всё это важно, и гасит экран на самом интересном месте. hop не даёт ему уснуть ровно столько, сколько вы сказали, и возвращает сон в ту же секунду, как вы закончили.

| what it is | keep awake inside hop, a menu bar app for macOS |
|---|---|
| price | free — no trial, no pro tier, no account |
| licence | MIT, source on GitHub |
| requires | macOS 14 or later, Apple silicon or Intel |
| works offline | yes |
| data sent anywhere | none |
когда Mac нельзя давать уснуть
- загрузка или выгрузка, которая должна досчитаться без вас
- рендер, сборка или долгий экспорт, над которым вы не сидите
- презентация, где гаснущий экран перед залом — отдельный сорт мучения
- фильм на внешнем экране, с закрытой крышкой ноутбука
- всё, что идёт по ssh и обрывается, стоит машине задремать
чаще всего это долгий экспорт: видео, которое должно уложиться в ограничение по размеру, считается столько, сколько считается, а Mac задрёмывает на полпути. сжать видео для reels и shorts
бесплатные способы не дать Mac уснуть
это не спор платного с бесплатным, и делать вид, что спор, было бы нечестно. несколько бесплатных приложений умеют ровно это и умеют хорошо, а в самой macOS для этого есть команда. загвоздка в том, что держат они разное, и спотыкаются люди как раз о различия.
какой флаг caffeinate вам на самом деле нужен
`caffeinate` лежит в /usr/bin/caffeinate, и ставить его не надо. запущенный без ключей, он мешает только засыпанию по бездействию, больше ничему. `-d` держит экран, `-i` — сон по бездействию, `-m` — диск, `-s` — системный сон, но `-s` действует только от сети, а на батарее молча не делает ничего.
`-t` принимает время в секундах, а не в минутах, и игнорируется целиком, если вы передали caffeinate программу для запуска. флаг, который большинству и нужен, но до которого никто не доходит, — `-w <pid>`: он держит, пока не завершится процесс с этим pid, и это честный способ прикрыть задачу, длину которой заранее не знаешь.
чего не умеет ни один из них — пережить закрытую крышку. caffeinate просит macOS не задремать самой, а закрытая крышка — это не «задремать самой».
недокументированный флаг pmset, который прилипает
есть ещё один переключатель, и из-за него вопрос возвращается снова и снова: `sudo pmset -a disablesleep 1`. он правда не даёт Mac уснуть с закрытой крышкой и без внешнего экрана — тот самый случай, в котором macOS иначе отказывает наотрез.
и он недокументирован в обе стороны. в `man pmset` слова `disablesleep` нет вовсе, а `pmset -g` возвращает его под другим именем — `SleepDisabled`, в блоке «System-wide power settings» сверху. то, что задаёшь, и то, что читаешь, пишется по-разному, и ни одного, ни другого в руководстве нет. проверено на macOS 26.6.2.
дело не в том, что кто-то один невнимательно читал. самый подробный публичный разбор pmset идёт по настройкам одну за другой и этого флага тоже не называет (страница английская). The Eclectic Light Company — power management in detail
и он прилипает. перезагрузку он переживает и снимается только руками, командой `sudo pmset -a disablesleep 0`. поставили на один вечер, забыли — и Mac больше не засыпает никогда, в том числе те часы, что он едет в сумке с закрытой крышкой.
чем платит бесплатный путь
за столом, с задачей на час, хватает `caffeinate -t 3600`. хватает и любого бесплатного однокнопочного приложения, которое уже стоит у вас в строке меню. по самой способности не дать Mac уснуть всё это не лучше и не хуже hop, и менять инструмент ради этого не стоит.
платить приходится за другое. первое — то, что нужно знать до начала: какой флаг какой сон держит, что один из них на батарее мёртв, что таймаут считается в секундах, что закрытую крышку не покрывает ни один, а тот, который покрывает, в руководстве не описан. второе — ни у чего на бесплатном пути нет встроенного конца. caffeinate заканчивается, когда закрывается окно или завершается процесс; флаг pmset — когда вы про него вспомните. ни тому, ни другому нельзя сказать «держи два часа, потом отпусти».
как это устроено в hop
один клик, без пароля, и срок на ваш выбор: пятнадцать минут, восемь часов или пока не выключите. экран при этом может оставаться включённым, а может гаснуть, пока машина работает, и строка меню показывает, что сейчас, — так что вопрос «оно ещё держит?» посреди долгой выгрузки просто не возникает.
где задаются сроки, что нужно режиму закрытой крышки и как читается иконка — подробная сторона, на вашем языке: запрет сна в инструкции
копаться в настройках не нужно, и отменять потом тоже нечего. настройки энергосбережения остаются нетронутыми: hop не даёт Mac уснуть, пока включён, и уходит с дороги, когда выключен.
весь смысл в сроке, и это та же мысль, что у таймера на соседней вкладке: вы говорите, сколько, а заканчивается оно без вас. таймер для Mac
| что вы делаете | бесплатный путь | с hop |
|---|---|---|
| загрузка, и вы за столом и смотрите на неё | caffeinate -i в окне терминала, которое вы не закрываете | не нужен — берите команду |
| сборка, которая когда-нибудь закончится, а вы не смотрите | caffeinate -w <pid>, если вы знаете pid | поставьте восемь часов и уходите |
| подержать ровно двадцать минут | caffeinate -t 1200 — секунды, а не минуты | выберите срок в панели |
| крышку надо закрыть, а внешнего экрана нет | sudo pmset -a disablesleep 1, прилипает, пока не снимете руками | включите режим закрытой крышки — он держит тот же случай |
| вы закончили и хотите, чтобы Mac вёл себя как обычно | снимите флаг руками, иначе он переживёт и перезагрузку | выйдите из hop, и обычный сон вернётся |
крышку можно закрыть
с закрытой крышкой macOS работает только на своих условиях. Apple перечисляет их прямо: Mac подключён к питанию, подключён внешний экран, есть внешняя клавиатура и мышь или трекпад. вне этих условий закрытая крышка означает сон, и всё, что шло, останавливается вместе с ним (страница английская). Apple Support — внешние мониторы с закрытой крышкой
с включённым запретом сна крышка перестаёт что-либо решать. экран гаснет, машина продолжает работать: загрузка досчитывается, фильм играет, сборка доходит до конца.
одно предупреждение. Mac, которому не дают уснуть с закрытой крышкой, греется точно так же, а закрытому ноутбуку в сумке девать тепло некуда. держите его бодрым на столе, а не в рюкзаке.
что машина делает, пока ей не дают уснуть, — потребление, температуры, во что ночь обошлась батарее — видно в той же панели. монитор системы для Mac
а Mac, оставленный бодрым и без присмотра, — это Mac, в который может печатать кто угодно. блокировка клавиатуры
он возвращает сон сам
все приложения этого рода ломаются одинаково: про них забывают выключить. Mac, который не засыпает никогда, жжёт батарею, греется и рано или поздно преподносит сюрприз.
поэтому запрет сна заканчивается сам: когда истекает срок или когда вы выходите из hop. состояния, которое пережило бы приложение, не остаётся.
если Mac засыпает или просыпается в моменты, о которых вы не просили, начинать стоит со списка причин у самой Apple (страница английская). Apple Support — если Mac неожиданно засыпает или просыпается
ничего никуда не уходит
в hop нет ни учётных записей, ни профилей, ни телеметрии. запрет сна — это локальный вызов к системе, и ничего об этом с машины не уходит.
frequently asked questions
- он держит включённым экран или только Mac?
- как решите. по умолчанию не спит Mac, а экран гаснуть может — в этом и смысл, когда крышка закрыта или идёт долгая задача. нужен и включённый экран — для этого есть переключатель «не гасить экран».
- держит ли caffeinate Mac с закрытой крышкой?
- нет. caffeinate просит macOS не задремать самой, а закрытая крышка — совсем другое дело. без условий режима закрытой крышки — питание, внешний экран, внешняя клавиатура или мышь — Mac засыпает, когда крышку закрывают, с caffeinate или без него.
- как отменить sudo pmset disablesleep?
- `sudo pmset -a disablesleep 0`. проверить можно через `pmset -g`: там он читается как SleepDisabled в самом верху, а не под тем именем, которым его задают. перезагрузку он переживает, так что сам не отвалится.
- меняет ли он настройки энергосбережения?
- нет. в «Системных настройках» ничего не трогается. hop не даёт Mac уснуть, пока запрет сна включён, и отпускает в ту же секунду, как его выключили.
- что будет, если я забуду его выключить?
- поставьте срок, и он закончится сам. выход из hop тоже сразу возвращает обычный сон.
- уснёт ли Mac, когда батарея сядет?
- у macOS остаются свои предохранители. запрет сна просит систему не засыпать по бездействию и поведение при низком заряде не перебивает.
- это правда бесплатно?
- полностью. ни пробного периода, ни платной версии, разблокировать нечего — и остальные восемнадцать инструментов идут в комплекте.
other tools in hop
- color pickerany pixel on screen, in hex, rgb and hsl at once.
- file converterimages, video, audio and documents. offline, with the size shown up front.
- time trackerwhere the hours went, kept on this Mac and nowhere else.
об авторе

Anton Shakirovсоздаёт hop
создаёт hop и все страницы этого сайта. девятнадцать инструментов под одной иконкой в menu bar, MIT и открытый код. на issue и письма отвечает сам.