Sierraでenthumbleキーバインドを使う方法(2017年4月時点)

こんにちは。

この記事に辿り着いた方はみなさんご存知のenthumbleキーバインド
一度使うとやめられないのですが、vimキーバインド等と比べてマイナーな存在なため、設定が簡単ではありません。

先日Sierraにアップグレードしたところ、Karabinerが動かなくなり、enthumbleを諦めるしか無いのか?!と思っていた所、
なんとか設定ができ、上手く動いていますので、設定方法をご紹介します。

必要なソフトは2つ

  • wwwjfy/Karabiner-Elements
  • Hammerspoon

github.com
github.com

Karabiner-Elementsのインストール

github.com
Karabiner-Elementsは通常版ではなく、wwwjfyさんがカスタマイズしたバージョンをインストールしてください。
すでに通常版をインストールしている方は、アンインストールしてからwwwjfy版をインストールしてください。
DownloadsのKarabiner-Elements-バージョン番号.dmg からインストーラがダウンロードできます。
(2017/4/10時点ではKarabiner-Elements-0.90.92.dmg)

インストーラの指示に従って、インストールしてください。

Karabiner-Elementsの設定

Karabiner-Elementsを開き、Virtual Keyboardタブを選択します。
Keyboard TypeがANSI(US配列)になっているので、JISに変更します。
変更できたら、Simple Modificationsタブを選択し、Quit Karabiner-Elementsをクリックして終了してください。
Finderを開き、画面最上部のメニューバーの「移動」→「フォルダへ移動」を選択し、
「~/.config/Karabiner」と入力して、移動を押してください。
karabiner.jsonというファイルがあるので、それをCotEditorで開いてください。
(標準のテキストエディットを使う場合は、環境設定で「標準テキスト」を選択し、「スマート引用符」のチェックを外してください)
以下のように書き換えを行います。赤文字が修正箇所です。
=======================================
{
"global": {
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false
},
"profiles": [
{
"devices": [],
"fn_function_keys": {
"f1": "display_brightness_decrement",
"f10": "mute",
"f11": "volume_decrement",
"f12": "volume_increment",
"f2": "display_brightness_increment",
"f3": "mission_control",
"f4": "launchpad",
"f5": "illumination_decrement",
"f6": "illumination_increment",
"f7": "rewind",
"f8": "play_or_pause",
"f9": "fastforward"
},
"name": "Default profile",
"one_to_many_mappings": {
"japanese_eisuu": ["right_option", "right_control", "right_shift", "right_command"]
},
"selected": true,
"simple_modifications": {},
"standalone_keys": {
"japanese_eisuu": "japanese_eisuu"
},
"virtual_hid_keyboard": {
"caps_lock_delay_milliseconds": 0,
"keyboard_type": "jis",
"standalone_keys_delay_milliseconds": 200
}
}
]
}
=======================================

上書き保存すれば、Karabiner-Elementsの設定は完了です。
Karabiner-Elementsを起動すれば、設定が有効になります。

この設定内容の説明は以下です。

  1. 英数キーをoption+control+shift+commandに置き換える
  2. 英数キーを単独で押したときは英数キーとして認識されるようにする
Hammerspoonのインストール

github.com
Hammerspoon-バージョン番号.zipをダウンロードし、解凍します。
(2017/4/10時点ではHammerspoon-0.9.52.zip)
Hammerspoonをアプリケーションフォルダにコピーしてください。

Hammerspoonの設定

Hammerspoonを起動すると、画面最上部のメニューバーにかなづちのアイコンが追加されます。
アイコンをクリックして、「Preferences」を選択します。
Launch Hammerspoon at loginにチェックを入れ、Enable Accessibilityボタンを押して、Hammerspoonを有効にします。
有効にしたら、Preferencesウィンドウは閉じます。

再びかなづちアイコンをクリックして、「Open Config」を選択します。
(標準のテキストエディットが開いた場合は、環境設定で「標準テキスト」を選択し、「スマート引用符」のチェックを外してください)

以下の内容を貼り付けて上書き保存します。

local function keyCode(key, modifiers)
   modifiers = modifiers or {}
   return function()
      hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), true):post()
      hs.timer.usleep(1000)
      hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), false):post()      
   end
end

local function remapKey(modifiers, key, keyCode)
   hs.hotkey.bind(modifiers, key, keyCode, nil, keyCode)
end

-- カーソル移動
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'l', keyCode('right'))
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'h', keyCode('left'))
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'j', keyCode('left'))
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'k', keyCode('down'))
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'i', keyCode('up'))

-- 削除
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'u', keyCode('delete'))
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'o', keyCode('forwarddelete'))

-- Enter
remapKey({'alt', 'ctrl', 'shift', 'cmd'}, 'space', keyCode('return'))

-- テキスト編集
-- remapKey({'ctrl'}, 'w', keyCode('x', {'cmd'}))
-- remapKey({'ctrl'}, 'y', keyCode('v', {'cmd'}))

-- コマンド
-- remapKey({'ctrl'}, 's', keyCode('f', {'cmd'}))
-- remapKey({'ctrl'}, '/', keyCode('z', {'cmd'}))
-- remapKey({'ctrl'}, 'g', keyCode('escape'))

-- ページスクロール
-- remapKey({'ctrl', 'shift'}, 'k', keyCode('pagedown'))
-- remapKey({'ctrl', 'shift'}, 'i', keyCode('pageup'))
-- remapKey({'ctrl', 'shift'}, 'j', keyCode('home'))
-- remapKey({'ctrl', 'shift'}, 'l', keyCode('end'))

この設定の下部の「テキスト編集」以下はサンプルですので、消しても構いません。

この設定ではoption+control+shift+command+◯キーをenthumbleキーバインドに対応づけています。
各人お好みの設定があると思うので、適宜編集してください。

再びかなづちアイコンをクリックして、「Reload Config」を選択します。

以上でenthumbleキーバインドが使えるようになりました。