Apple KeyboardをLinuxとWindowsで使用する 

(更新日: 2012/03/03)

HHKが壊れてしばらく普通のJIS配列キーボードを使っていたのですが、我慢ができなくなりLinux PC用にJIS配列Apple KeyboardのUSB版(フルサイズのApple Keyboard)を購入しました。

Macbookと同じ配列のワイヤレスの場合、長時間の入力には向かない、とAppleサイトの製品レビューにはあったのでUSB版を購入しました。

LinuxとLinux上のVMwareでWindowsを利用しています。Linux/Windowsで一番問題になるかな、と思ったのは漢字キーです。

BootcampにインストールしたWindowsの場合、漢字キーの代わりにCapsLockキーを利用します。AppleのドライバをインストールしていないWindowsでもCapsLockキーで漢字入力の切り替えがでました。取り敢えずはドライバ無しでも特に困ることは無いようです。

Apple Keyboardがどのようなキーコードを送っているかLinux上のxevコマンドで確認しました。

KeyPress event, serial 33, synthetic NO, window 0x5400001,
root 0x1ae, subw 0x0, time 79424903, (-126,548), root:(2567,594),
state 0x10, keycode 66 (keysym 0xff30, Eisu_toggle), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

英数キー(Eisu_toggle)が押された事になっている事がわかります。

通常のJIS配列キーボードで漢字(全角半角)キーを押した場合、

KeyRelease event, serial 33, synthetic NO, window 0x5400001,
root 0x1ae, subw 0x0, time 77693326, (-126,549), root:(2567,595),
state 0x10, keycode 49 (keysym 0xff2a, Zenkaku_Hankaku), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

全角半角キー(Zenkaku_Hankaku)が押された事になっています。

Windowsの場合、英数キーでも漢字キーでも日本語入力モードに切り替わるのでBootcampのWindowsと同じ使い勝手でWindowsを使う事ができます。(ただし、CapsLockキーがMacBookやワイヤレスキーボードの場合は左下、フルサイズのUSBの場合は右下、と位置が異なりますが)

Linuxの場合、漢字キーを押してもSHIFT+SPACEを押しても日本語入力モードになるでこのままでもあまり困りませんが同じキー操作で入力モード方式を変更できる方が便利です。X Windowsは~/.xmodmaprcファイルでキーボードのバインティングを自由に変更できるので以下のようにカスタマイズしました。(システムによっては~/.xmodmaprcではなく~/.Xmodmap, ~/.xmodmapの場合もあります)

設定を試すにはxmodmapコマンドで設定ファイルを読み込みます。

xmodmap .xmodmaprc

 

!で始まる行はコメントです。古い設定はHHKが壊れた時に通常のJIS配列キーボードを代用していた時の設定です。全角半角のESCにESCを漢字キーに、CapsLockをCTRLにして使っていた時の設定です。

[yohgaki@dev ~]$ cat .xmodmaprc
!remove Lock = Caps_Lock
!keysym Caps_Lock = Control_L
!add Control = Control_L
!keycode 9 = Zenkaku_Hankaku
!keycode 49 = Escape

remove Lock = Caps_Lock
keycode 66 = Zenkaku_Hankaku

恐らく多くのLinux環境でApple Keyboardを使うには最後の2行を足すだけで十分でしょう。Apple KeyboardのCapsLockキーを押した場合、英数キーを押した場合と同じなります。Shiftキーを押しながらCapsLockを押すとCapsLockのキーコードが送られるのですが、CapsLockキーが生きている状態だとCapsLockだけ押してもShift+CapsLockを押したような状態になるので無効にしました。

参考までに私のJIS配列キーボードに設定しているLinuxではApple Keyboardがどのようなキーコードを送っていたか列挙しておきます。

  • 英数:なし
  • かな: なし
  • Contorol: 左Control
  • 左Command: keycode 133 (keysym 0xffeb, Super_L)
  • 右Command: keycode 134 (keysym 0xffec, Super_R)
  • F13: なし
  • F14: PrintScreen
  • F15: なし
  • F16: Pause
  • F17からF19: なし
  • Clear: NumLock
  • Fn: なし

個人的にはKVM用にScrollLockキーが無いと困るのですが、これはそのうち調べる事にします。

 

追記:

入力モードを切り替えるだけなら入力メソッドの設定を変える方法もあります。例えば、私はiBusをGnomeで使っているのでメニューバーのiBusアイコンを右クリックして設定メニューのキーボードショートカットで変更することもできます。

追記2:

KVM経由の入力からxevでキーコードを見ているので、KVMが無い環境だと違った結果になるかも知れません。http://support.apple.com/kb/HT1216 を見るとScrollLockの送り方も書いてあるのですがWindows環境ではドライバで対応しているのではないか?と思います。KVMには実際にキーコードが送られないとどうしようもありません。CoregaのPC4KVMCAというKVMですがホットキーが切り替え可能でした。F12に割り当てて全て以前通りに利用できるようになりました。

追記3:

Windowsの場合、Caps Lockで英数モードと漢字モードを切り替えることができるのですがIME(入力メソッド)をオフにすることができません。ドライバを入れるなどして対応しないとWindows常用するには難があります。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です