bar_1

contents_map

ラベル Karabiner-Elements の投稿を表示しています。 すべての投稿を表示
ラベル Karabiner-Elements の投稿を表示しています。 すべての投稿を表示

2019年12月25日水曜日

Karabiner-Elementsだけで親指シフト環境を構築(2019年版)

以前, Karabiner-Elements (以下, KE)だけで親指シフト環境を構築した. これはKEのバージョンアップのいつかのタイミングで, 不具合が発生するようになっていた.
この不具合について今回対策を試みたので, 本記事で2019年版として紹介する. 確認したのは以下の環境である:
  • OS: macOS High Sierra 10.13.6
  • IME: Google 日本語入力 2.25.3700.1(ローマ字入力)
  • Karabiner-Elements: 12.8.0
  • システム環境|キーボード>キーボード>修飾キー…のKarabiner VirtualHIDKeyboardの設定: デフォルト
  • キーボード: USB接続のJISキーボード Logicool K120
なお今回提案の親指シフト環境で, システム環境設定でのキーボード設定で修飾キーの入れ替えをしている場合, 分節調整(Ctrl-I, Ctrl-O)がうまく動作しなくなることを, 筆者は確認している. 原因は不明である

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

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