Crea una scorciatoia da tastiera per passare rapidamente da un utente all'altro in Mac OS X.


16

Come si crea una scorciatoia da tastiera che attiva la commutazione rapida dell'utente (ovvero apre la finestra di accesso) in Mac OS X Snow Leopard?

Sto cercando di emulare la combinazione di tasti Start + L di Windows, che mi manca dal mio tempo usando Windows.


mentre smalltown non risolve la sua risposta, potresti voler controllare questo: macosxhints.com/article.php?story=20050706194219822 o quello: artofgeek.com/2009/09/08/…
cregox

Risposte:


7

Per 10.6 Snow Leopard, è possibile aggiungere facilmente un servizio tramite Automator e quindi assegnare qualsiasi scelta rapida da tastiera utilizzando Preferenze di Sistema. Vedi Cambio rapido utente / Menu Apple? per dettagli.


7

Se ci si trova nella CLI, è possibile impostare l'alias seguente impostato per passare rapidamente:

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

Questo, fastscripts e automator rendono veloce il lavoro di aver bisogno di una CLI a portata di mano.
bmike,

4

Uso BetterTouchTool per molto più di questo, ma una delle azioni che ti consente di fare è "Mostra la schermata di accesso" (che è diversa dal disconnettersi e lasciarti nella schermata di accesso). Lo uso TUTTO IL TEMPO per bloccare la mia macchina quando la lascio per lunghi periodi di tempo ... Ecco uno screenshot:

inserisci qui la descrizione dell'immagine


4

A rigor di termini, Command+ Option+ Q ti disconnetterà (con il prompt "Sei sicuro").

Ma non vedo alcun modo per attivare un rapido cambio utente tramite tastiera. Ora potresti scrivere uno script AppleScript, che potresti associare a una sequenza di tasti. Ad esempio, vedere questo per i dettagli di implementazione.

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 + Maiusc + Q
notnoop,

2

Secondo Király in Apple Support Discussions, afferma che questa combinazione funziona:

... Questo può essere fatto con Automator e Spark:

Apri Automator, seleziona Esegui script shell e incollalo (tutto su una riga):

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

File -> Salva con nome ... -> seleziona "Salva come applicazione" e salva l'app in un posto comodo. Quindi utilizza Spark per assegnare una scorciatoia da tastiera per aprire l'app.

Uso Automator e Spark per passare alla finestra di accesso e quindi mettere il mio Mac in stop quando premo control-F13 ...

Informazioni sul software Spark 3.0b9 :

Spark è un gestore di scorciatoie potente e facile. Con Spark è possibile creare tasti di scelta rapida per avviare applicazioni e documenti, eseguire AppleScript, comandare iTunes e altro ... È inoltre possibile esportare e importare la libreria di tasti di scelta rapida o salvarla in formato HTML per stamparla. Spark è gratuito, quindi usalo senza moderazione!


PS: Potresti anche vedere cosa succede con altri script suggeriti già disponibili: • AppleScript: Applet Switcher account macosxautomation.com/applescript/accountswitcher/index.html

Questa risposta è troppo grande e abbastanza confusa da leggere, e non hai davvero bisogno di Spark almeno per Snow Leopard. Basta crearlo su Automator come servizio e aggiungere un collegamento ad esso nelle Preferenze di Sistema. Aggiungerò io una risposta se non risolvi la tua, amico delle piccole città. ;)
cregox,


1

Un modo leggermente diverso di farlo, con ulteriori vantaggi per la sicurezza (o fastidi a seconda del punto di vista), è quello di

  1. utilizzare lo screen saver per bloccare il computer (consentendo all'utente di passare dalla schermata di blocco)
  2. usa "hot-mouse-corner" per abilitare il blocco rapido / l'attivazione del salvaschermo

Per fare ciò, è necessario regolare le seguenti impostazioni nell'applicazione Preferenze di Sistema:

  • Sotto Exposé & Spaces, nella Exposéscheda, imposta uno dei tuoi Active Screen Cornerssu Start Screen Saver.
  • Sotto Securityla Generalscheda, selezionare l'opzione di Require password ... after sleep or screen saver begins(si consiglia di scegliere immediatelydal menu a discesa).

Dovrai fare quest'ultimo su ciascun account (sfortunatamente non esiste un'impostazione globale per questo).

Quindi è possibile spostare il mouse nell'angolo appropriato dello schermo per bloccare il computer (avviando lo screen saver). Quando qualcuno preme un tasto / sposta il mouse, gli verrà richiesto di accedere e da qui gli utenti potranno cambiare utente.


1

Se il desiderio è di bloccare (come Window-L in Windows), allora c'è una soluzione molto semplice .. imposta lo screensaver per bloccare lo schermo (richiede l'accesso) e usa ctrl-shift-eject (in basso a sinistra due tasti + in alto a destra chiave). Questo blocca lo schermo.


1

Per passare a un utente specifico invoco uno script che ho trovato nei commenti di un articolo di hints.macworld.com . Ho avuto problemi con questo, quindi l'ho modificato per capire se lavorare. La password è memorizzata nel portachiavi, quindi non devi preoccuparti di memorizzare la password di accesso in chiaro. Puoi trovare l'essenza qui .

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

Per invocare la schermata di accesso ho un altro script. Puoi trovare l'essenza qui

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

Entrambi gli script sono nel mio catalogo Quicksilver. Il passaggio da un account utente all'altro richiede pochi secondi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.