日本語キーボードを英語配列で使うとパイプができない問題をxmodmapで解決する

日本語キーボードを英語配列に設定して使うと、そのままの状態ではパイプが入力できません。

Xmodmapを使ってキーをマッピングすると良いです

xjman.dsl.gr.jp

まずはxevコマンドを使って、パイプを割り当てたいキーのコードを調べます

$ xev

なにかキーを打つとそのキーに関する情報が出力されます。

以下はaを入力した例です

KeyPress event, serial 40, synthetic NO, window 0x3c00001,
    root 0x1c1, subw 0x0, time 580142, (277,890), root:(277,919),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

3行目の keycode 38 の部分がキーコードなのでこれを覚えておきます

ホームディレクトリに.Xmodmapファイルを作ってさきほど調べたキーにパイプを割り当てます

$ vim .Xmodmap
// keycode {key} = {keyを押したとき} {key + shiftを押したとき}
keycode 132 = backslash bar

以下のコマンドで反映されます

$ xmodmap .Xmodmap