Using PCKeyboardHack & Parallels Desktop on Maverick(OSX 10.9)

上周Apple发布了OSX 10.9,代号Maverick,我尝鲜后发现,大多数软件没有兼容性问题,运行良好。

主要的兼容性问题依然是在kext方面,这里包括Parallels Desktop和PCKeyboardHack;另外,MplayerX无法正常工作,换用MplayerX Extended工作正常。此外,由于accessibility运作方式的改变(猜测是由于多屏幕的全屏方式做了升级)

此外,所有基于accessibility接口的软件都工作不正常,包括:BetterTouchTools,sizeup,moon等。但由于我是在一台Mac mini上升级到Maverick,影响不大,我的MBA依然是10.8,暂时不打算升级。

下面说说如何在10.9下正常使用PCKeyboardHack 和 Parallels Desktop。

Parallels Desktop 7即使注册了kext也无法正常工作,只好购买了个升级包升级到8,然后使用下面的命令注册kext便可正常工作。

cd "Applications/Parallels Desktop/Contents/Library/Extensions/10.6"

sudo kextutil prl_hypervisor.kext/
sudo kextutil prl_vnic.kext/
sudo kextutil prl_hid_hook.kext/
sudo kextutil -d ./prl_hypervisor.kext prl_netbridge.kext/
sudo kextutil prl_usb_connect.kext

而PCKeyboardHack只要让之使用10.7的kext就可以正常工作了,至少我的keymapping是正常的,我在PCKeyboardHack的github issues里面也添加了这条解决方案,事实上,在10.8就有人提过类似的解决办法

  • sudo vim /Applications/PCKeyboardHack.app/Contents/Library/scripts/kext.sh (在 10.9下,用10.8的 kext,修改内容见后文)
  • 重启即可
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin; export PATH

basedir="/Applications/PCKeyboardHack.app/Contents/Library"
kextfile=''
uname=`uname -r`
case "${uname%%.*}" in
    11)
        kextfile="$basedir/PCKeyboardHack.10.7.kext"
        ;;
    12)
        kextfile="$basedir/PCKeyboardHack.10.8.kext"
        ;;
    13)
        kextfile="$basedir/PCKeyboardHack.10.8.kext"
        ;;
esac

if [ "x$kextfile" == 'x' ]; then
    exit 1
fi

if [ "$1" == 'unload' ]; then
    kextunload -b org.pqrs.driver.PCKeyboardHack
else
    kextload "$kextfile"
fi

exit 0

相比iOS 7,Maverick的折腾时间要少很多。

发表评论

火花来自思想的碰撞,请留下你宝贵的评论吧: