インストール自体はすんなり行くけど、(RehabMan's) VoodooPS2Controllerの最新版を使うことでTrackPointが動かなくなるのと(DSDTの改変とkextのInfo.plistを書き換えていくことで対応可能)、
まだKaravinerが動かないので(これは時間が解決してくれることでしょう)、基本入力周りに割と支障がある。……ので対処しましょうというお話。
TrackPointのための改変
前述のTrackPoint問題に関しては、DSDT.amlの〝Device (KBD)〟を PS2K にリネームして以下のように改変することで対処。これ、今まで対応kextみたいなのを騙し騙し使っていたけど、本来は最初からこうやるべきだったんだと思う。
DSDT.aml
Device (PS2K)
{
Method (_HID, 0, NotSerialized) // _HID: Hardware ID
{
If (WIN8)
{
Return (0x7100AE30)
}
Return (0x0303D041)
}
Name (_CID, EisaId ("PNP0303")) // _CID: Compatible ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQNoFlags ()
{1}
})
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store (Package (0x06)
{
"RM,oem-id",
"LENOVO",
"RM,oem-table-id",
"X1C",
"AAPL,has-embedded-fn-keys",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
この後、 VoodooPS2Controller.kext の Info.plist 、PlugInsの中の VoodooPS2Mouse.kext と VoodooPS2Trackpad.kextの Info.plist のそれぞれに上で追加した X1C というテーブル用の定義を書き加えると、TrackPointが動くようになります。
VoodooPS2Controller.kext/Contents/Info.plist
HPQOEM の定義の下あたりに……
<key>LENOVO</key>
<dict>
<key>X1C</key>
<string>ThinkPad</string>
<key>ThinkPad</key>
<dict>
<key>MouseWakeFirst</key>
<true/>
<key>WakeDelay</key>
<integer>0</integer>
</dict>
</dict>
……と追加。
VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Mouse.kext/Contents/Info.plist
HPQOEM の定義の下あたりに……
<key>LENOVO</key>
<dict>
<key>X1C</key>
<string>ThinkPad</string>
<key>ThinkPad</key>
<dict>
<key>ActLikeTrackpad</key>
<true/>
<key>DisableDevice</key>
<false/>
</dict>
</dict>
……と追加。
VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2TrackPad.kext/Contents/Info.plist
ALPS GlidePoint/HPQOEM の定義の下あたりに……
<key>LENOVO</key>
<dict>
<key>X1C</key>
<string>ThinkPad</string>
<key>ThinkPad</key>
<dict>
<key>DisableDevice</key>
<true/>
</dict>
</dict>
……と追加、 Sentelic FSP/HPQOEM の定義の下あたりに……
<key>LENOVO</key>
<dict>
<key>X1C</key>
<string>ThinkPad</string>
<key>ThinkPad</key>
<dict>
<key>DisableDevice</key>
<true/>
</dict>
</dict>
……と追加、 Synaptics TouchPad/HPQOEM の定義の下あたりに……
<key>LENOVO</key>
<dict>
<key>X1C</key>
<string>ThinkPad</string>
<key>ThinkPad</key>
<dict>
<key>BogusDeltaThreshX</key>
<integer>400</integer>
<key>BogusDeltaThreshY</key>
<integer>350</integer>
<key>DivisorX</key>
<integer>1</integer>
<key>DivisorY</key>
<integer>1</integer>
<key>DragLockTempMask</key>
<integer>262148</integer>
<key>FakeMiddleButton</key>
<false/>
<key>FingerZ</key>
<integer>47</integer>
<key>MomentumScrollThreshY</key>
<integer>16</integer>
<key>MouseMultiplierX</key>
<integer>6</integer>
<key>MouseMultiplierY</key>
<integer>6</integer>
<key>MultiFingerHorizontalDivisor</key>
<integer>2</integer>
<key>MultiFingerVerticalDivisor</key>
<integer>2</integer>
<key>Resolution</key>
<integer>2800</integer>
<key>ScrollDeltaThreshX</key>
<integer>10</integer>
<key>ScrollDeltaThreshY</key>
<integer>10</integer>
<key>ScrollResolution</key>
<integer>2800</integer>
</dict>
</dict>
……と追加。動作が渋いなと思ったら Resolution や ScrollResolution の値を小さく、軽いと思ったらその逆で。
/Library/Extensions や /System/Library/Extensions に入れている場合は、Kext Utilityなどでキャッシュの更新をお忘れなく。
// EFI/CLOVER/kexts/10.12/ に入れておけばいいように思う。
システム環境設定でトラックパッドの設定が表示されない
この問題にはpatchが存在するみたい。
http://www.mediafire.com/download/8r6ew57721w5r82/
設定がちゃんと保存されないので、再起動すると設定が戻ってしまったりするのは今のところご愛敬。
Karavinerの代替について
Karaviner-Elementsという後継アプリが開発途上なので、それを使います。設定ファイルが今までと違っていてそのままでは使えないので、新たに書く必要があります。
また、くどいけどまだ開発途上なので、右commandを[かな/英数]のトグルにするとかそういうことはできません。しばらくは運用で乗り切りましょう。
~/.karaviner.d/configuration/karaviner.json
{
"profiles": [
{
"name": "Default profile",
"selected": true,
"simple_modifications": {
"right_command": "japanese_eisuu",
"right_control": "japanese_kana"
}
}
]
}
こんな感じで書くと、右commandで[英数]・右controlで[かな]になります。ThinkPadのOSX86だとスペースの右側がそういうキーで埋まっているので、これらを使わないならこんな感じの設定でいいと思います。
// 今までは右commandをトグルにしてたんだけど、右commandを押して英数を入力しようとしてかなオンリーになって死亡みたいなことが何度か続いたので、かな入力を明示的に行いたいときに右controlを押す運用にしました。
最近のClover EFIとEFI設定
Clover EFIの最近のバージョンでブート時(1st. stage)の画面が表示されなくなって、調べてみたらEFIのBIOS互換周りの設定が悪いっぽかったので、UEFI onlyにしてCSM supportも切ったらうまく表示されるようになった。これで完全にレガシーを捨て去った。
この設定にしたら、起動時に今までデカデカと(拡大されてガタガタの) ThinkPadロゴが表示されてたんだけど、シンプルでジャギーのないきれいなLenovoロゴだけになってびっくりした。