ここ最近、というか 一個前に書いた 新しいキーマップを設定してすぐくらいから fcitx が不調でインライン入力が全然できなくなってた。ので iBus を使う事にしたのと、 xcape を使って入力モードを左 ALT でアルファベット、右 ALT で日本語、と切り替えるようにした。とても快適なので、設定をメモがてらブログに残しておく。
環境は Ubuntu 16.04
そもそも発端は fcitx の不調を twitter でつぶやいていたら @ursm さんが ibus なら問題ないと教えてくれた事にある。
@tanaka51 Gnome デフォルトの ibus 使ってますが、気付くとステータスバーのインジケータが消えてる以外は問題ないです
— Keita Urashima (@ursm) 2016年10月31日
そしてこの一個前の記事を書いた時に xcape の存在も教わっていた。
@tanaka51 xcape を使うと Karabiner みたいな動きにできて便利です https://t.co/aCFjzBiV7N
— Keita Urashima (@ursm) 2016年10月25日
で、今回 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 キーを押すタイミングがあまり直感的ではない気がする)
- keypad
- Program + F12
- keypad
- PrintScr
- 置き換えたいキー
ここまで追記
ここから追記2
更に @ursm さんに教えてもらって、 ~/.zshrc
に書いた xcape を起動する処理を ~/.xprofile
に移した。 zsh 起動するたびに無駄な処理が走らなくて良い。
ここまで追記2
以上で、左 ALT でアルファベット、右 ALT で日本語入力とできるようになった。 Mac で Karabiner 使って文字入力設定したのと同じ感じにできた。便利。 @ursm さんありがとうございました!