Comment créez-vous un raccourci clavier qui active la commutation rapide de l'utilisateur (c'est-à-dire la fenêtre de connexion) dans Mac OS X Snow Leopard?
J'essaie d'émuler la combinaison de clavier Start + L de Windows, ce qui me manque de mon temps à l'aide de Windows.
Pour 10,6 Snow Leopard, on peut facilement ajouter un service à l'aide de l'automatiseur, puis affecter tout raccourci clavier à l'aide des préférences du système. Voir Menu de commutation rapide/Apple? Pour plus de détails.
Si vous êtes au CLI, vous pouvez avoir l'alias suivant défini pour passer rapidement:
alias switch='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'
J'utilise mieuxtouchtool Pour beaucoup plus que cela, mais une des actions qu'il vous permet de faire est "Afficher l'écran de connexion" (qui est différente de vous déconnecter et de vous laisser à l'écran de connexion) . Je l'utilise tout le temps pour verrouiller ma machine lorsque je le laisse pendant de longues périodes ... Voici une capture d'écran:
À proprement parler, Command+Option+Q Je vous connecte (avec "es-tu sûr".
Mais je ne vois aucun moyen de déclencher un interrupteur d'utilisateur rapide via le clavier. Vous pouvez maintenant écrire un script App AppleScript que vous pourriez associer à une frappe de frappe. Par exemple, voir Ceci pour les détails de la mise en œuvre.
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
Selon Király In Apple Discussions de soutien, il dit que cette combinaison fonctionne:
... Cela peut être fait avec l'automatiseur et l'étincelle:
Ouvrez l'automatiseur, sélectionnez Exécuter le script Shell et Coller dans ceci (tous sur une ligne):
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
Fichier -> Enregistrer sous ... -> Sélectionnez "Enregistrer sous l'application" et enregistrez l'application dans un endroit pratique. Ensuite, utilisez Spark pour attribuer un raccourci clavier pour ouvrir cette application.
J'utilise Automator et Spark pour passer à la fenêtre de connexion, puis mettre mon Mac pour dormir lorsque je appuie sur Control-F13 ...
À propos de Spark 3.0B9 logiciel :
Spark est un gestionnaire de raccourcis puissant et facile. Avec Spark Vous pouvez créer des touches de raccourci pour lancer des applications et des documents, exécutez AppleScript, commandez iTunes, etc. Vous pouvez également exporter et importer votre bibliothèque de clés à chaud ou enregistrer le format HTML Pour l'imprimer. Spark est libre, utilisez-le sans modération!
Pour passer à un utilisateur spécifique, j'invoque un script que j'ai trouvé dans les commentaires d'un hint.macworld.com article . J'ai eu des problèmes avec cela, donc je l'ai modifié pour avoir si de travailler. Le mot de passe est stocké dans le porte-clés, vous n'avez donc pas à vous soucier de stocker le mot de passe de connexion à ClearText. Vous pouvez trouver le gist ici .
--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
Pour simplement appeler l'écran de connexion, j'ai un autre script. Vous pouvez trouver le gist ici
do Shell script "'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend"
Les deux scripts sont dans mon catalogue Quicksilver. La commutation entre les comptes d'utilisateurs est une question de quelques secondes.
Une façon légèrement différente de le faire, avec des avantages de sécurité supplémentaires (ou des ennuis en fonction de votre point de vue), est de
Pour ce faire, vous devez ajuster les paramètres suivants dans la demande de préférences système:
Exposé & Spaces
, dans le Exposé
onglet, définissez l'un de vos Active Screen Corners
à Start Screen Saver
.Security
dans l'onglet General
, vérifiez l'option de Require password ... after sleep or screen saver begins
(Vous voudrez peut-être choisir immediately
de la liste déroulante).Vous devrez faire ce dernier sur chaque compte (malheureusement, il n'y a pas de paramètre global pour cela).
Ensuite, vous pouvez déplacer votre souris dans le coin approprié de l'écran pour verrouiller l'ordinateur (en démarrant l'économiseur d'écran). Lorsque quelqu'un appuie une clé/déplace la souris, ils seront invités à se connecter et à changer d'utilisateur de là.
Vérification commutation d'utilisateur rapide avec Butler et Butler .
Si le désir est de verrouiller (comme Window-L sous Windows), il y a une solution très simple. Définissez votre économiseur d'écran pour verrouiller l'écran (nécessiter une connexion) et utiliser ctrl-shift-éjection (bas à gauche de deux clés + haut la plus droite clé). Cela verrouille votre écran.