SynergyでMac側をサーバにしたときに「かなキー」を「変換キー」として認識させることに成功

メモです。後日ちゃんとまとめたい。

http://d.hatena.ne.jp/saburahu/20080402/1207158878
ここに書いてあるようなことに挑戦。

目的
現在手前にMacBook、奥にWindowsXPのディスプレイを置いてSynergyを動かしている(Macの方でSynergysを動かしてる状態)が、MacBookの英数キーやかなキーがWindowsではスペースキーとして認識されてしまうという問題がある。
Macには半角全角キーが無いため、現在はMSIMEの設定を変更してEscを全角半角切替に割り当てているが、これではEscキーが使えなくなってしまうので不便である。
英数キーを無変換キーに、かなキーを変換キーに割り当て、MSIMEの設定をMacことえりのように無変換=半角モードに切り替え、変換=全角モードに切り替え とすることでMacと同じ使い勝手で全角半角を切り替えることができるようにしたい。
そのためにはSynergyの改造が必要。

http://synergy2.sourceforge.net/ から1.3.1のソースをダウンロードし、適当な場所に展開する
synergy.xcodeをダブルクリックするとxcodeが開く
ターゲットの中にあるもの(例えばarch)をダブルクリックしてビルドタブを開き、下から2番目のSDKROOT_ppcの値を/Developer/SDKs/MacOSX10.4u.sdkに変更
↑を全ターゲットに対して行う(もしかしたらプロジェクト→プロジェクトの設定を編集でもよかったのかも?)
ビルドボタンを押す(成功すれば下に「ビルドは問題なく完了しました」と出る)
synergyの設定ファイルを作る(仮に/Applications/synergy-1.3.1/synergy.confに作ることにする)

                                                                                                          • -

section: screens
applepedlar-macbookpro.local:
phoenix:
end
section: links
applepedlar-macbookpro.local:
up = phoenix
phoenix:
down = applepedlar-macbookpro.local
end

                                                                                                          • -

(MacBookProの上にphoenix(WindowsXP)のディスプレイがあるときの設定)

ターミナルでソースを展開したディレクトリのgen/debug/Development/に移動する
./synergys -f --config /Applications/synergy-1.3.1/synergy.conf でsynergysが起動する

      • -

キーコード調査
KeyRemap4MacBookをインストール
http://www.pqrs.org/tekezo/macosx/keyremap4macbook/index.html.ja

http://www.pqrs.org/tekezo/macosx/keyremap4macbook/source.html.jaを参考に
ターミナルで/Library/org.pqrs/KeyRemap4MacBook/binに移動
sudo sysctl -w keyremap4macbook.debug=1
sudo tail -f /var/log/system.log
この状態で何かキーを押すとターミナルに色々出力される
終わるときはCtrl+Cでtailを終わらせたあとsudo sysctl -w keyremap4macbook.debug=0

例えばかなキーを押すと「key 104」を含む行が出力される。
これを変換キーに割り当てるにはXCODEsynergy/Source/Platform/COSXKeyState.cppの上の方にあるs_controlKeys[]に以下の行を挿入する。
{ kKeyHenkan, 104 },// KANA

Synergyをビルドして実行するとWindowsの方でかなキーが変換キーとして動作するようになる
(この行が無いとスペースとして認識されていた)

続きは明日。