rcmdnk's blog

Keyboard Shortcut

ちょっとMacのツールを整理しようと思って色々いじってた中の1つとして、 AppleScriptのキーボードショートカットへの割当を Karabinerを使って行うことにしました。

AppleScript

主にウィンドウの大きさを変えたりするのにAppleScriptで色々作って、 それをキーボードショートカットで呼び出しています。

ウィンドウを決まった大きさにするだけのアプリは色々ありますが、 細かい大きさの指定(微妙に全画面より小さくする)とか 徐々に縮めたり広げたりするとか、 後外部ディスプレイをつなげた時に適時配置をするとか、ということを 自分の好きな様に設定出来る物は無いので作ってしまえば便利です。 (ホントはSwiftとかで作ってアプリっぽくしたいけども。。。)

AppleScriptはメニューバーから実行できる様にすることも出来ますが、 やはりキーボードでパッと使用出来る方が便利です。

これまでの設定

最初は Spark というHot-key managerを使っていましたが、 BetterTouchTool を本格的に使い始めてこちらにもキーボードショートカットキーの 割当が出来る事からBetterTouchToolに全て移行しました。

それはそれで良いのですが、 今回KarabinerでもAppleScript等を割り当てられることを知り、 Karabinerは設定ファイルがXMLでそのファイルをDropbox & GitHubで管理してたり するので、 色々設定するにはKarabinerの方が都合が良いので Karabinerに移行することに。

Karabinerでの設定方法

Documentが充実してるので見れば分かります。

private.xml Reference Manual - Karabiner - OS X用のソフトウェア: https://pqrs.org/osx/karabiner/xml.html.ja#vkopenurldef

前見た時よりもまた大分充実してる。

簡単に説明すると、

<vkopenurldef>
  <name>KeyCode::VK_OPEN_URL_APPLESCRIPT.close</name>
  <url type="shell">
    <![CDATA[ osascript ~/Library/Scripts/close.scpt ]]>
  </url>
</vkopenurldef>

みたいな設定を書いておくと、 VK_OPEN_URL_APPLESCRIPT.closeというKeyCodeが作成され、

<item>
  <name>Cmd-4 to Window close</name>
  <identifier>private.cmd_4_to_win_close</identifier>
  <autogen>
    __KeyToKey__ KeyCode::KEY_4,
    VK_COMMAND|ModifierFlag::NONE,
    KeyCode::VK_OPEN_URL_APPLESCRIPT.close
  </autogen>
</item>

の様に通常のキー割り当ての様に機能を割り当てられます。

vkopenurldefの中で、nameでは必ず

KeyCode::VK_OPEN_URL_

から始まる必要があります。(その後は自由。)

urltypeshellにすることでシェルコマンドの実行を行うのですが、 ここではコマンドラインからAppleScript等スクリプトを実行するosascript1を使う事で AppleScriptを実行しています。

勿論上のDocumentにあるように

/bin/date | /usr/bin/pbcopy

といった(今日の日付を出してそれをクリップボードにコピー)通常のコマンドも実行できます。

open -a /Applications/Firefox.appなどとしておけば アプリを立ち上げる事も出来ます。

shellの設定の際には urlにはCDATAセクション2を使って記述します。

typeを指定しないで通常のURLをurlに書いておけば ブラウザで特定のページを開くことも出来ます。

/…の様なファイルパスを書いておけばファイルを開くことも可能です。 (どちらもshellopenを使っても出来ますが直接書けて便利。)

Sponsored Links
Sponsored Links

« Firefoxのabout:config設定を.vimperatorrcで管理する Macでキーボードショートカットでメニューバーにフォーカスする方法 »

}