Erstellen Sie eine Tastenkombination für den schnellen Benutzerwechsel in Mac OS X

16

Wie erstelle ich eine Tastenkombination, die einen schnellen Benutzerwechsel in Mac OS X Snow Leopard ermöglicht (dh das Anmeldefenster öffnet)?

Ich versuche, die Windows Start + L-Tastaturkombination zu emulieren, die ich aus meiner Zeit mit Windows vermisse.

Brian Willis
quelle
Auch wenn Smalltown seine Antwort nicht korrigiert, möchten Sie dies überprüfen: macosxhints.com/article.php?story=20050706194219822 oder das: artofgeek.com/2009/09/08/…
cregox

Antworten:

7

In 10.6 Snow Leopard können Sie mithilfe von Automator ganz einfach einen Dienst hinzufügen und anschließend mithilfe der Systemeinstellungen eine beliebige Tastenkombination zuweisen. Siehe Schnelle Benutzerumschaltung / Apple-Menü? für Details.

Arjan
quelle
7

Wenn Sie sich an der CLI befinden, können Sie den folgenden Alias ​​für einen schnellen Wechsel festlegen:

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

quelle
Dies und FastScripts und Automator machen die schnelle Arbeit, eine CLI zu benötigen, zum Kinderspiel .
bmike
4

Ich benutze BetterTouchTool für viel mehr als nur dies, aber eine der Aktionen, die Sie ausführen können, ist " Anmeldebildschirm anzeigen " (was sich vom Abmelden unterscheidet und Sie auf dem Anmeldebildschirm belässt). Ich benutze es die ganze Zeit, um meine Maschine zu sperren, wenn ich sie für längere Zeit verlasse ... Hier ist ein Screenshot:

Bildbeschreibung hier eingeben

Levi Figueira
quelle
4

Streng genommen Command+ Option+ Q loggt Sie aus (mit „Sind Sie sicher“ Prompt).

Aber ich sehe keine Möglichkeit, einen schnellen Benutzerwechsel über die Tastatur auszulösen. Jetzt können Sie ein AppleScript-Skript schreiben, das Sie mit einem Tastendruck verknüpfen können. In diesem Abschnitt finden Sie beispielsweise Implementierungsdetails.

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 Schollnick
quelle
@ Benjamin, es ist Befehl + Umschalt + Q
notnoop
2

Laut Király in Apple Support Discussions funktioniert diese Kombination folgendermaßen:

... Dies kann mit Automator und Spark durchgeführt werden:

Öffnen Sie Automator, wählen Sie "Shell-Skript ausführen" und fügen Sie Folgendes ein (alles in einer Zeile):

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

Datei -> Speichern unter ... -> Wählen Sie "Als Anwendung speichern" und speichern Sie die App an einem geeigneten Ort. Verwenden Sie dann Spark, um eine Tastenkombination zum Öffnen dieser App zuzuweisen.

Ich verwende Automator und Spark , um zum Anmeldefenster zu wechseln, und versetze meinen Mac in den Ruhezustand, wenn ich die Tastenkombination F13 drücke.

Über Spark - 3.0b9 Software :

Spark ist ein leistungsstarker und einfacher Shortcuts-Manager. Mit Spark können Sie Tastenkürzel erstellen, um Anwendungen und Dokumente zu starten, AppleScript auszuführen, iTunes zu steuern und vieles mehr. Sie können Ihre Tastenkürzel-Bibliothek auch exportieren und importieren oder im HTML-Format speichern, um sie zu drucken. Spark ist kostenlos, nutzen Sie es also ohne Mäßigung!

Josh Lee
quelle
PS: Sie können auch sehen, was mit anderen vorgeschlagenen Skripten los ist : • AppleScript: Account Switcher Applet macosxautomation.com/applescript/accountswitcher/index.html
Diese Antwort ist viel zu groß und ziemlich verwirrend zum Lesen, und Sie brauchen Spark zumindest für Snow Leopard nicht wirklich . Erstellen Sie dies einfach in Automator as a Service und fügen Sie in den Systemeinstellungen eine Verknüpfung hinzu. Ich werde selbst eine Antwort hinzufügen, wenn Sie Ihre nicht reparieren, Smalltown-Dude. ;)
cregox
1

Ein etwas anderer Weg, dies mit zusätzlichen Sicherheitsvorteilen (oder Ärgernissen, abhängig von Ihrer Sichtweise) zu tun, ist:

  1. Verwenden Sie den Bildschirmschoner, um den Computer zu sperren (Benutzer können vom Sperrbildschirm aus wechseln).
  2. Verwenden Sie "Hot-Mouse-Ecken", um eine schnelle Sperre / Bildschirmschoner-Aktivierung zu ermöglichen

Dazu müssen Sie die folgenden Einstellungen in Ihrer Anwendung "Systemeinstellungen" anpassen:

  • Legen Sie Exposé & Spacesauf der ExposéRegisterkarte unter eines Ihrer Active Screen CornersZiele fest Start Screen Saver.
  • Aktivieren Sie Securityauf der GeneralRegisterkarte die Option Require password ... after sleep or screen saver begins(Sie können immediatelyaus der Dropdown-Liste auswählen ).

Letzteres müssen Sie für jedes Konto durchführen (leider gibt es dafür keine globale Einstellung).

Dann können Sie Ihre Maus in die entsprechende Ecke des Bildschirms bewegen, um den Computer zu sperren (indem Sie den Bildschirmschoner starten). Wenn jemand eine Taste drückt oder die Maus bewegt, wird er aufgefordert, sich anzumelden und kann von dort aus den Benutzer wechseln.

drfrogsplat
quelle
1

Wenn Sie sperren möchten (wie Windows-L), gibt es eine sehr einfache Lösung. Stellen Sie Ihren Bildschirmschoner so ein, dass der Bildschirm gesperrt wird (Anmeldung erforderlich) und drücken Sie Strg-Umschalt-Auswurf (zwei Tasten links unten + ganz oben rechts oben) Schlüssel). Dies sperrt Ihren Bildschirm.

user51303
quelle
1

Um zu einem bestimmten Benutzer zu wechseln, rufe ich ein Skript auf, das ich in den Kommentaren eines hints.macworld.com- Artikels gefunden habe . Ich hatte Probleme damit, also habe ich es optimiert, um zur Arbeit zu kommen. Das Kennwort wird im Schlüsselbund gespeichert, sodass Sie sich nicht um das Speichern des Anmeldekennworts im Klartext kümmern müssen. Das Wesentliche finden Sie hier .

--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

Um den Anmeldebildschirm aufzurufen, habe ich ein anderes Skript. Das Wesentliche finden Sie hier

do shell script "'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend"

Beide Skripte befinden sich in meinem Quecksilber-Katalog. Das Wechseln zwischen Benutzerkonten dauert nur wenige Sekunden.

oschrenk
quelle