[AppleScript] ログアウト時にサウンドをオフにする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ログアウトをフックする

前回紹介した [AppleScript] サウンドの音量を調節する の応用です。
ログアウト時にサウンドをオフにするスクリプトを作成してみます。

仕組みとしては、AppleScript でログアウトを検知するアプリケーションを作成し、それを常駐アプリとしてログイン時に起動させておきます。

手順

1.スクリプトエディタを開く

スクリプトエディタのパスは /Applications/Utilities/Script\ Editor.app/ です。

2.以下のコードを記述する

on quit
    set volume output volume 0
    continue quit
end quit

on quit はアプリケーション終了時に呼び出されるハンドラです。
アプリケーション終了のタイミングでサウンドの出力音量を 0 に設定します。
ログアウト時はアプリケーションが終了となる性質を利用し、このハンドラでログアウトを検知します。

continue quit はデフォルトの on quit ハンドラを呼び出すためのコマンドです。
これを記述しなければアプリケーションが終了しないのでご注意ください。

3.以下を実施しファイルを保存する

  • ファイルフォーマットを アプリケーション にする
  • ハンドラの実行後に終了しない にチェックを付ける

1

4.「システム環境設定」の「ユーザとグループ」を開き、「ログイン項目」に作成したアプリケーションを登録する

2

これで作成した常駐アプリがログイン時に起動されるようになります。

3

Dock に現れないようにする

このままだとアプリ起動中は Dock にこのアプリアイコンが表示されてしまいます。
ユーザー操作不要なアプリなので、Dock に現れないようにします。

4

plutil コマンドを利用してアプリケーションの Info.plistLSUIElement の項目を追加します。
この値が true の場合、そのアプリケーションは Dock や強制終了ウィンドウに現れなくなります。

作成したアプリケーションが存在するディレクトリに移動し、以下のコマンドを実行します。

plutil -insert 'LSUIElement' -bool true logout_hook.app/Contents/Info.plist

さいごに

以上の方法で、ログアウト時にサウンドオフを実行する不可視なアプリケーションが、ログイン時に常駐起動されるようになります。
set volume output volume 0 を別なものに置き換えることで、ログアウト時の処理を変更することができます。
色々と試してみてはいかがでしょうか。

リンク

ミレニアム・ファルコン製作日記 #55

55 号 表紙

mfd_55_1

パーツ

mfd_55_2

mfd_55_3

mfd_55_4

成果

mfd_55_5

mfd_55_6

mfd_55_7

mfd_55_8

今回の作業は以下の 2 つでした。

  • 上部外殻フレームを拡張する
  • アクチュエーター・ブレースを取り付ける
  • 穴メカを取り付ける

今回もフレームの追加です。
どんどん出来上がっていきます。

また、久しぶりに下部外殻プレートまわりの作業が発生しました。
以前取り付けた油圧アクチュエーターの上端にブレースを取り付けました。
写真の四角い枠になっている部分です。
きっとこれは補強用でしょう。

穴メカもついに取り付けました。
立体感が出てカッコイイ!

それではまた次回。

May the Force be with you!