Mac OS X Snow Leopardでユーザーの高速切り替えを有効にする(ログインウィンドウを表示する)キーボードショートカットを作成するにはどうすればよいですか?
Windows Start + Lキーボードの組み合わせをエミュレートしようとしていますが、これはWindowsを使用しているときに見逃しています。
Mac OS X Snow Leopardでユーザーの高速切り替えを有効にする(ログインウィンドウを表示する)キーボードショートカットを作成するにはどうすればよいですか?
Windows Start + Lキーボードの組み合わせをエミュレートしようとしていますが、これはWindowsを使用しているときに見逃しています。
回答:
10.6 Snow Leopardの場合、Automatorを使用してサービスを簡単に追加し、システム環境設定を使用してキーボードショートカットを割り当てることができます。ユーザーの簡易切り替え/アップルメニューをご覧ください。詳細については。
CLIを使用している場合は、次のエイリアスを設定してすばやく切り替えることができます。
alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
BetterTouchToolを使用するのはこれだけではありませんが、BetterTouchToolでできることの1つは、「ログイン画面の表示」です(これはログアウトしてログイン画面を表示するのとは異なります)。マシンを長時間放置すると、常にそれを使用してマシンをロックします…スクリーンショットは次のとおりです。
厳密に言えば、Command+ Option+ Q はログアウトします(「Are you sure」プロンプトが表示されます)。
しかし、キーボードを介して高速のユーザー切り替えをトリガーする方法は見当たりません。これで、AppleScriptスクリプトを記述でき、キーストロークに関連付けることができます。たとえば、実装の詳細についてはこちらをご覧ください。
set thePassword to "password"
set N to name of (info for (path to me))
set AppleScript's text item delimiters to (".")
set N to first text item of N
set AppleScript's text item delimiters to ""
set N to do shell script "/usr/bin/id -u " & N
do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID " & N
tell application "System Events"
tell process "SecurityAgent" to set value of text field 1 of group 1 of window 1 to thePassword
click button 2 of window 1 of application process "SecurityAgent"
end tell
Apple Support DiscussionsのKirály氏によると、彼はこの組み合わせが機能すると述べています。
...これはAutomatorとSparkで実行できます。
Automatorを開き、[シェルスクリプトの実行]を選択し、これを貼り付けます(すべて1行で)。
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
ファイル->名前を付けて保存...->「アプリケーションとして保存」を選択し、アプリを便利な場所に保存します。次に、Sparkを使用してキーボードショートカットを割り当て、そのアプリを開きます。
AutomatorとSparkを使用してログインウィンドウに切り替え、control-F13を押すとMacをスリープ状態にします...
Spark 3.0b9ソフトウェアについて:
Sparkは強力で簡単なショートカットマネージャーです。Sparkを使用すると、ホットキーを作成してアプリケーションやドキュメントを起動したり、AppleScriptを実行したり、iTunesにコマンドを送信したりできます。また、ホットキーライブラリをエクスポートおよびインポートしたり、HTML形式で保存して印刷することもできます。Sparkは無料なので、節度なしで使用してください!
セキュリティの利点(または視点によっては煩わしさ)を追加して、これを行うわずかに異なる方法は、
これを行うには、システム環境設定アプリケーションで次の設定を調整する必要があります。
Exposé & Spaces
、中Exposé
タブ、あなたの1つを設定Active Screen Corners
するにStart Screen Saver
。Security
にあるGeneral
タブのオプションをチェックRequire password ... after sleep or screen saver begins
(あなたが選択することもできますimmediately
ドロップダウンからの)。各アカウントで後者を行う必要があります(残念ながら、これにはグローバルな設定はありません)。
次に、マウスを画面の適切なコーナーに移動して、コンピューターをロックします(スクリーンセーバーを起動します)。誰かがキーを押す/マウスを動かすと、ログインするように求められ、そこからユーザーを切り替えることができます。
特定のユーザーに切り替えるには、hints.macworld.com 記事のコメントにあるスクリプトを呼び出します。私はそれで問題があったので、私はそれが動作するかどうかを得るためにそれを微調整しました。パスワードはキーチェーンに保存されるため、ログインパスワードをクリアテキストで保存する必要はありません。ここで要点を見つけることができます。
--This script MUST be named "Switch to User.scpt", where User is the name of the user to switch to.
--You must first make a password item (a.k.a. a key) for the other user's password using Keychain Access, and call it "", where "user" is the other user's name and with the description "User Login". The script assumes that you make this key in your login.keychain, which is the default one.
--The first time you run this script, you will be prompted to allow Keychain Scripting to access the password of the key.
--This script requires "Enable access for assistive devices" to be enabled in the Universal Access system preference pane.
set username to word -1 of my findReplace(".scpt", "", (path to me as text))
-- Invoke Fast User Switching. The `id -ur username` part gets the uid number that corresponds to the username and substitutes it at the end of the CGSession command
do shell script "/System/Library/CoreServices/'Menu Extras'/User.menu/Contents/Resources/CGSession -switchToUserID `id -ur " & username & "`"
-- Use universal access to enter the text and to click the button
tell application "System Events"
repeat
if (do shell script "stat -f %Su /dev/console") is username then exit repeat
-- Get the password for the username
try
set pswd to (do shell script "security find-generic-password -g -s \"" & username & "\" -D \"User Login\" 2>&1 1>/dev/null | sed -e 's/password: \"//' -e 's/\"//'")
on error
exit repeat
end try
if exists window 1 of application process "SecurityAgent" then
tell process "SecurityAgent" to set value of text field 1 of window 1 to pswd
key code 36
exit repeat
else
tell application "SecurityAgent" to quit
do shell script "/System/Library/CoreServices/'Menu Extras'/User.menu/Contents/Resources/CGSession -switchToUserID `id -ur " & username & "`"
end if
end repeat
end tell
on findReplace(findText, replaceText, sourceText)
set ASTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to findText
set sourceText to text items of sourceText
set AppleScript's text item delimiters to replaceText
set sourceText to sourceText as text
set AppleScript's text item delimiters to ASTID
return sourceText
end findReplace
ログイン画面を呼び出すには、別のスクリプトがあります。ここで要点を見つけることができます
do shell script "'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend"
両方のスクリプトは、私のquicksilverカタログにあります。ユーザーアカウントの切り替えは数秒で完了します。