bar_1

contents_map

2018年2月19日月曜日

macOS High SierraでKarabiner-Elementsだけで親指シフト入力環境を構築する方法

Fortniteが動くかとおもいEl Capitan (10.11.x) から一気にHigh Sierraにアップグレードしてみたものの, グラボがないとダメですと言われてゲームが起動できなかった.
これまで私がSierra系に更新していなかった理由は, Karabinerが動かないと聞いていたからだ. こうなったらSierra以降向けに開発されているという Karabiner-Elements (KE) で, 無理矢理NICOLA配列での親指シフト入力環境を実現する しかない……というわけで, とりあえず動くものができたので公開します.
動作確認した環境は下記:
  • OS version - macOS High Sierra (10.13.3)
  • IME - Google 日本語入力 2.20.2700.1 (基本設定: ローマ字入力)
  • Karabiner-Elements version - 11.5.0
試してないけどSierraでもイケると思う.
インプリしたのは, とりあえず NICOLA配列 (JAWP) で, 右シフトを「変換」キー, 左シフトを「無変換」キーとしています.

現状のこのNICOLA配列の実装の不具合としては:
  • けっこう前もって (よっこらしょという感じで) 親指シフトキーを押す必要がある
  • ときどきシフト状況が正確に把握されないことがある
という点が挙げられます. もっとうまい書き方があるかもしれない.

使い方

Karabiner-Elements (KE) をインストールしてから,
上記の2つのjsonファイルをダウンロードして, ディレクトリ: $HOME/.config/karabiner/assets/complex_modifications/ に格納してください.
次に, Karabiner-Elementsを起動してから Preferences... を開き, Complex Modifications タブを選択します. 下の方にある Add rule ボタンを押すと, 設定の一覧が出てきます.
この一覧の下の方に, 「無変換, 変換キーでIME Off, On」, 「親指シフト入力のためのNICOLA配列」があるので, Enableして下さい.

おおまかな仕組み

シフトごとにフラグとなる変数: Oyayubi-R, Oyayubi-L, Oyayubi-Any (右か左のどちらかが押されたとき用) を用意 (set_variable) して, 押下されたらセット, 離されたらリセットしています. この処理の記述をしているのが, muhenkan_henkan_ime.json です.
フラグの状態とIMEの状態に応じてmanipulateの処理が決まります. こちらは nicola_genenerated.json で記述しています.
ファイル名から察しがつくように, いちいちキー一つ一つの設定を書いていくのは面倒なので, 設定のためのjsonジェネレータをRubyで書いた――のだけど, こういうものがあると後から知った:

Conclusion

macOS High Serraで, Karabiner-Elementsだけで親指シフト入力を可能にした.

References

実装するにあたり, 以下のドキュメントが役に立ちました.

0 件のコメント:

コメントを投稿

何かありましたら、どうぞ: