Mac OS Xでユーザーをすばやく切り替えるためのキーボードショートカットを作成する


14

Mac OS X Snow Leopardでユーザーの高速切り替えを有効にする(ログインウィンドウを表示する)キーボードショートカットを作成するにはどうすればよいですか?

Windows Start + Lキーボードの組み合わせをエミュレートしようとしていますが、これはWindowsを使用しているときに見逃しています。


:smalltownは彼の答えを修正しませんが、あなたはこれをチェックすることをお勧めしますmacosxhints.com/article.php?story=20050706194219822またはその:artofgeek.com/2009/09/08/...
cregox

回答:



5

CLIを使用している場合は、次のエイリアスを設定してすばやく切り替えることができます。

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

これとfastscriptとオートマトンにより、CLIを必要とする作業が迅速になります。
-bmike

3

BetterTouchToolを使用するのはこれだけではありませんが、BetterTouchToolでできることの1つは、「ログイン画面の表示」です(これはログアウトしてログイン画面を表示するのとは異なります)。マシンを長時間放置すると、常にそれを使用してマシンをロックします…スクリーンショットは次のとおりです。

ここに画像の説明を入力してください


3

厳密に言えば、Command+ Option+ Q はログアウトします(「Are you sure」プロンプトが表示されます)。

しかし、キーボードを介して高速のユーザー切り替えをトリガーする方法は見当たりません。これで、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

、これは、コマンド+ Shiftキー+ Q @Benjaminだ
notnoop

2

Apple Support DiscussionsのKirály氏によると、彼はこの組み合わせが機能すると述べています。

...これはAutomatorとSparkで実行できます。

Automatorを開き、[シェルスクリプトの実行]を選択し、これを貼り付けます(すべて1行で)。

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

ファイル->名前を付けて保存...->「アプリケーションとして保存」を選択し、アプリを便利な場所に保存します。次に、Sparkを使用してキーボードショートカットを割り当て、そのアプリを開きます。

AutomatorとSparkを使用してログインウィンドウに切り替え、control-F13を押すとMacをスリープ状態にします...

Spark 3.0b9ソフトウェアについて:

Sparkは強力で簡単なショートカットマネージャーです。Sparkを使用すると、ホットキーを作成してアプリケーションやドキュメントを起動したり、AppleScriptを実行したり、iTunesにコマンドを送信したりできます。また、ホットキーライブラリをエクスポートおよびインポートしたり、HTML形式で保存して印刷することもできます。Sparkは無料なので、節度なしで使用してください!


PS:あなたはすでにそこまで他の提案のスクリプトで何を見ることができました:• のAppleScript:アカウントスイッチャーアプレット macosxautomation.com/applescript/accountswitcher/index.html

この答えは大きすぎて読みにくいので、Snow Leopardには少なくともSparkは必要ありません。Automatorをサービスとして作成し、システム環境設定でショートカットを追加するだけです。あなたがあなたのものを修正しない場合、私は答えを自分で追加します、スモールタウンの男。;)
クレゴックス


1

セキュリティの利点(または視点によっては煩わしさ)を追加して、これを行うわずかに異なる方法は、

  1. スクリーンセーバーを使用してコンピューターをロックします(ユーザーがロック画面から切り替えられるようにします)
  2. 「ホットマウスコーナー」を使用して、高速ロック/スクリーンセーバーのアクティブ化を有効にします。

これを行うには、システム環境設定アプリケーションで次の設定を調整する必要があります。

  • 下ではExposé & Spaces、中Exposéタブ、あなたの1つを設定Active Screen CornersするにStart Screen Saver
  • 以下の下SecurityにあるGeneralタブのオプションをチェックRequire password ... after sleep or screen saver begins(あなたが選択することもできますimmediatelyドロップダウンからの)。

各アカウントで後者を行う必要があります(残念ながら、これにはグローバルな設定はありません)。

次に、マウスを画面の適切なコーナーに移動して、コンピューターをロックします(スクリーンセーバーを起動します)。誰かがキーを押す/マウスを動かすと、ログインするように求められ、そこからユーザーを切り替えることができます。


1

ロックしたい場合(WindowsのWindow-Lなど)、非常に簡単な解決策があります。キー)。これにより画面がロックされます。


1

特定のユーザーに切り替えるには、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カタログにあります。ユーザーアカウントの切り替えは数秒で完了します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.