AI

Ghostty1.3.0の新機能notify-on-command-finishでコマンド完了を通知する

Katz

2026年3月9日にリリースされたGhostty 1.3.0では、コマンド完了通知機能notify-on-command-finishが新たに追加されました。設定しておけば、コマンドが終わった瞬間にmacOSのデスクトップ通知で知らせてくれます。この記事では、各オプションの意味と具体的な設定手順を解説します。

notify-on-command-finishとは

notify-on-command-finishは、ターミナルで実行したコマンドが完了したタイミングを通知してくれる機能です。Ghostty 1.3.0で新たに追加されました。

通知のタイミングや方法、最低実行時間をそれぞれ細かく制御できるのが特徴で、「バックグラウンドにいるときだけ通知する」「1分以上かかったコマンドだけ通知する」といった柔軟な設定が可能です。

設定オプション

notify-on-command-finishの動作は、以下の3つのオプションで制御します。

notify-on-command-finish

通知を送るタイミングを制御します。デフォルトはnever(通知しない)なので、使いたい場合は明示的に設定する必要があります。

説明
never通知しない(デフォルト)
unfocusedターミナルが非フォーカスのときのみ通知する
always常に通知する

notify-on-command-finish-action

通知の方法を制御します。bell(ターミナルベル)とnotify(デスクトップ通知)を単独または組み合わせて指定できます。デフォルトはbellです。

説明
bellターミナルベルを鳴らす(デフォルト)
notifyデスクトップ通知を表示する
no-bell,notifyベルなしでデスクトップ通知のみ
bell,notifyベルとデスクトップ通知の両方

notify-on-command-finish-after

コマンドが何秒以上実行された場合に通知するかを設定します。デフォルトは5s(5秒)です。lsgit statusのような瞬時に終わるコマンドまで通知されると煩わしいので、自分のユースケースに合わせて調整しましょう。

時間の指定は秒(s)と分(m)で記述できます。組み合わせて使うこともできます。

記述例意味
5s5秒以上かかったコマンドに通知する
30s30秒以上かかったコマンドに通知する
1m1分以上かかったコマンドに通知する
2m30s2分30秒以上かかったコマンドに通知する

設定方法

  1. 設定ファイルを開く: メニューバーのGhostty -> Settingsをクリックして設定ファイルを開きます。Ghostty Settingsメニュー
  2. 設定を記述するキー名 = 値の形式で設定を追記・編集し、ファイルを保存します。
  3. 設定を反映する: メニューバーのGhostty -> Reload Configurationを呼び出して設定を反映させます。Ghostty Reload Configurationメニュー

設定例

バックグラウンドのときだけ通知する(基本)

最もシンプルで使いやすい設定です。Ghosttyにフォーカスがある間はコマンドの進行を自分で確認できるので通知は不要ですが、別のアプリに切り替えているときは完了を見逃しがちです。unfocusedにしておくことで、そのような場面だけ通知を受け取れます。

notify-on-command-finish = unfocused
notify-on-command-finish-action = notify
notify-on-command-finish-after = 10s

常に通知する

複数のタブやウィンドウで並行してコマンドを実行しているとき、どれが終わったかを把握するのに便利です。alwaysにすると、フォーカスの有無に関わらず常に通知が届きます。

notify-on-command-finish = always
notify-on-command-finish-action = notify
notify-on-command-finish-after = 10s

ビルドやテストなど重いコマンドだけ通知する

npm installgit pullのような数十秒で終わるコマンドも通知の対象にしてしまうと、通知が多くなりすぎることがあります。notify-on-command-finish-after1m以上に設定することで、本当に時間のかかるコマンドだけに絞って通知できます。

notify-on-command-finish = unfocused
notify-on-command-finish-action = notify
notify-on-command-finish-after = 1m

動作確認

sleepコマンドを使うと、実際の重い処理を待たずに手軽に動作確認できます。notify-on-command-finish-afterに設定した秒数よりも長い時間を指定して実行し、コマンドが動いている間に別のウィンドウやアプリに切り替えておきます。

たとえばnotify-on-command-finish-after = 10sの場合は、以下のコマンドで確認できます。

sleep 11

実行直後にGhosttyからフォーカスを外し、11秒後にデスクトップ通知が届けば設定は正しく動作しています。

うまく通知できないときはmacOSの通知設定を確認する

設定が正しいはずなのにデスクトップ通知が届かない場合は、macOS側で通知が許可されているか確認してください。Ghosttyをインストールしたばかりのときや、通知設定をリセットした後は許可されていないことがあります。

  1. システム設定を開く
  2. 通知を選択する
  3. アプリ一覧からGhosttyを探す
  4. 通知を許可がオンになっていることを確認する
  5. 通知スタイルバナーまたは通知パネルに設定する

注意事項

tmuxやzellijなどのターミナルマルチプレクサ上では動作しません。マルチプレクサを使っている場合はこの機能が使えないため、Ghosttyのタブ・スプリット機能で代替するか、通知を諦めるかの二択になります。

まとめ

Ghosttyのnotify-on-command-finishを使えば、時間のかかるコマンドの完了を自動的に通知できます。設定のポイントは以下の通りです。

  • notify-on-command-finish = unfocusedでターミナルがバックグラウンドのときのみ通知する
  • notify-on-command-finish-action = notifyでデスクトップ通知を有効にする
  • notify-on-command-finish-afterで通知する最小実行時間を調整し、短いコマンドの通知ノイズを抑える

ビルドやテスト、パッケージのインストールなど、完了まで時間のかかるコマンドを日常的に使っている方にぜひ試してほしい機能です。

https://ghostty.org/docs/install/release-notes/1-3-0 https://ghostty.org/docs/config/reference#notify-on-command-finish

Xからの読者コメントをお待ちしています。
ブログ更新の励みになります!
ABOUT ME
Katz
Katz
ITエンジニア
エンジニアをやっているKatzです。仕事のことや最近使ってみたものの紹介をしています。
記事URLをコピーしました