Створіть комбінацію клавіш для швидкої комутації користувачів у 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

Якщо ви перебуваєте в CLI, ви можете встановити наступний псевдонім для швидкого перемикання:

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

Це та фактури та автоматизатор дозволяють швидко працювати з необхідністю 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

За словами Кіралі в дискусіях щодо підтримки Apple, він говорить, що ця комбінація працює:

... Це можна зробити за допомогою Automator and Spark:

Відкрийте Automator, виберіть Запустити скрипт оболонки та вставте в це (усе в одному рядку):

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

Файл -> Зберегти як ... -> виберіть "Зберегти як додаток" і збережіть додаток у зручному місці. Потім скористайтеся Spark, щоб призначити ярлик клавіатури, щоб відкрити цю програму.

Я використовую Автоматизатор та Іскру для переходу до вікна входу, а потім перекладаю свій Mac у режим сну, коли натискаю клавішу control-F13 ...

Про програмне забезпечення Spark 3.0b9 :

Spark - потужний і простий менеджер ярликів. За допомогою Spark ви можете створити Hot Keys для запуску програм та документів, виконання AppleScript, команди iTunes тощо ... Ви також можете експортувати та імпортувати свою бібліотеку Hot Keys або зберегти її у форматі HTML для її друку. Іскра безкоштовна, тому використовуйте її без помірності!


PS: Ви також можете побачити, що вже є з іншими запропонованими скриптами: • AppleScript: Account Switcher Applet macosxautomation.com/applescript/accountswitcher/index.html

Ця відповідь є занадто великою і досить заплутаною для читання, і вам не дуже потрібна Іскра, принаймні, для Snow Leopard. Просто створіть це на Automator як сервісі та додайте до нього ярлик у System Preferences. Я сам додам відповідь, якщо ти не виправиш свого, маленького парубка. ;)
Крегокс


1

Дещо інший спосіб зробити це з додатковими перевагами для безпеки (або роздратуванням залежно від точки зору)

  1. використання заставки для блокування комп'ютера (дозволяє користувачеві перемикатися з блокованого екрану)
  2. використовуйте "куточки гарячої миші", щоб активувати швидку активацію блокування / заставки

Для цього вам потрібно скорегувати такі налаштування у програмі Налаштування системи:

  • Під Exposé & Spaces, в Exposéзакладці, встановіть один з ваших Active Screen Cornersдо Start Screen Saver.
  • При Securityв Generalзакладці, перевірте варіант Require password ... after sleep or screen saver begins(ви можете вибрати immediatelyзі списку).

Вам доведеться робити це в кожному обліковому записі (на жаль, для цього немає глобальних налаштувань).

Потім ви можете перемістити мишу у відповідний кут екрана, щоб заблокувати комп'ютер (запустивши заставку). Коли хтось натисне клавішу / перемістить мишу, їм буде запропоновано увійти та може переключити користувачів звідти.


1

Якщо бажання заблокувати (наприклад, Window-L в Windows), то існує дуже просте рішення .. встановіть свою заставку для блокування екрана (потрібен вхід) та використовуйте ctrl-shift-eject (ліва нижня дві клавіші + вгорі сама права ключ). Це блокує ваш екран.


1

Для переходу до конкретного користувача я викликаю скрипт, який я знайшов у коментарях до статті 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"

Обидва сценарії знаходяться в моєму каталозі швидкої роботи. Перемикатися між обліковими записами користувачів - це питання декількох секунд.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.