Ubuntu14.10用Apple USB Keyboard MB110J/Bのカスタマイズ
ボクは普段MacBook ProでUbuntu使っているが、指の感覚を惑わせたり、鈍らせないためにDesktop PC(MacではなくWindowsマシン)のUbuntuにApple USB Keyboard MB110J/BやApple Wirelessを使っている。
以下がMB110J/Bをカスタマイズしている図である。これとMacBook用もほぼ同じ感じにしている。そのため、迷いがなく使うことが可能である。
K-Off, K-Onはそれぞれ漢字入力Offと漢字入力Offである。尚、この2つのキーはfcitxのAdvance optionで設定可能でこの記事では説明しない。
これらを設定するのは、従来のxmodmapやgnome-tweak-toolでは難しい。 細かな設定が必要なためで,gnome-tweak-tool>typingのプリセットでは足りないのである。しかも、Ubuntu13.10?以降のキーボードカスタマイズはxmodmapではなくxkbを使って設定するようになっている。
以下はその資料である。時間がなく綺麗にまとめていない。申し訳ない。
---------------------------------------------------------------------------------------------------------------------
そこでxkbを直接カスタマイズすることになる。
~/.xkb/symbolsでは以下のように好きなファイルを作成
/usr/share/X11/xkb/symbols/altwinの内容を参考にして作ると。。。
*Unityバグ情報(gnome-shellは正常)
このカスタマイズ自動実行のタイミングが難しく、私のDesktopのUbuntu14.10+Unity(default)ではうまく行かない。.bashrcや.config/autostartを利用しても実行はされるが肝心のキーカスタマイズがクリアされている。 仕方がないのでTerminalまたはキーショットカットや手動で一度起動して、.bashrcに入れたxkbcompを動かしている。バグはUnity起動時にどこかで再設定されてしまっているのだろう。ハマりそうなので、暇なときに調査予定である。尚、私のPCはUbuntu12ぐらいからUpdateを繰り返しているのでクリーンインストールすれば解決できるかもしれない...が仕事で使っているので故障がおきない限り機会がない。
注意:Ubuntu14.10ではCaps lockキーにトグル機能が残って、押しっぱなしになってしまう不都合がある。これはgnome_tweak_toolでCpas lockをHyperにしても同じ。
PS. ついでなのでWindowsでは以下でカスタマイズできる。
カスタマイズはSharpKeysを使え(http://sharpkeys.codeplex.com/)
以下がMB110J/Bをカスタマイズしている図である。これとMacBook用もほぼ同じ感じにしている。そのため、迷いがなく使うことが可能である。
K-Off, K-Onはそれぞれ漢字入力Offと漢字入力Offである。尚、この2つのキーはfcitxのAdvance optionで設定可能でこの記事では説明しない。
これらを設定するのは、従来のxmodmapやgnome-tweak-toolでは難しい。 細かな設定が必要なためで,gnome-tweak-tool>typingのプリセットでは足りないのである。しかも、Ubuntu13.10?以降のキーボードカスタマイズはxmodmapではなくxkbを使って設定するようになっている。
以下はその資料である。時間がなく綺麗にまとめていない。申し訳ない。
---------------------------------------------------------------------------------------------------------------------
Ubuntu 14(正確には13.10?)以降はxmodmap(下部で利用はされている)を使わずxkbでキーカスタマイズをすることになる、xmodmapを扱っているカスタマイズ情報は古いため無視すること、時間の無駄である。
キーをカスタマイズするにはgnome-tweak-tool内typingを使えば良いが、実際は細かなことが設定できない。優先順位も直感的にわからない。また、テキストも途中で切れて何を意味しているのか不明な項目もある。このテキストはman xkeyboard-configによって表示されるので参考せよ。
gnome-tweak-toolは所詮元々あるプリセット(参照:/usr/share/X11/xkb/symbols/)を設定できるようにしているだけであり、キーカスタマイズが特殊だと対応できない。特に日本語環境用のキーボードは英語圏のキーボードと比較すると複雑なため、かゆいところに手が届きにくい。
そのため、自分でカスタマイズをする必要がある。
注意:LinuxではWin(Command)キーはSuper(ところによってはHyper)キーとして表記されている。
そこでxkbを直接カスタマイズすることになる。
参考:
xkbを拡張する
細かな設定方法
元々あるプリセット設定は/usr/share/X11/xkb/のsymbols/を参照にすること。
capslock
altwin
あたりが参考になる。
尚、繰り返すが元々あるプリセットの意味は
$ man xkeyboard-config
にて参照可能。
カスタマイズするには上のsymbolsを自作して、起動時に自動実行すればいい、という流れになる。
カスタマイズの大筋の流れは...
~/.xkb/keymap
~/.xkb/symbols
を作成して、起動時に以下のコマンドを実行する。
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
細かくみていくと...
まずフォルダを作成
$ mkdir -p ~/.xkb/keymap ~/.xkb/symbols
keymapは以下のコマンドで作成出来る。
$ setxkbmap -print > ~/.xkb/keymap/mykbd
~/.xkb/symbolsでは以下のように好きなファイルを作成
/usr/share/X11/xkb/symbols/altwinの内容を参考にして作ると。。。
上にある図のようにApple Japanese usb keyboardではCommand(Win or Super)をAlt, Option(Alt)をCtrlし, CapsはWin(Super)としている。
ここに好きなファイル名で作成する。今回はnakasya_key。
// Command(Win) is mapped to the Alt keys, Alt to the Ctrol keys.
partial modifier_keys
xkb_symbols "macken" {
key <LALT> { [ Control_L, Control_L ] };
key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_R, Control_R ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <RWIN> { [ Alt_R, Meta_R ] };
key <CAPS> { [ Hyper_L ] };
modifier_map Control { <RALT>, <LALT> };
modifier_map Mod1 { <LWIN>, <RWIN> };
partial modifier_keys
xkb_symbols "macken" {
key <LALT> { [ Control_L, Control_L ] };
key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Control_R, Control_R ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <RWIN> { [ Alt_R, Meta_R ] };
key <CAPS> { [ Hyper_L ] };
modifier_map Control { <RALT>, <LALT> };
modifier_map Mod1 { <LWIN>, <RWIN> };
modifier_map Mod4 { <CAPS> };
};
};
で、この設定を以下の赤文字として追加する。注意:CpasのところをSuper_LにするとうまくWinキーにならなかった。
~/.xkb/keymap/mykbd
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+numpad(pc)" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp+us:2+inet(evdev)+capslock(hyper)+nakasya_key(macken)" };
xkb_geometry { include "pc(pc105)" };
};
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+numpad(pc)" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp+us:2+inet(evdev)+capslock(hyper)+nakasya_key(macken)" };
xkb_geometry { include "pc(pc105)" };
};
あとはいいタイミングで以下のコマンドを実行するだけである(*)
$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
WARNINGは無視すること。表示したくない場合は2> /dev/nullでリダイレクトする。
$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 2> /dev/null
$ xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 2> /dev/null
便利Tools:
ディフォルトのキー設定を表示する。
$> setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+numpad(pc)" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp+us:2+inet(evdev)+capslock(hyper)" };
xkb_geometry { include "pc(pc105)" };
};
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+numpad(pc)" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+jp+us:2+inet(evdev)+capslock(hyper)" };
xkb_geometry { include "pc(pc105)" };
};
Mod1とかMod4などの意味は以下のxmodmapで確認可能である。modとはmodifierの意味だと思う。
$ xmodmap
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Hyper_L (0x42)
control Control_L (0x25), Control_L (0x40), Control_R (0x69), Control_R (0x6c)
mod1 Alt_L (0x85), Alt_R (0x86), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Hyper_L (0x42), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
重要なのはcontrol, mod1(Alt(option)キー), mod4(Win(command)キー)である。
*Unityバグ情報(gnome-shellは正常)
このカスタマイズ自動実行のタイミングが難しく、私のDesktopのUbuntu14.10+Unity(default)ではうまく行かない。.bashrcや.config/autostartを利用しても実行はされるが肝心のキーカスタマイズがクリアされている。 仕方がないのでTerminalまたはキーショットカットや手動で一度起動して、.bashrcに入れたxkbcompを動かしている。バグはUnity起動時にどこかで再設定されてしまっているのだろう。ハマりそうなので、暇なときに調査予定である。尚、私のPCはUbuntu12ぐらいからUpdateを繰り返しているのでクリーンインストールすれば解決できるかもしれない...が仕事で使っているので故障がおきない限り機会がない。
注意:Ubuntu14.10ではCaps lockキーにトグル機能が残って、押しっぱなしになってしまう不都合がある。これはgnome_tweak_toolでCpas lockをHyperにしても同じ。
PS. ついでなのでWindowsでは以下でカスタマイズできる。
以下を参考にApple Keyboardのドライバのインストールをする。でなければ「かな」、「英数」キーが認識されない(USB Keyboard)。私はboot champ 5.1を使った。
- BootChampをDL
- zipを解答、2つのファイルをゲットし、
- root権限でmsiをコマンドラインで実行、エラーが出ても無視して進める。
Fn keyの動きのカスタマイズ、Boot Champコントロール(おそらくMacOS HDDを探しに行くところで)はエラーが出て動かないので、RegeditでRegstoryを編集。
Windowsのバージョンによって異なる(7や8,HomeやProfessionalなど)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\KeyMagicSoft内
または,
HEKY_CURRENT_USER\Software\Apple Inc.Apple Keyboard Support内
の
OSXFnBehaviorを1から0へ
OSXFnBehaviorを1から0へ
Apple usb keyboard+ten keys
Special: Caps Lock->Special:Left Windows
Special:Left Alt->Special:Left Ctrl
Special:Left Windows->Special:Left Alt
Special:Right Alt->Special:Right Ctrl
Special:Right Windows->Special:Right Alt
コメント
コメントを投稿