Magic Keyboardを買った
以前、UbuntuでApple Wireless Keyboardを使うための設定について、記事をかいた。
UbuntuでMacキーボード 英数・かなキーを使う | ひとりごと2.0
そのApple Wireless Keyboardを1年くらい使っていておおむね快適だったのだが、ある日一部のキーが効かなくなってしまった。。
おそらくハード的な故障だと思う。キー下の回路シートが劣化したとかだと予想・・・
で後継機としてMagic Keyboardに買い替えた。
Apple Wireless Keyboardより薄くて軽い。バッテリー搭載で便利。
タッチはかなり浅くてMacbookに近い感じ
ちなみにまたJIS配列です
自分の中で
・左Ctrl
キーが小指で押せる
・英数・かなキーでIME切り替えできる
この2点で断然US配列よりJIS配列がいい
なのでまたUbuntuでMagic Keyboardを使おうとした話
結論:英数、かな、\、_の4キー認識しねえ
キーボードの認識自体はGUIから普通にできた。
で次にキー入力のテストをしたところ、
「英数」「かな」「\」「_」この4つのキーを認識しなかった。
Magic Keyboardなんてポピュラーだしググったらすぐ解決策出てくるだろ、と思ったが全然情報がない・・・
なので色々自分で調べてみた。
まずxevを試す
Linuxでキーコードを調べる際必ず使うのがxev
まずはxevで問題のキーを認識してるのか調べる
もし認識しているなら、xmodmapでキーシムにマップすれば使えるはず
→うんともすんともいわず、反応なし
showkey試す
showkey
コマンドでカーネルがキーを認識してるか調べる
まず、Ctrl
+ Alt
+ F3
でCUIの仮想ターミナルに移動する
(Ctrl
+ Alt
+ F2
で戻れる)
showkey -s
で 押されたキーのscancode(キーボードから最初に送られる16進数コード)
showkey -k
で押されたキーのkeycode(scancodeに対応してOSが変換する数字のコード)
が表示できる。
→反応なし、カーネルもキーを認識してない
kern.log(カーネルのログ)を確認
カーネルが意図してそのキーを無視している場合、ログにその旨が表示されるらしい。
less +F /var/log/kern.log
この状態で問題のキーを押して見る
→とくにログに出力なし
となると可能性としては以下があるらしい
- ACPI Event・・・Power on や Sleepイベントを発火させるボタンと認識されている?
- BIOS “knock sequence” ・・・?(よくわからない)
Macbookに接続すれば普通に認識する
ならMacbookではどのscancodeで認識してるのか調べてみる
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
でkeycodeのマッピングを確認
これだ
/* JIS keyboards only*/
enum {
kVK_JIS_Yen = 0x5D,
kVK_JIS_Underscore = 0x5E,
kVK_JIS_Eisu = 0x66,
kVK_JIS_Kana = 0x68,
};
!あるgithubレポジトリで同じようなissueが上がってた
Four keys do not work on Japanese keyboard model · Issue #34 · cb22/macbook12-spi-driver · GitHub
macbook用のキーボードdriverのレポジトリのよう
4つのキーを認識しないとのこと
そこでの結論は、
「4つのキーのscancodeが、ドライバーの扱うscancodeの最大値を超えていること」が原因
/* JIS keyboards only*/
enum {
kVK_JIS_Yen = 0x5D,
kVK_JIS_Underscore = 0x5E,
kVK_JIS_Eisu = 0x66,
kVK_JIS_Kana = 0x68,
};
Ubuntuのキーボードドライバの扱えるscancodeの最大値はわからない
ただ上記4つのキーは、/* JIS keyboards only*/
というコメントからMacにおいてJIS配列の専用の特殊なkeycodeとして用意されていることがわかる
そのため後ろのほうのkeycodeを使えるようにmac独自で拡張して使っていて、その他LinuxなどのOSでは対応していないという可能性が考えられそう。。
解決策あったら教えてほしい
結論として、UbuntuのドライバーがJIS配列のMagic Keyboardに対応しない限り4つのキーは使えないんだと思う。
やっぱそういう意味でも、Apple Wireless Keyboardは名機なのかも・・・
もう1台買っとくか
誰かUbuntuでJIS配列のMagic Keyboardを使う方法があったら教えてほしいです