สร้างแป้นพิมพ์ลัดเพื่อการสลับผู้ใช้อย่างรวดเร็วใน Mac OS X


16

คุณจะสร้างแป้นพิมพ์ลัดที่เปิดใช้งานการสลับผู้ใช้อย่างรวดเร็ว (เช่นเปิดหน้าต่างการเข้าสู่ระบบ) ใน Mac OS X Snow Leopard ได้อย่างไร

ฉันพยายามเลียนแบบแป้นพิมพ์ Windows Start + L ซึ่งฉันพลาดจากการใช้ Windows


ขณะพักแรมไม่สามารถแก้ไขคำตอบของเขาคุณอาจต้องการที่จะตรวจสอบเรื่องนี้: macosxhints.com/article.php?story=20050706194219822หรือว่าartofgeek.com/2009/09/08/...
cregox

คำตอบ:


7

สำหรับ 10.6 Snow Leopard ผู้ใช้สามารถเพิ่มบริการได้อย่างง่ายดายโดยใช้ Automator จากนั้นกำหนดแป้นพิมพ์ลัดใด ๆ โดยใช้การตั้งค่าระบบ ดูการสลับผู้ใช้อย่างรวดเร็ว / เมนู Apple? สำหรับรายละเอียด


7

หากคุณอยู่ที่ CLI คุณสามารถตั้งชื่อแทนต่อไปนี้เพื่อสลับอย่างรวดเร็ว:

alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'

สิ่งนี้และfastscriptsและ automator ทำให้การทำงานอย่างรวดเร็วของความต้องการ CLI สะดวก
bmike

4

ฉันใช้BetterTouchToolมากกว่านี้ แต่หนึ่งในการกระทำที่คุณสามารถทำได้คือ "แสดงหน้าจอเข้าสู่ระบบ" (ซึ่งแตกต่างจากการออกจากระบบและนำคุณเข้าสู่หน้าจอเข้าสู่ระบบ) ฉันใช้มันตลอดเวลาเพื่อล็อคเครื่องของฉันเมื่อฉันปล่อยไว้เป็นเวลานาน ... นี่เป็นภาพหน้าจอ:

ป้อนคำอธิบายรูปภาพที่นี่


4

พูดอย่างเคร่งครัด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

@Benjamin มันเป็น Command + Shift + Q
notnoop

2

ตาม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 ฟรีใช้งานได้โดยไม่ต้องดูแล!


PS: คุณสามารถเห็นสิ่งที่เกิดขึ้นกับสคริปต์ที่แนะนำอื่น ๆ ที่มีอยู่แล้ว: • AppleScript: บัญชี Switcher Applet macosxautomation.com/applescript/accountswitcher/index.html

คำตอบนี้ใหญ่เกินไปและค่อนข้างสับสนในการอ่านและคุณไม่ต้องการSparkอย่างน้อยสำหรับ Snow Leopard เพียงแค่สร้างสิ่งนั้นบน Automator ในรูปแบบบริการและเพิ่มทางลัดลงในการตั้งค่าระบบ ฉันจะเพิ่มคำตอบเองถ้าคุณไม่แก้ไขของคุณ smalltown-dude ;)
cregox


1

วิธีที่แตกต่างกันเล็กน้อยในการทำเช่นนี้พร้อมกับสิทธิประโยชน์ด้านความปลอดภัยที่เพิ่มขึ้น

  1. ใช้โปรแกรมรักษาหน้าจอเพื่อล็อคคอมพิวเตอร์ (อนุญาตให้ผู้ใช้สลับจากหน้าจอล็อค)
  2. ใช้ "มุมเมาส์ร้อน" เพื่อเปิดใช้งานการล็อค / เปิดใช้งานโปรแกรมรักษาหน้าจออย่างรวดเร็ว

ในการทำเช่นนี้คุณต้องปรับการตั้งค่าต่อไปนี้ในแอปพลิเคชันการตั้งค่าระบบของคุณ:

  • ภายใต้Exposé & SpacesในExposéแท็บตั้งหนึ่งที่คุณจะActive Screen CornersStart Screen Saver
  • ภายใต้SecurityในGeneralแท็บตรวจสอบตัวเลือกของRequire password ... after sleep or screen saver begins(คุณอาจต้องการเลือกimmediatelyจากเมนูแบบเลื่อนลง)

คุณจะต้องทำสิ่งต่อไปในแต่ละบัญชี (น่าเสียดายที่ไม่มีการตั้งค่าส่วนกลางสำหรับสิ่งนี้)

จากนั้นคุณสามารถเลื่อนเมาส์ไปที่มุมที่เหมาะสมของหน้าจอเพื่อล็อคคอมพิวเตอร์ (โดยการเริ่มโปรแกรมรักษาหน้าจอ) เมื่อมีคนกดคีย์ / เลื่อนเมาส์พวกเขาจะได้รับแจ้งให้เข้าสู่ระบบและสามารถสลับผู้ใช้จากที่นั่น


1

หากความต้องการคือการล็อค (เช่น Window-L ใน Windows) มีวิธีแก้ปัญหาง่าย ๆ .. ตั้งค่าหน้าจอให้ล็อคหน้าจอ (ต้องเข้าสู่ระบบ) และใช้ ctrl-shift-eject (ซ้ายล่างสองปุ่ม + บนขวาสุด สำคัญ). สิ่งนี้ล็อคหน้าจอของคุณ


1

เพื่อสลับไปยังผู้ใช้เฉพาะผมวิงวอนขอสคริปต์ผมพบว่าในความคิดเห็นของ 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"

สคริปต์ทั้งสองอยู่ในแคตตาล็อกปรอทของฉัน การสลับระหว่างบัญชีผู้ใช้เป็นเรื่องของไม่กี่วินาที

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.