仙豆のレシピ

ちょっとしたことでも書いていく姿勢で

Thinkpadのキーボード配列をHHKB風にしてみた(Fcitx)

初の英字キーボードにも関わらずHHKB無刻印モデルを買うという暴挙から2週間…今では手放せない存在と感じるまでになった、HHKB。となると当然ノートPCも慣れた配列で使いたいという欲が出てきますね。まあLinuxだし昔やったことあるし簡単に済むだろ…と思ったら案外ハマったので、備忘録として書いておこうと思います。

環境

Thinkpad X1 carbon
OS:Ubuntu14.04
キーボード:US配列
IM:ibus
IME:Mozc

以下のような配列。
f:id:senz:20140606162938j:plain

HHKBに近づけるために変えたいと思ったのは

  1. CapsLockと左のCtrlキーを入れ替える
  2. 右のbackslashキーとBackspaceキーを入れ替える

の2点。HHKBはAキーの左にCtrlキー、Enterキーの上にBackspaceキーがあるのです。

まずはxmodmap

まあ定番というか、昔やったことある方法。~/.Xmodmapに以下を書き込む。

keycode 51 = BackSpace
keycode 22 = backslash bar

keycode 37 = Caps_Lock NoSymbol Caps_Lock
keycode 66 = Control_L NoSymbol Control_L

clear Lock
add Control = Control_L

あとは~/.bashrcに以下を書き込んで再起動すれば、キー入れ替えが有効になっているはず。

xmodmap .Xmodmap

ハマった点

上記手順をやってみると…キー入れ替えが有効になってる!よかったよかった…と思いきや!ibus-mozcをONにしてOFFにするとキー入れ替えが元に戻ってる!な、なんで…(T^T)

調べてみると、どうやらibusのバージョンアップで挙動が大幅に変わってしまったらしい。詳細は以下などを参照。

本の虫: iBus 1.5がクソすぎる

長年お世話になっているibusを捨てたくない一心でいろいろ調べてみるも、やはり無理そうとの結論に達しました。(XKBを使うべきみたいな記事?を見つけたのでいろいろやってみたけどうまくいかなかった。技術力低い)

Ctrl+Spaceが押されたらxmodmap .Xmodmapを実行するデーモンを常駐させればいいんじゃね?とかちらっと思いましたがそんなのいろいろ調べたりしなきゃ作れない上にあんまりスマートじゃないのでやめました。

IMを変える!

とすると、もうibusは捨てて別なのに移行するしかないなと思ったので調べたところ、uimというのとFcitxというのがmozcを使えそうなIMとして見つかりました。

結論からいうと、Fcitx、いいです。昔のibus-mozcのように思ったとおりの挙動を大体してくれます。まあ僕のようなライトユーザは大したこと要求しないのですが(笑)

導入方法は、以下を参考にしたりして適当に。

Ubuntu Fcitx その51 - Ubuntu 14.04でインプットメソッドフレームワークをIBusからFcitxに変更する - Ubuntu kledgeb

これでdefaultのIMをibusからfcitxにきちんと変えれば、xmodmapでの変更がちゃんと反映され(続け)ます。よかったよかった。

まとめ

ibusでxmodmap使えなくなったからキー配列いじりたい場合はfcitx使うと楽チン!

終わりに

fcitxってなんて読むんや…と思ってググったらどうやら「ファイティクス」っぽい?発音記号自信ない…。(Fcitxとは - Weblio辞書

今回はxmodmap使いたいがためにいろいろ苦労しましたが、将来的にxmodmapは使わない方針のようですね。古い技術にしがみついてないで次行きましょう次。(自分への戒め)