MacBook を閉じても、スリープされたくない時があります。
音楽を再生しているとき、動画を再生(音だけ聴きたい)しているときなどですね。
その方法になります。
環境
Apple Silicon Mac(M1 以降) macOS Tahoe 26.4.1
Mac mini (M4) (Amazon) MacBook Pro M5 (Amazon) MacBook Air M5 (Amazon)
スリープしないようにコマンドで設定する
ターミナルから以下のコマンドを実行するとスリープの機能を無効にできます。
管理者パスワードの入力が必要です。
ただ、全くスリープ無しだとバッテリーが勿体ないので、後述のユーティリティの方が便利です。
sudo pmset -a disablesleep 1
実行すると、アップルメニューの「スリープ」が使えなくなりますし、MacBook を閉じてもスリープしません。

戻すには、最後のパラメータを 1 → 0 にしてコマンドを実行します。
sudo pmset -a disablesleep 0
pmset は macOS の電源管理ツール(Power Management Settings)です。-a はすべての電源モード(AC 電源・バッテリー両方)に適用し、-b はバッテリーモードのみを対象とします。バッテリー消費を抑えたい場合は pmset -b disablesleep 1 でバッテリーモード時のみ無効化できます。
Fermata ユーティリティを使う

ただ、公開されているものは Intel 向けなので macOS のバージョンアップ後は、今後 Apple Silicon Mac では実行できなくなる旨の警告が出ます。 自分の場合はローカル環境でビルドしてみました。(後述)
Fermata を使うと、
- 手動でスリープを無効化
- 指定したアプリが起動している時はスリープを無効化
- 指定したアプリがアイドルスリープを防いでいる時はスリープを無効化
(具体的なアプリは不明ですが、音楽再生アプリに多いらしい?)
することができて便利です。
使うには、
- リリースのページから最新版をダウンロード
現時点では2019/12/12リリースの 1.2 、Fermata-136.zip が最新版でした。 - zip を解凍してできる Fermata.app をアプリケーションフォルダに移動
- Fermata を起動
します。
メニューバーの右側に Fermata のアイコンが現れるので、設定などはここから行います。
手動でスリープを無効化
Fermata のアイコンをクリックして、メニューの「Postpone Lid Close Sleep」を選択します。
選択すると、メニューにチェックマークが付きます。
指定したアプリが起動している時はスリープを無効化
Fermata のアイコンをクリックして、メニューの「Preferences…」を選択します。
自分の場合は、以下のように「Music」と「QuickTime Player」を設定しています。

「Add Application…」でアプリを追加
「Remove Application」でアプリを削除
すれば OK です。デフォルトは「Embrace」が設定されていましたが、使っていないので削除しました。特にそのままでも問題ないと思います。
Fermata をビルドする
Apple Silicon 版がリリースされるか不明ですが、ソースコードが公開されているのでビルドしてみました。
前提条件
- Apple Silicon Mac(M1 以降)
- Xcode(Mac App Store から無料入手)
- 無料の Apple ID(自分のマシンで動けば良いので有料の Developer Program は不要)
Xcode をインストールすると Git も自動的に入ります。
ステップ1:ソースを取得
ターミナルを開き、Clone 先ディレクトリを決めて実行します。以下は ~/Developer/Fermata を例にします。
別のパスにする場合は、以降のコマンドのパスも同じに読み替えてください。
mkdir -p ~/Developer
git clone https://github.com/iccir/Fermata.git ~/Developer/Fermata
ステップ2:project.pbxproj を修正する
複数のターゲットに Ad Hoc 署名を強制するハードコードが含まれており、このままではビルドが失敗します。
以下のコマンドを実行して削除してください。<Clone先> は手順 1 で選んだパスに置き換えてください。
sed -i '' '/"CODE_SIGN_IDENTITY\[sdk=macosx\*\]" = "-";/d' \
<Clone先>/Fermata.xcodeproj/project.pbxproj
削除できたことを確認します。何も出力されなければ成功です。
grep 'CODE_SIGN_IDENTITY\[sdk=macosx' \
<Clone先>/Fermata.xcodeproj/project.pbxproj
コマンドが苦手な場合は、Finder で右クリック → パッケージの内容を表示 → Fermata.xcodeproj/project.pbxproj を TextEdit や VS Code で開き、ファイル内で CODE_SIGN_IDENTITY[sdk=macosx*] を検索して、= "-"; となっている行をすべて行ごと削除し、保存します。
ステップ3:Local.xcconfig を作成する
プロジェクトは署名のチーム ID を Local.xcconfig(git 管理対象外)で管理するようにします。
以下の内容で <Clone先>/Local.xcconfig を作成してください。チーム ID については、Xcode の Signing & Capabilities で確認できます(後ほど確認する機会もあります)。
DEVELOPMENT_TEAM = <チームID>
ステップ4:Xcode でプロジェクトを開く
<Clone先> はステップ 1 で選んだパスに置き換えてください。
open <Clone先>/Fermata.xcodeproj
Finder からの場合は、メニュー Go → Go to Folder…(⌘⇧G)でパスを入力し、Fermata.xcodeproj をダブルクリックします。
ステップ5:Apple ID を Xcode に登録する
すでに Xcode に Apple ID を登録済みなら、この手順をスキップしてステップ 6 へ進んでください。
Xcode → Settings → Accounts を開きます。
左下の + → Apple ID を選択し、Apple ID とパスワードでサインインします。
ステップ6:開発証明書を作成する
すでに Apple Development 証明書が存在する場合はスキップして、ステップ 7 へ進んでください。
Accounts 画面で追加した Apple ID を選択 → Manage Certificates… → 左下の + → Apple Development を選択します。
ステップ7:3ターゲットすべての署名設定を変更する
Fermata は 3つのターゲット(Fermata、Launch Fermata、com.iccir.Fermata.Helper)で構成されています。
3つすべてに対して、以下の操作を行う必要があります。1つでも漏れるとビルドが失敗します。
各ターゲットへの操作:
- プロジェクトナビゲータ左上の青い
Fermataアイコンをクリック - 画面左の
TARGETSリストから対象ターゲットを選択 Signing & Capabilitiesタブを開く- Automatically manage signing のチェックボックスをオン
- Team のドロップダウンで自分の Apple ID に対応する
〇〇 (Personal Team)を選択
以下の順番で 3つすべてに設定してください。
| 順番 | ターゲット名 |
|---|---|
| 1 | Fermata |
| 2 | Launch Fermata |
| 3 | com.iccir.Fermata.Helper |

ステップ8:ビルドする
Release ビルドに切り替えてからビルドします。
- Product → Scheme → Edit Scheme…(または
⌘<)を開く - 左の Run を選択 → Build Configuration を
Releaseに変更 → Close ⌘B(Product → Build)でビルド
Build Succeeded と表示されれば成功です。警告(warnings)は無視しました。
エラーが出た場合は「トラブルシューティング」を参照してください。
ステップ9:arm64 バイナリであることを確認する
ターミナルで以下を実行して、arm64 であることを確認します。
lipo -archs ~/Library/Developer/Xcode/DerivedData/Fermata-*/Build/Products/Release/Fermata.app/Contents/MacOS/Fermata
arm64 と表示されれば正しくビルドされています。
ステップ10:古い Fermata を削除する(インストール済みの場合のみ)
以前に Fermata をインストールしたことがある場合のみ実行してください。初めてインストールする場合はこの手順をスキップして、ステップ 11 へ進んでください。
以下のコマンドは管理者パスワードの入力を求められます。
実行中の Fermata は事前に終了しておいてください。
# 古いアプリを削除
sudo rm -rf /Applications/Fermata.app
# 古い Helper を削除
sudo rm -f /Library/PrivilegedHelperTools/com.iccir.Fermata.Helper
sudo rm -f /Library/LaunchDaemons/com.iccir.Fermata.Helper.plist
# Helper バージョン情報をリセット
defaults delete com.iccir.Fermata HelperVersion
ステップ11:/Applications にインストールする
以下のコマンドでビルドしたバイナリを /Applications にコピーします。
cp -R ~/Library/Developer/Xcode/DerivedData/Fermata-*/Build/Products/Release/Fermata.app /Applications/
ステップ12:Fermata を起動して Helper をインストールする
Finder または Spotlight(⌘Space) → Fermata で /Applications/Fermata.app を起動します。
起動直後に Privileged Helper のインストール確認ダイアログが表示されるので、管理者パスワードを入力して許可しましょう。
Helper が正しくインストールされたことを確認します。
file /Library/PrivilegedHelperTools/com.iccir.Fermata.Helper
Mach-O 64-bit executable arm64 と表示されれば成功です。
ステップ13:動作確認
メニューバーに Fermata のアイコン(音符マーク)が表示されていることを確認します。
アイコンをクリックしてメニューを開き、スリープ防止の設定をオンにしましょう。Mac の蓋を閉じてもスリープしなければ動作成功です。
トラブルシューティング
署名証明書が見つからない
No signing certificate "Mac Development" found
→ ステップ 5・6 の Apple ID 登録と証明書作成を行ってください。
Launch Fermata の署名が親アプリと一致しない
Embedded binary is not signed with the same certificate as the parent app.
→ ステップ 2 の project.pbxproj 修正が漏れています。"CODE_SIGN_IDENTITY[sdk=macosx*]" = "-" の行をすべて削除してください。
署名エラーが解消しない
→ ステップ 7 の署名設定が 3ターゲット(Fermata・Launch Fermata・com.iccir.Fermata.Helper)すべてに行われているか確認してください。1つでも漏れているとエラーが出ます。
ビルドは成功したが arm64 になっていない
lipo -archs ~/Library/Developer/Xcode/DerivedData/Fermata-*/Build/Products/Release/Fermata.app/Contents/MacOS/Fermata
# → x86_64 ← 間違い
→ Build Settings で VALID_ARCHS が x86_64 に固定されていないか確認し、固定されていれば行ごと削除してください。メインターゲットと Helper ターゲットの両方を確認しましょう。
Helper インストールのダイアログが表示されない
以前に Fermata をインストールしたことがある場合、アプリの設定ファイルに古い Helper バージョン情報が残っており、インストール処理がスキップされることがあります。
- メニューバーの Fermata アイコンをクリック → Quit Fermata で終了
- ターミナルで以下を実行
sudo rm -f /Library/PrivilegedHelperTools/com.iccir.Fermata.Helper
sudo rm -f /Library/LaunchDaemons/com.iccir.Fermata.Helper.plist
defaults delete com.iccir.Fermata HelperVersion
- Fermata を再起動するとダイアログが表示されます
Helper インストール後も機能しない
file /Library/PrivilegedHelperTools/com.iccir.Fermata.Helper
# → Mach-O 64-bit executable x86_64 ← 古いバイナリが残っている
→ 古い x86_64 バイナリが残っています。ステップ 10 の削除を行ってから、ステップ 11 以降をやり直してください。
