답변:
10.6 Snow Leopard의 경우 Automator를 사용하여 서비스를 쉽게 추가 한 다음 시스템 환경 설정을 사용하여 키보드 단축키를 지정할 수 있습니다. 빠른 사용자 전환 / 애플 메뉴를 참조하십시오 ? 자세한 내용은.
CLI에있는 경우 다음 별명을 빠르게 전환하도록 설정할 수 있습니다.
alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
나는 이것보다 훨씬 더 나은 TouchTouchTool 을 사용 하지만, 당신이 할 수있는 작업 중 하나는 "로그인 화면 표시"입니다 (로그 아웃하고 로그인 화면에서 떠나는 것과 다릅니다). 오랜 시간 동안 기기를 떠날 때마다 내 컴퓨터를 잠그기 위해 항상 사용합니다…
엄밀히 말하면 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
애플 지원 토론에서 Király에 따르면 그는이 조합이 효과가 있다고 말한다.
... Automator 및 Spark를 사용하여 수행 할 수 있습니다.
Automator를 열고 Run Shell Script (쉘 스크립트 실행)를 선택한 후 여기에 붙여 넣으십시오 (모두 한 줄에).
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
파일-> 다른 이름으로 저장 ...-> "응용 프로그램으로 저장"을 선택하고 편리한 위치에 앱을 저장하십시오. 그런 다음 Spark를 사용하여 해당 앱을 열 키보드 단축키를 할당하십시오.
Automator와 Spark 를 사용 하여 로그인 창으로 전환 한 다음 control-F13을 누르면 Mac이 잠자기 상태가됩니다.
약 스파크 3.0b9 소프트웨어 :
Spark는 강력하고 쉬운 바로 가기 관리자입니다. Spark를 사용하면 응용 프로그램 및 문서를 시작하고 AppleScript를 실행하고 iTunes를 명령하는 등의 작업을 수행 할 수있는 단축키를 만들 수 있습니다. 단축키 라이브러리를 내보내거나 가져 오거나 HTML 형식으로 저장하여 인쇄 할 수도 있습니다. 스파크는 무료이므로 적당히 사용하십시오!
Butler 와 Butler로 빠른 사용자 전환을 확인하십시오 .
보안상의 이점 (또는 관점에 따라 성가신)이 추가되어 약간 다른 방식으로이를 수행 할 수 있습니다.
이렇게하려면 시스템 환경 설정 응용 프로그램에서 다음 설정을 조정해야합니다.
Exposé & Spaces
의에서 Exposé
탭, 당신의 한 세트 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 카탈로그에 있습니다. 사용자 계정 간 전환은 몇 초의 문제입니다.