คุณจะสร้างแป้นพิมพ์ลัดที่เปิดใช้งานการสลับผู้ใช้อย่างรวดเร็ว (เช่นเปิดหน้าต่างการเข้าสู่ระบบ) ใน Mac OS X Snow Leopard ได้อย่างไร
ฉันพยายามเลียนแบบแป้นพิมพ์ Windows Start + L ซึ่งฉันพลาดจากการใช้ Windows
คุณจะสร้างแป้นพิมพ์ลัดที่เปิดใช้งานการสลับผู้ใช้อย่างรวดเร็ว (เช่นเปิดหน้าต่างการเข้าสู่ระบบ) ใน Mac OS X Snow Leopard ได้อย่างไร
ฉันพยายามเลียนแบบแป้นพิมพ์ Windows Start + L ซึ่งฉันพลาดจากการใช้ Windows
คำตอบ:
สำหรับ 10.6 Snow Leopard ผู้ใช้สามารถเพิ่มบริการได้อย่างง่ายดายโดยใช้ Automator จากนั้นกำหนดแป้นพิมพ์ลัดใด ๆ โดยใช้การตั้งค่าระบบ ดูการสลับผู้ใช้อย่างรวดเร็ว / เมนู Apple? สำหรับรายละเอียด
หากคุณอยู่ที่ CLI คุณสามารถตั้งชื่อแทนต่อไปนี้เพื่อสลับอย่างรวดเร็ว:
alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
ฉันใช้BetterTouchToolมากกว่านี้ แต่หนึ่งในการกระทำที่คุณสามารถทำได้คือ "แสดงหน้าจอเข้าสู่ระบบ" (ซึ่งแตกต่างจากการออกจากระบบและนำคุณเข้าสู่หน้าจอเข้าสู่ระบบ) ฉันใช้มันตลอดเวลาเพื่อล็อคเครื่องของฉันเมื่อฉันปล่อยไว้เป็นเวลานาน ... นี่เป็นภาพหน้าจอ:
พูดอย่างเคร่งครัดCommand+ Option+ Q จะออกจากระบบ (ด้วยพรอมต์ "คุณแน่ใจ")
แต่ฉันไม่เห็นวิธีที่จะกระตุ้นให้ผู้ใช้สลับอย่างรวดเร็วผ่านแป้นพิมพ์ ตอนนี้คุณสามารถเขียนสคริปต์ 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ในการสนทนาการสนับสนุนของ Apple เขาบอกว่าชุดนี้ใช้งานได้:
... สามารถทำได้ด้วย Automator และ Spark:
เปิด Automator เลือก Run Shell Script และวางในส่วนนี้ (ทั้งหมดในบรรทัดเดียว):
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
ไฟล์ -> บันทึกเป็น ... -> เลือก "บันทึกเป็นแอปพลิเคชัน" และบันทึกแอพในจุดที่สะดวก จากนั้นใช้ Spark เพื่อกำหนดแป้นพิมพ์ลัดเพื่อเปิดแอปนั้น
ฉันใช้ Automator และSparkเพื่อสลับไปที่หน้าต่างเข้าสู่ระบบจากนั้นให้ Mac ของฉันเข้าสู่โหมดสลีปเมื่อฉันกด control-F13 ...
เกี่ยวกับซอฟต์แวร์ Spark 3.0b9 :
Spark เป็นตัวจัดการทางลัดที่ทรงพลังและใช้งานง่าย ด้วย Spark คุณสามารถสร้าง Hot Keys เพื่อเปิดใช้งานแอปพลิเคชันและเอกสารดำเนินการ AppleScript สั่ง iTunes และอีกมากมาย ... คุณยังสามารถส่งออกและนำเข้าไลบรารีคีย์ลัดของคุณหรือบันทึกในรูปแบบ HTML เพื่อพิมพ์ Spark ฟรีใช้งานได้โดยไม่ต้องดูแล!
ตรวจสอบการสลับผู้ใช้อย่างรวดเร็วด้วยบัตเลอร์และบัตเลอร์
วิธีที่แตกต่างกันเล็กน้อยในการทำเช่นนี้พร้อมกับสิทธิประโยชน์ด้านความปลอดภัยที่เพิ่มขึ้น
ในการทำเช่นนี้คุณต้องปรับการตั้งค่าต่อไปนี้ในแอปพลิเคชันการตั้งค่าระบบของคุณ:
Exposé & Spaces
ในExposé
แท็บตั้งหนึ่งที่คุณจะActive Screen Corners
Start Screen Saver
Security
ในGeneral
แท็บตรวจสอบตัวเลือกของRequire password ... after sleep or screen saver begins
(คุณอาจต้องการเลือกimmediately
จากเมนูแบบเลื่อนลง)คุณจะต้องทำสิ่งต่อไปในแต่ละบัญชี (น่าเสียดายที่ไม่มีการตั้งค่าส่วนกลางสำหรับสิ่งนี้)
จากนั้นคุณสามารถเลื่อนเมาส์ไปที่มุมที่เหมาะสมของหน้าจอเพื่อล็อคคอมพิวเตอร์ (โดยการเริ่มโปรแกรมรักษาหน้าจอ) เมื่อมีคนกดคีย์ / เลื่อนเมาส์พวกเขาจะได้รับแจ้งให้เข้าสู่ระบบและสามารถสลับผู้ใช้จากที่นั่น
หากความต้องการคือการล็อค (เช่น Window-L ใน Windows) มีวิธีแก้ปัญหาง่าย ๆ .. ตั้งค่าหน้าจอให้ล็อคหน้าจอ (ต้องเข้าสู่ระบบ) และใช้ ctrl-shift-eject (ซ้ายล่างสองปุ่ม + บนขวาสุด สำคัญ). สิ่งนี้ล็อคหน้าจอของคุณ
เพื่อสลับไปยังผู้ใช้เฉพาะผมวิงวอนขอสคริปต์ผมพบว่าในความคิดเห็นของ hints.macworld.com บทความ ฉันมีปัญหากับมันดังนั้นฉันจึง tweaked เพื่อให้ทำงานได้ รหัสผ่านจะถูกเก็บไว้ในพวงกุญแจดังนั้นคุณไม่ต้องกังวลกับการจัดเก็บรหัสผ่านการเข้าสู่ระบบใน cleartext คุณสามารถหาเค้าที่นี่
--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"
สคริปต์ทั้งสองอยู่ในแคตตาล็อกปรอทของฉัน การสลับระหว่างบัญชีผู้ใช้เป็นเรื่องของไม่กี่วินาที