ぴよログ

↓に移転したのでこっちは更新されません、多分。

Macで特定のアプリでのみ独自ショートカットを有効にする

移転しました →

頻繁に行う操作がキーボードで出来なくてストレスがやばいこと、別にありませんよね。僕はしょっちゅうありますが、そういうのに出くわすとついついそのストレスを回避する方向で頑張ってしまって何をやっていたのか忘れたりするっていうことが多々。

メニュー項目にショートカットを割り当てる

メニューには存在するけどショートカットがアサインされていないような場合は特別なツールを導入することなく設定することができるようです。詳細はこちら。

Macで任意のキーボードショートカットを設定する方法 | nanapi [ナナピ]

メニュー項目にない場合

たまにあるんですよそういうのが。ショートカットはあるんだけどメニューにも特に書かれてい上に、カスタマイズもできないようなのが。ファンクションキーなんかが使われていると最悪なのでできれば別のキーにしたいということになるわけです。

幸い常用しているキーリマップツールでそれができるので、オリジナルの設定を追加してみました。

KeyRemap4MacBook - OS X用のソフトウェア

設定ファイルを開く

KeyRemap4Macbookから設定ファイルがある場所を開いてくれます。

private.xmlを書く

公式リファレンスから持ってきたものです。

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>APPSTORE</appname>
    <equal>com.apple.appstore</equal>
  </appdef>

  <item>
    <name>Space to Tab on App Store.app</name>
    <identifier>private.appdef</identifier>
    <only>APPSTORE</only>
    <autogen>__KeyToKey__ KeyCode::SPACE, KeyCode::TAB</autogen>
  </item>
</root>
  • onlyタグ => 特定のアプリケーションでのみ有効にしたい場合に使う
  • identifierタグ => 各アイテムの識別子で、一意の文字列ならなんでもよさそう
  • appdefタグ => onlyで使うアプリ名をBundle IDを使って定義する

このサンプルはMacAppStoreでのみショートカットを有効にするという例ですが、appdefequalを書き換えることによって対象のアプリケーションを変えることももちろん可能です。

Bundle IDを調べる

で、そのBundle IDを調べるにはどうしたらいいのかというと、XXXXXXX.appの中を覗けばわkるようになっています。

Finderでアプリケーションフォルダを開いて対象のXXXXXX.appを右クリックするとパッケージの内容を表示となるので、その中にあるContentsフォルダの中にあるInfo.plistを開きます。

そしてCFBundleIdentifierを検索すると次のようなものが見つかると思います(↓はChromeの例)。

     <key>CFBundleIdentifier</key>
     <string>com.google.Chrome</string>

下の行、com.google.ChromeがBundleIDのです。先ほどの設定ファイルのappdefのところにcom.google.Chromeと書けばChromeでのみ有効となるショートカットを定義することができるようになるわけです。

ショートカットを有効にする

ReloadXMLボタンを押すとprivate.xmlに書いた項目が一番上に表れます。あとはチェックを入れて有効にすればOK。