備忘録

いろいろ忘れないためのブログ

キーボード配置を変更する。変態的に。Ubuntu 編

| Comments

前回の記事では Windows 上でどのようにキーボードの配置をカスタマイズしているか を紹介しました.さて,今度は Ubuntu 上で同じキーボードカスタマイズする方法を紹 介します.

Windows ではキーボード配置を変更するのに,のどかというアプリケーションを使いま したが,Ubuntu では窓使いの憂鬱を Linux に移植した mayu を使用することにします.

mayu

窓使いの憂鬱はもともと,UNIX 系から Windows に転職した際に,UNIX 系の操作体系 を再現するためのアプリケーションだったはずなのに,今度は Linux 系への逆移植が されて mayu というアプリケーションが開発されるという面白い状態になっています. 設定の仕方などは窓使いの憂鬱,のどかとかわらないのがいいですね.

mayu の導入などは他サイトにもあるので,詳しくは書きません.

などを参考にどうぞ.詳しい説明は前回やってしまったので,さっさと私の mayu の設 定ファイル (.mayu) の内容を示します.

### .mayu_ubuntu
include "109.mayu" # 109 キーボード設定 

keymap Global
## 左コントロールとCapsLockの入れ替え
## CapsLock を Ctrl にして,CapsLock の存在を消し去ることにした
mod Control += Eisuu
key *Eisuu = *LeftControl
#mod Control -= LeftControl
#key LeftControl = Eisuu

## 無変換をAltにする
mod Alt += !!Muhenkan
#key *Muhenkan = *RightAlt
## 単独で押したら ESC にする(one shot modifier)
key ~R-*M-Muhenkan = Escape
key R-*M-Muhenkan = &Ignore

## 変換をCrtlにする.
mod Ctrl += !!Henkan
#key *Henkan = *RightControl
## 単独で押したら ENTER にする(one shot modifier)
key ~R-*C-Henkan = Enter
key R-*C-Henkan = &Ignore

#スペースをshiftとして使用(SandS)
mod Shift += !!!Space
def option delay-of !!! = 2

keymap  KeymapDefault = &Default

以上の設定で,前回説明した caps Lock を ctrl にすることと,shift, ctrl, alt (SandS, one shot modifier) を親指で押せる位置に変更する設定ができます.記述は 殆ど変わりません.キーの名前が日本語からアルファベットになっているくらいです.

super, hyper の設定

Windows の時と同様に super キーや,hyper キーは mayu では設定できません.そこ で,Linux でキーボード配置を変更するプログラムとして定番な xmodmap を使います. xmodmap は割と mayu に似た記法でキーボード配置を変更します(というか窓使いの憂 鬱のほうが参考にしたのでしょうね).

では,カタカナひらがなキーを super キーにします.xmodmap の設定ファイル .Xmodmap(多分ファイル名はなんでもいいはずですが)に以下の設定を書きます.

!! カタカナひらがなをHyper keyにする
keysym Hiragana_Katakana = Hyper_L
remove mod4 = Hyper_L
add mod3 = Hyper_L

実際にカタカナひらがなキーに hyper を割り当てているのは2行目だけで,他の行はあ んまり重要ではありません.この設定ファイルを

$ xmodmap .Xmodmap

で設定ファイルを読み込むと,設定が有効になります.xmodmap コマンドを単独で使う と現在どのキーに修飾キーが割り当てられているかわかります.

$ xmodmap
xmodmap:  up to 3 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Eisu_toggle (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Hyper_L (0x65),  Hyper_L (0xcf)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

mod3 に hyper が,mod4 に super が割り当てられているのがわかると思います. Ubuntu ではもともと windows キーに super が割り当てられていたので,xmodmapで設 定するまでもありませんでした.この辺は,ディストリビューションやバージョンによっ て変わってくるかもしれません.

おわりに

これで,Windows と Ubuntu でほぼ同じキー配置を使うことができます(厳密に言えば キーボードの入力がどこでトラップされるのかによって細かい動きが変わってくるよう ですが).これで Emacs の職業病,左手の小指痛を全く感じずに快適に使うことがで きます!

Comments