Mac OS X'te hızlı kullanıcı değiştirme için klavye kısayolu oluşturma


16

Mac OS X Snow Leopard'da hızlı kullanıcı değiştirmeyi etkinleştiren (yani oturum açma penceresini açan) bir klavye kısayolu nasıl oluşturulur?

Windows'u kullanırken zamanımdan kaçırdığım Windows Start + L klavye kombinasyonunu taklit etmeye çalışıyorum.


: Smalltown onun cevabını düzeltmez ise, bu kontrol etmek isteyebilirsiniz macosxhints.com/article.php?story=20050706194219822 veya bu: artofgeek.com/2009/09/08/...
cregox

Yanıtlar:



7

CLI'deyseniz, aşağıdaki takma adın hızlı bir şekilde geçiş yapmasını sağlayabilirsiniz:

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

Bu ve fastscripts ve automator, bir CLI'ye ihtiyaç duymanın hızlı çalışmasını kolaylaştırır.
bmike

4

BetterTouchTool'u bundan çok daha fazlası için kullanıyorum , ancak yapmanıza izin verdiği eylemlerden biri "Oturum Açma Ekranını Göster" ( oturumunuzu kapatıp oturum açma ekranından ayrılmanızdan farklı). Makinemi uzun süre bıraktığımda kilitlemek için TÜM ZAMANI kullanıyorum… İşte bir ekran görüntüsü:

resim açıklamasını buraya girin


4

Kesinlikle konuşmak gerekirse, Command+ Option+ Q oturumunuzu kapatır ("Emin misiniz?" İstemiyle).

Ancak klavye aracılığıyla hızlı bir kullanıcı anahtarını tetiklemenin bir yolunu görmüyorum. Artık bir tuş vuruşuyla ilişkilendirebileceğiniz bir AppleScript komut dosyası yazabilirsiniz. Örneğin, bakınız bu uygulama ayrıntıları için.

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

2

Apple Destek Tartışmalarındaki Király'ye göre, bu kombinasyonun işe yaradığını söylüyor:

... Bu Automator ve Spark ile yapılabilir:

Automator'ı açın, Kabuk Betiğini Çalıştır'ı seçin ve şunu yapıştırın (hepsi bir satıra):

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

Dosya -> Farklı Kaydet ... -> "Uygulama olarak kaydet" i seçin ve uygulamayı uygun bir yere kaydedin. Ardından, bu uygulamayı açmak için bir klavye kısayolu atamak için Spark'ı kullanın.

Oturum açma penceresine geçmek için Automator ve Spark'ı kullanıyorum ve sonra kontrol-F13'e bastığımda Mac'imi uyku moduna sokuyorum ...

Hakkında Kıvılcım 3.0b9 yazılımı :

Spark güçlü ve kolay bir Kısayollar yöneticisidir. Spark ile uygulamaları ve belgeleri başlatmak, AppleScript'i yürütmek, iTunes'a komut vermek ve daha pek çok şey yapmak için Kısayol Tuşları oluşturabilirsiniz ... Ayrıca Kısayol Tuşları kitaplığınızı dışa ve içe aktarabilir veya yazdırmak için HTML formatında kaydedebilirsiniz. Kıvılcım ücretsiz, bu yüzden ılımlı olmadan kullanın!


Not: Orada zaten önerilen diğer komut dosyalarının ne olduğunu da görebilirsiniz: • AppleScript: Hesap Değiştirici Uygulaması macosxautomation.com/applescript/accountswitcher/index.html

Bu cevap çok büyük ve okumak oldukça kafa karıştırıcı ve en azından Snow Leopard için Spark'a gerçekten ihtiyacınız yok . Bunu Automator'da bir Hizmet olarak oluşturun ve Sistem Tercihleri'ne bir kısayol ekleyin. Seninkini düzeltmezsen kendime bir cevap ekleyeceğim, küçük kasaba-ahbap. ;)
cregox


1

Ek güvenlik avantajları (veya bakış açınıza bağlı olarak sıkıntılar) ile bunu yapmanın biraz farklı bir yolu,

  1. bilgisayarı kilitlemek için ekran koruyucuyu kullanma (kullanıcının kilit ekranından geçişine izin verme)
  2. hızlı kilitleme / ekran koruyucu etkinleştirmeyi etkinleştirmek için "sıcak fare köşeleri" kullanın

Bunu yapmak için, Sistem Tercihleri ​​uygulamanızda aşağıdaki ayarları yapmanız gerekir:

  • Altında Exposé & Spaces, içinde Exposésekme, sizin birini ayarlayın Active Screen Cornersetmek Start Screen Saver.
  • Altında Securityiçinde Generalsekme, seçeneği işaretleyin Require password ... after sleep or screen saver begins(eğer seçmek isteyebilirsiniz immediatelyaçılır menüden).

Her hesapta ikincisini yapmanız gerekir (ne yazık ki bunun için küresel bir ayar yoktur).

Ardından, bilgisayarı kilitlemek için farenizi ekranın uygun köşesine getirebilirsiniz (ekran koruyucuyu başlatarak). Birisi bir tuşa bastığında / fareyi hareket ettirdiğinde, oturum açması istenir ve kullanıcıları oradan değiştirebilir.


1

Eğer arzu kilitlemekse (Windows'ta Windows-L gibi), o zaman çok basit bir çözüm var .. ekranınızı ekranı kilitleyecek şekilde ayarlayın (oturum açma gerektirir) ve ctrl-shift-eject (sol alt iki tuş + en sağ üst) tuşu). Bu ekranınızı kilitler.


1

Belirli bir kullanıcıya geçmek için bir hints.macworld.com makalesinin yorumlarında bulduğum bir komut dosyasını çağırıyorum . Onunla sorunları vardı, bu yüzden eğer işe almak için tweaked. Parola anahtar zincirinde saklanır, bu nedenle oturum açma parolasını açık metin olarak saklama konusunda endişelenmenize gerek yoktur. Buradaki özü burada bulabilirsiniz .

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

Sadece Giriş Ekranını çağırmak için başka bir senaryom var. Buradaki özü burada bulabilirsiniz

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

Her iki komut dosyası da quicksilver kataloğumda. Kullanıcı hesapları arasında geçiş yapmak birkaç saniye sürer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.