Làm thế nào để bạn tạo một phím tắt kích hoạt chuyển đổi người dùng nhanh (tức là mở cửa sổ đăng nhập) trong Mac OS X Snow Leopard?
Tôi đang cố gắng mô phỏng tổ hợp bàn phím Windows Start + L mà tôi đã bỏ lỡ khi sử dụng Windows.
Làm thế nào để bạn tạo một phím tắt kích hoạt chuyển đổi người dùng nhanh (tức là mở cửa sổ đăng nhập) trong Mac OS X Snow Leopard?
Tôi đang cố gắng mô phỏng tổ hợp bàn phím Windows Start + L mà tôi đã bỏ lỡ khi sử dụng Windows.
Câu trả lời:
Đối với 10.6 Snow Leopard, người ta có thể dễ dàng thêm Dịch vụ bằng Máy tự động, sau đó gán bất kỳ phím tắt nào bằng Tùy chọn hệ thống. Xem chuyển đổi người dùng nhanh / Menu Apple? để biết chi tiết.
Nếu bạn đang ở CLI, bạn có thể đặt bí danh sau để chuyển nhanh chóng:
alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
Tôi sử dụng BetterTouchTool không chỉ cho việc này, nhưng, một trong những hành động mà nó cho phép bạn thực hiện là "Hiển thị màn hình đăng nhập" (khác với đăng xuất và để bạn ở màn hình đăng nhập). Tôi sử dụng nó TẤT CẢ THỜI GIAN để khóa máy của mình khi tôi để máy trong thời gian dài. Đây là ảnh chụp màn hình:
Nói đúng ra, Command+ Option+ Q sẽ đăng xuất bạn (với lời nhắc "Bạn có chắc không").
Nhưng tôi không thấy cách nào để kích hoạt chuyển đổi người dùng nhanh qua bàn phím. Bây giờ bạn có thể viết một tập lệnh AppleScript mà bạn có thể liên kết với tổ hợp phím. Ví dụ, xem điều này để biết chi tiết thực hiện.
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
Theo Király trong Thảo luận hỗ trợ của Apple, ông nói rằng sự kết hợp này hoạt động:
... Điều này có thể được thực hiện với Automator và Spark:
Mở Automator, chọn Run Shell Script và dán vào đây (tất cả trên một dòng):
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
Tệp -> Lưu dưới dạng ... -> chọn "Lưu dưới dạng ứng dụng" và lưu ứng dụng vào vị trí thuận tiện. Sau đó sử dụng Spark để gán phím tắt để mở ứng dụng đó.
Tôi sử dụng Automator và Spark để chuyển sang cửa sổ đăng nhập và sau đó đặt máy Mac của tôi vào chế độ ngủ khi tôi nhấn control-F13 ...
Giới thiệu về phần mềm Spark 3.0b9 :
Spark là một trình quản lý Phím tắt mạnh mẽ và dễ dàng. Với Spark, bạn có thể tạo Phím nóng để khởi chạy ứng dụng và tài liệu, thực thi AppleScript, ra lệnh iTunes và hơn thế nữa ... Bạn cũng có thể xuất và nhập thư viện Phím nóng hoặc lưu ở định dạng HTML để in. Spark là miễn phí, vì vậy sử dụng nó mà không cần kiểm duyệt!
Kiểm tra chuyển đổi người dùng nhanh với Butler và Butler .
Một cách hơi khác để làm điều này, với các lợi ích bảo mật được thêm vào (hoặc phiền toái tùy thuộc vào quan điểm của bạn), là
Để thực hiện việc này, bạn cần điều chỉnh các cài đặt sau trong ứng dụng Tùy chọn hệ thống:
Exposé & Spaces
, trong Exposé
tab, đặt một trong số của bạn Active Screen Corners
thànhStart Screen Saver
.Security
trong General
tab, đánh dấu vào tùy chọn Require password ... after sleep or screen saver begins
(bạn có thể muốn chọn immediately
từ trình đơn thả xuống).Bạn sẽ phải thực hiện sau trên mỗi tài khoản (tiếc là không có cài đặt toàn cầu cho việc này).
Sau đó, bạn có thể di chuyển chuột đến góc thích hợp của màn hình để khóa máy tính (bằng cách khởi động trình bảo vệ màn hình). Khi ai đó nhấn phím / di chuyển chuột, họ sẽ được nhắc đăng nhập và có thể chuyển người dùng từ đó.
Nếu mong muốn là khóa (như Window-L trong Windows), thì có một giải pháp rất đơn giản .. đặt trình bảo vệ màn hình của bạn để khóa màn hình (yêu cầu đăng nhập) và sử dụng ctrl-shift-eject (dưới cùng bên trái hai phím + trên cùng bên phải Chìa khóa). Điều này khóa màn hình của bạn.
Để chuyển sang một người dùng cụ thể, tôi gọi một tập lệnh mà tôi đã tìm thấy trong các bình luận của một bài viết hint.macworld.com . Tôi có vấn đề với nó vì vậy tôi đã điều chỉnh nó để có được nếu làm việc. Mật khẩu được lưu trữ trong móc khóa, vì vậy bạn không phải lo lắng về việc lưu trữ mật khẩu đăng nhập trong Cleartext. Bạn có thể tìm thấy ý chính ở đây .
--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
Để gọi màn hình đăng nhập, tôi có một đoạn script khác. Bạn có thể tìm thấy ý chính ở đây
do shell script "'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend"
Cả hai kịch bản đều có trong danh mục quicksilver của tôi. Chuyển đổi giữa các tài khoản người dùng là một vài giây.