iBus Mozc と xcape

Nov 1, 2016  

ここ最近、というか 一個前に書いた 新しいキーマップを設定してすぐくらいから fcitx が不調でインライン入力が全然できなくなってた。ので iBus を使う事にしたのと、 xcape を使って入力モードを左 ALT でアルファベット、右 ALT で日本語、と切り替えるようにした。とても快適なので、設定をメモがてらブログに残しておく。

環境は Ubuntu 16.04

そもそも発端は fcitx の不調を twitter でつぶやいていたら @ursm さんが ibus なら問題ないと教えてくれた事にある。

そしてこの一個前の記事を書いた時に xcape の存在も教わっていた。

で、今回 iBus に変えたらインライン入力も調子良いし、ついでに xcape も設定して快適な文字入力環境が整った。

やったことは

  • iBus の設定で Mozc だけを使うようにする
  • Mozc のキー設定で、 Hankaku/Zenkaku -> Ctrl End / Hiragana -> Ctrl PageDown と設定
  • 起動してるアプリケーションを再起動して入力モードがうまく変わる事を確認
  • xcape を clone して build する
  • xcape -d -e 'Alt_L=Control_L|End;Alt_R=Control_R|Next' を実行して望みのキーコードが発行されてるか確認
  • 上記コマンドから -d を抜いて ~/.zshrc に書く

こんな感じで書いた

if [ -x $(command -v xcape)  ] && [ -z $(pgrep xcape | head -1) ]; then
  xcape -e 'Alt_L=Control_L|End;Alt_R=Control_R|Next'
fi

最初、後ろの部分の条件入れてなくて zsh をいくつか立ち上げたら xcape の動作が微妙になった。重複起動してると動作おかしくなるっぽい。何にせよいくつも起動させるのも気持ち悪いので必要だと思う。

(で、これを設定するためには左右 ALT が存在しないといけなくて、そのためには Kinesis は PC モードである必要があり、そうすると Super キーが存在せず、Ubuntu の Unity のショートカットがいくつか使えなくなった。が、文字入力の快適さには代えられないからそっちは諦めた。そのうち WM も変えよう…)

ここから追記

これまた @ursm さんに教えてもらったのだが、 Keypad mode の PrintScr に Super がいた。以下の順で押すと設定できる。(keypad キーを押すタイミングがあまり直感的ではない気がする)

  1. keypad
  2. Program + F12
  3. keypad
  4. PrintScr
  5. 置き換えたいキー

ここまで追記

ここから追記2

更に @ursm さんに教えてもらって、 ~/.zshrc に書いた xcape を起動する処理を ~/.xprofile に移した。 zsh 起動するたびに無駄な処理が走らなくて良い。

ここまで追記2

以上で、左 ALT でアルファベット、右 ALT で日本語入力とできるようになった。 Mac で Karabiner 使って文字入力設定したのと同じ感じにできた。便利。 @ursm さんありがとうございました!