OS Xでスクリプトを実行するためのショートカットを割り当てます


33

OS Xは、キーの組み合わせを通常コマンドラインで実行されるコマンドにバインドする簡単な方法を提供しますか?

たとえば、画面をすばやくロックするためのグローバルショートカットとして⌘ Cmd+ を割り当てる方法はありますか?L/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine

回答:


21

はい、ApplescriptまたはAutomatorでこれを行うことができます。

このようなことをしたのは、Automatorを使用して、すべてのアプリケーションで使用可能なサービスを作成することです。bash / zsh / ruby​​ / whateverスクリプトを実行するサービスを作成できます。次に、システム環境設定の「キーボード」ペインでキーの組み合わせをサービスにバインドできます。

このMacBreakポッドキャストの終わり近くで、この手順の詳細が示されています。

編集:私はあなたがSnow Leopardを使用していないことに気づいた。10.5.8では、システム全体のサービスを作成するのは簡単ではないと思います。Powerbookなのでアップグレードできないと思います。あなたはに見たいと思うかもしれませんFastScriptsあなたはアップルスクリプトに割り当てたキーボードショートカットにできます(10のキーボードショートカットまでのために自由に使用する)と、次のAppleScriptを使用します。

do shell script "/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine"

36

現在FastScriptsを使用しています。にはすべてのスクリプトが含まれている~/Library/Scripts/ため、手動でスクリプトを追加する必要はありません。また、アプリケーション固有のスクリプトもサポートします。また、修飾キーがリリースされるまでkeystrokeor key codeコマンドの前にスクリプトを停止するなど、AppleScriptで役立つ機能がいくつかあります。

Alfred 2用のPowerpackを購入した場合、次のようなワークフローを作成できます。

ホットキーにはデフォルトで短い遅延がありますが、トリガーの動作を変更することで短縮できます。

KeyRemap4MacBookは、シェルスクリプトの実行もサポートしています。

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_SHELL_say_a</name>
    <url type="shell">say a</url>
  </vkopenurldef>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_SHELL_say_a</autogen>
  </item>
</root>

スクリプトへのショートカットの割り当てをサポートする他のアプリケーション:

もう1つのオプションは、Automatorサービスを作成することです。

  1. Automatorを開き、サービステンプレートを選択します。
  2. 入力タイプとアプリケーションスコープが正しいことを確認するか、サービスが入力を受け取らない場合は「選択されたテキスト」を「入力なし」に変更します。
  3. スクリプトにRun Shell ScriptまたはRun AppleScriptアクションを追加します。
  4. サービスを保存し、システム環境設定からショートカットを設定します。

10.7以降、メニューバーからサービスメニューにカーソルを合わせるまでサービスのショートカットが機能しないバグがありました。サービスのショートカットが機能しないのは、サービスメニューのないアプリケーション(Towerなど)が最前面にある場合です。また、サービスが実行される前に顕著な遅延があります。


open -a ScreenSaverEngine少し短いです。
ヤリケイネン

クイックシルバー命令:macosxtips.co.uk/index_files/...
paragbaxi

FastScriptsは10ドルのシェアウェアですが、それだけの価値はあります。
有料オタク

F1をバインドしてターミナルを開くなどの基本的なFastScriptがありますか?
ニックT

1
Hammerspoonをリストに追加してください:)
金庫

1

BetterTouchToolを使用している場合、次のアクションを選択して、シェルコマンドにショートカットを割り当てることができます。他のアプリケーションの制御>ターミナルコマンドの実行


0

これが、私が作成したKeePass.shスクリプトの例です。私はちょうどそれで情報を取得し、ターミナルで実行するように設定しました。その後、デスクトップでエイリアスを作成しました。ターミナル内でKeePass.shスクリプトを実行し、アプリケーションを終了すると、開いているターミナルウィンドウを強制終了します。あなたはその最後の行を微調整したいかもしれません:-)

cd ~/Documents/KeePass
/Library/Frameworks/Mono.framework/Versions/current/bin/mono KeePass.exe 1>/dev/null 2>/dev/null
cd ~
killall Terminal

ここで他の人の答えのように特別なものを使用する必要はありません。

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