Создание сочетания клавиш для быстрого переключения пользователей в Mac OS X

Как создать сочетание клавиш, которое активирует быстрое переключение пользователей (т. е. открывает окно входа) в Mac OS X Snow Leopard?

Я пытаюсь эмулировать комбинацию клавиш Windows Start+L, которую я пропускаю с моего времени, используя Windows.

20
задан Brian Willis
22.11.2022 11:49 Количество просмотров материала 3498
Распечатать страницу

9 ответов

для 10.6 Snow Leopard, можно легко добавить службу с помощью Automator, а затем назначить любую комбинацию клавиш с помощью системных настроек. См.Быстрое Переключение Пользователей/Меню Apple? для сведения.

7
отвечен Arjan 2022-11-23 19:37

Если вы находитесь в CLI, вы могли бы иметь следующий набор псевдонимов для переключения быстро:

alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
5
отвечен 2022-11-23 21:54

Я использую BetterTouchTool для гораздо большего, чем просто это, но одно из действий, которое он позволяет вам сделать, это "показать экран входа в систему" (который отличается от выхода из системы и оставить вас на экране входа в систему). Я использую его все время, чтобы заблокировать мою машину, когда я оставляю его в течение длительного периода времени... Вот скриншот:

enter image description here

3
отвечен Levi Figueira 2022-11-24 00:11

строго говоря, команда+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
3
отвечен Benjamin Schollnick 2022-11-24 02:28

согласно Király в Apple, поддерживают дискуссии, он говорит, что эта комбинация работает:

...Это можно сделать с помощью Automator и Spark:

откройте Automator, выберите Run Shell Script и вставьте в него (все в одной строке):

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
-1 - > Сохранить Как... - >выберите "Сохранить как приложение" и сохраните приложение в удобном для вас месте. Затем используйте Spark, чтобы назначить сочетание клавиш для открытия этого приложения.

Я использую Automator и Spark для переключения в окно входа и перевода компьютера Mac в режим сна при нажатии клавиши control-F13...

о Искра 3.Программное обеспечение 0b9:

Spark-это мощный и простой менеджер ярлыков. С помощью Spark вы можете создавать горячие клавиши для запуска приложений и документов, выполнять AppleScript, команду iTunes и многое другое... Можно также экспортировать и импортировать библиотеку горячих клавиш или сохранить ее в формате HTML для печати. Spark бесплатно, так что используйте это без умеренности!

2
отвечен Josh Lee 2022-11-24 04:45
1
отвечен nik 2022-11-24 07:02

немного другой способ сделать это, с дополнительными преимуществами безопасности (или досадливости в зависимости от вашей точки зрения), является

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

чтобы сделать это, вам нужно настроить следующие параметры в приложении Системные настройки:

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

вам придется сделать последнее для каждой учетной записи (к сожалению, для этого нет глобальных настроек).

затем вы можете переместить мышь в соответствующий угол экрана, чтобы заблокировать компьютер (запустив экранную заставку). Когда кто-то нажимает клавишу/перемещение мыши они будут предложено войти в систему и может переключаться пользователей оттуда.

1
отвечен drfrogsplat 2022-11-24 09:19

Если желание блокировать (как Window-L в Windows), то есть очень простое решение .. установите заставку для блокировки экрана (требуется вход в систему) и используйте ctrl-shift-eject (нижняя левая две клавиши + верхняя самая правая клавиша). Это блокирует экран.

1
отвечен user51303 2022-11-24 11:36

перейти к конкретному пользователю я вызвать скрипт я нашел в комментариях 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. Переключение между учетными записями пользователей занимает несколько секунд.

1
отвечен oschrenk 2022-11-24 13:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх