Mac OS X で画面ロックのやり方いろいろ

Windowsでは当たり前になっている Windows + Lキーでの画面ロックだが、Mac OS Xでいざやろうとすると
これがピッタリのものがなかったりする。
あえてフリーソフトの導入などはせずに「画面ロック」のショートカットをつける方法を探っていこうと思う。


ここで紹介しているやり方
パターンA、ディスプレイのみスリープするキーボードショートカット+スリープ後パスワードを要求する設定に変更
パターンB、Automatorでログインウインドウを呼び出すサービスを作って、キーボードショートカットを割り当てる


★パターンA、ディスプレイのみスリープするキーボードショートカット+スリープ後パスワードを要求する設定に変更

めちゃくちゃ簡単なのは、実はあんまり知られていないディスプレイのスリープショートカットを使う方法。
ただしスリープ解除パスワードの組み合わせが必要。

下準備

1,システム環境設定を開く


2,「セキュリティとプライバシー」を開く(Mountain Lion以前は[セキュリティ]かも)


3,「一般」タブで「スリープ解除/スクリーンセーバ解除にパスワードを要求」をオン
4,開始後 はできるだけ「すぐに」にする(という筆者は5秒後を選んでいるが)

やりかた

キーボードの「Control」キーと「Shift」キーと「イジェクト」を押す
 →ディスプレイがスリープする(コンピュータはスリープしない)、解除しようとするとログインパスワードを求められる。


ディスプレイ内蔵のiMacでもMacBook Proでも、あるいはMac Proでもなんでも有効である。
なお、イジェクトキーがない機種は「電源ボタン」あるいは「F12」キーで代用できる場合がある。


特殊な事情で「スリープ解除/スクリーンセーバ解除にパスワードを要求」の設定を変更したくないという状況を除いて
この方法がベストである。


また、このエントリで紹介している方法の中で、この方法が一番早く画面ロックできて、しかも解除も高速である。

ちなみにディスプレイだけでなくコンピュータごとスリープさせるやり方

先ほどのは、ディスプレイのスリープを行う方法だが別にコンピュータ自体がスリープしてしまってもかまわない場合は
キーボードの「Command」キーと「Option」キーと「イジェクト」キーでコンピュータのスリープになるはずだ(ちょっとスリープに入るまで時間かかるかも。10秒程度)

これに加えてマウス操作でも

一番知られている方法だと思うが、「システム環境設定」→「デスクトップとスクリーンセーバ」→「スクリーンセーバ」タブで
「ホットコーナー」ボタンを押すと、画面の四隅のどこか(たとえば画面の左下とか)にマウスカーソルをもっていったときに
スクリーンセーバーを起動するなどの操作を割り当てることができ、それをこのパターンAで紹介した
スクリーンセーバー解除時にパスワードを要求する設定と組み合わせることで、マウス操作だけでパスワードロックを掛けることができるが
Mac OS XではDockやらアップルメニューやら、Spotlight、通知センターなど画面の四隅付近によく使う何かがあったりして
誤爆しやすいのであんまりおすすめできない。


どうしてもマウス操作が良い場合は、「システム環境設定」→「ユーザとグループ」で「ログインオプション」→左下の鍵を解除→「ファストユーザスイッチメニューを表示」を選択して
「ログインウインドウ」を選んでログイン画面に戻す方法もある(ログアウトにはならない)


ログインウインドウはお好みでない場合は、「キーチェーンアクセス」をSpotlightとかで起動、起動してからアップルメニュー右の「キーチェーンアクセス」より
「環境設定」を選び「メニューバーにキーチェーンの状況を表示」をオンにすると
なんとここで表示されるメニューに「スクリーンをロック」が現れるので、それを選ぶと
上記セキュリティ設定でスクリーンセーバー、スリープ解除時のパスワード要求設定の有無にかかわらず
パスワード要求されるモードでスクリーンセーバーが立ち上がる。

★パターンB、Automatorでログインウインドウを呼び出すサービスを作って、キーボードショートカットを割り当てる

さて、そうやって書くとシステムに悪影響を及ぼすのではないかと心配して及び腰になってしまう方もいるとおもうが
Windowsで「サービス」と聞いて想像するモノとは全く違って、Windows的な言い方をすると「送る」メニューがイメージとして近い。


本来ならば、何かテキストを選択して実行したり、ファイル/フォルダを選択して実行すると、それらがアプリケーションに渡されて
何らかの処理をしてくれるといった類のものだが、AutomatorというWindowsで言うところのVBSみたいな追加ソフトのインストールなしに動作する
スクリプトエンジンを使って、受け取りデータを無しにしてスクリーンセーバーを起動するという処理のみ行うサービスを作成して
そいつにMac OS Xの標準機能でキーボードショートカットを割り当てるという方法だ。


1,画面右上のSpotlightから「automator」を検索する。


2,「サービス」を選んでOK


3,"サービス"は次の項目を受け取ります で 「入力なし」を選ぶ


4,「ユーティリティ」から「シェルスクリプトを実行」を右側のエリアにドラッグ
5,以下をコピペ

"/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession" -suspend


6,ファイル→保存で「画面をロック」などとして保存(スクリーンをロック は後述の追加メニューをオンにするとメニュー名がかぶるので注意)

削除したくなったときは:


なお、このとき保存したファイルは「ホームフォルダ→ライブラリ→Services」に保存されるので、必要なくなったらここで先ほど入力したサービス名のファイルを消せばよい。


ホームフォルダ内にライブラリが見えないようになっているのは仕様なので、
・FinderでOptionキーを押しながら「移動」メニューを開くと「ライブラリ」というメニューが一時的に出現するのでそれを選ぶ→Servicesに移動するか
・Finderで「移動」メニューから「フォルダへ移動...」を選択して「~/LIbrary/Services」をコピペ、移動するか
Automatorの最近使ったファイルから作ったサービス名のデータを選択して、ウインドウタイトルをCommandキーを押しながらクリック後、Servicesのところを選択するか
して、なんとかServicesフォルダにたどり着いてください。
それでもわからない方はターミナルから無理やりrfしても可。

7,システム環境設定を開く


8,「キーボード」を開く


9,「キーボードショートカット」のタブを選択
10,「サービス」を選ぶ
11,さっき作った名前のサービスがどこかにあるので、チェックを入れた状態にする
12,「ショートカット追加」をクリック


13,他のアプリとかぶらなさそうなショートカットを入力する
  (たとえばCommand+Shift+Lとかか?アプリによってはかぶりそうだが)