Macとかの雑記帳

前回はアプリを使った方法でしたが、今回はシステム側の設定を変更して起動音を消す方法です。音量をミュート/ミュート解除するスクリプト作成し、それをOSの起動/終了時に実行させて起動音を消します。スクリプトの内容を一部変更すれば音量を調整することも可能です。

検証環境

iMac mid 2007:OS X 10.7 Lion

※注意※
ヘッドホンや外部スピーカー等を接続している場合は多分使えません。

スクリプトの作成

まず、OS終了時にミュートにするスクリプトと、OS起動時にミュートを解除するスクリプトを作成します。「/Library/Scripts」内に作成する前提で進めますが、作成場所はどこでもいいです。

OS終了時にミュートにするスクリプトの作成。

sudo vi /Library/Scripts/mute-on.sh

開いたファイルに以下を記入します。

#!/bin/bash
osascript -e 'set volume with output muted'

OS起動時にミュートを解除するスクリプトの作成。

$ sudo vi /Library/Scripts/mute-off.sh

開いたファイルに以下を記入します。

#!/bin/bash
osascript -e 'set volume without output muted'

作成したら、実行可能ファイルにします。

$ sudo chmod u+x /Library/Scripts/mute-on.sh 
$ sudo chmod u+x /Library/Scripts/mute-off.sh

音量を調整したい場合は、スクリプトの内容を下記のようにします。

osascript -e 'set volume output volume 20'

数字の部分を100~0の間に変えて設定します。100が音量最大。

起動/終了時にスクリプトを実行させる

次に、隠し設定でよく使う defaults コマンドを使ってログイン関連の設定ファイルを編集し、ログイン/ログアウト時にスクリプトを実行するLoginHookLogoutHookという項目に作成したスクリプトを設定します。

既に他のスクリプトが設定されている場合は、その設定を上書きすることになるので念のため現在の設定を確認します。

$ sudo defaults read com.apple.loginwindow LoginHook
$ sudo defaults read com.apple.loginwindow LogoutHook

上記を実行して下のような結果が表示された場合は何も指定されていません。

The domain/default pair of (com.apple.loginwindow, LoginHook) does not exist

既に設定されている場合はスクリプトのパスが表示されます。そのスクリプトが使えなくなっても構わない場合は良いのですが、困る場合はどうにかしてください。

確認したら、作成したスクリプトを終了時/起動時に実行されるようにします。

$ sudo defaults write com.apple.loginwindow LogoutHook /Library/Scripts/mute-on.sh

$ sudo defaults write com.apple.loginwindow LoginHook /Library/Scripts/mute-off.sh

再起動して起動音が消えていることを確認して終了です。

元に戻す

元に戻す場合は、下記を実行して設定を削除します。

$ sudo defaults delete com.apple.loginwindow LoginHook
$ sudo defaults delete com.apple.loginwindow LogoutHook

作成したスクリプトは放置しておいても問題ないと思いますが、気になる場合はFinderからゴミ箱に捨てるか、ターミナルで削除してください。

$ sudo rm /Library/Scripts/mute-on.sh
$ sudo rm /Library/Scripts/mute-off.sh

引用元:disable start up sound | Apple Support Communities

bashやシェル関連のお勧め書籍

スポンサード リンク