Synergy -複数のコンピュータの Input Device をひとつに
今、Macが2台、Windowsが1台という環境で仕事をしています。メインマシンの PowerBook G4 と設定を頼まれた iMac (Core 2 Duo)、客先環境確認用のVAIO などです。これに限らず、複数のマシンをとっかえひっかえして、作業している人は私の周りでも頻繁に見かけます。モニタはモニタ切り替え器でなんとかなるが、そういった場合、最もうっとおしいのは、Input Device です。マウスやキーボードを何セットもデスクにおいて、「これは、これやったやんな…」「あ、ちゃ!ちごた!」などとやっている貴兄に。Synergy です。
- http://synergy2.sourceforge.net/
【用途】使いたい Input Device 1セットだけで、複数の端末を切り替えて使えるようになります。Mac だろうが、Windows だろうが Linux だろうが、なんでもこいです。【方法】メインの画面の上下左右すきなところに、仮想的にサブの画面があるかのようにあつかえます。※ちょうど、デュアルモニタっぽい感じ【困っちゃった点】
- 私の環境では、Expose を画面角に設定しているので、デスクトップを表示させようとしているのに、となりのマシンのコントロールにいっちゃったり…
- なにより、Intel Mac で Bus Error が…
【解決法】
- Configuration file の設定で解決できますた
↓ここみますた
Synergy Configuration Guide - 得意の他力本願で解決できますた
↓ここみますた
IntelMacでSynergy2を動かす
あ、最初にことわっておきますが、Windowsは、exe形式のインストーラがありますので、説明しません。wwwつか、Mac OS X の話しかしません。わかりやすいように、<言い訳>つか、トラブルが出た場合の切り分けのためになるべく単純なことからと思い</言い訳>、iMac(Core2Duo)にくっつけたキーボードと Kensington の Expart Mouse を 共有する Input Device にして、PowerBook もこれで操作するように設定します。■ダウンロード
- http://synergy2.sourceforge.net/
ココ行って、Latest Release →typeが.gzな新しい版を落とします。*1■インストール展開してできた synergys がサーバ用とのこと。これを、使いたい Input Device のくっついているマシン(現在のウチの状況では、お預かりのiMacですな)の適当なフォルダに持ってってやるわけです。/usr/local/binあたりがよろしいかと思われますが、今見たら、iMac には、/usr/binっきゃねーや。このために作るのもなんなので、/usr/binでよしといたします。あとは、configuration file つまり、synergy.conf ですが、ちょいと後述するように手を加えて、/etcにでもほりこんでおきましょう。クライアントの方(synergyc)はPowerBookに入れるわけですな。/usr/local/binがあったことだし。synergy.conf は、サーバのんと同一ファイルでOKです。つーことで、これも後述の修正を加えて、/etcへ。■Configuration file (synergy.conf)の記述面倒くさいこといわずに、ウチの設定を書きますと…
<?phpsection: screens PowerBook.local: #Client iMac.local: #Serverendsection: links iMac.local: left = PowerBook.local PowerBook.local: right = iMac.localend?>
*2詳しくは、Synergy Configuration Guideをご覧下さいまし。とりあえず、上記な感じで最低限、動きます。■起動
- Server (iMac)
<?php$ /usr/bin/synergys -f -c /etc/synergy.conf?>
- Client (PowerBook)
<?php$ /usr/local/bin/synergyc iMac.local?>
このへんはさ。うまくいく状態を確認してから、AppleScript かなんかで、ログイン項目に食わせてやればよかっぺと思いまする。■トラブル→解決で、ややこしいことが…iMac (intel) でこける…本家のフォーラムで、こんな質問発見しますた。http://sourceforge.net/forum/message.php?msg_id=3803878
I'm experiencing the problem with 1.3.1 on Intel MacBook (OSX 10.4.7)with Japanese keyboard. Both client and server are getting a buserror right after starting.(snip)After some more investigation, it seems that getKeyID() gets anunexpected? parameter like c=130 and CFStringCreateWithCStringNoCopy()returns NULL only when it attempts to process KCHR resources. Isthere any wrong assumptions in the code using the keyboard layoutservices?
まさしくこれや!えらい!>八重樫君!たけし君!しかし、同フォーラム内に、私の伝家の宝刀「他力本願」を振り下ろす書込はみつからず…よろしく!Google 様!→はい発見。IntelMacでSynergy2を動かす
ソースを追ってみたら、lib/platform/COSXKeyState.cppの中でgetKeyMapでKCHRを取得する所でコケている様なので、356行のgetKeyMap(keyMap, g, kchr);をコメントアウトしてみたら、動いた。多分UCHRを取得してるから問題ないと思うんだけどな。とりあえず使ってみて、おかしい所があったら考えよう。
そーね。そーしよー!masuidrive 君てば、修正バイナリまで用意してくれるだもん!えらい!で、こいつは、1.3.0 なのね。Latest Release は、1.3.1(2006/12/13現在)と。んじゃ、masuidrive ヴァージョンのサーバの方(synergys)を iMac にいれて…。Power Bood の方にも同 synergyc をば、つっこん…ん?うごかね。じゃ、1.3.1の synergyc を…はい。うごきました。はい、では次の問題点!Expose と操作の動きがかぶるんです。ウチは、Desktop だけを表示させる Expse の操作は、画面左下角にマウスを持ってくるわけね。この動作をやると、iMac の画面からポインタが PowerBook に行っちゃうのさ。Expose も同時に効いたりするんだけどね。上記 Synergy Configuration Guide に素敵な記述はけーん!
You can use the following options:* heartbeat = NThe server will expect each client to send a message no less than every N milliseconds. If no message arrives from a client within 3N seconds the server forces that client to disconnect.If synergy fails to detect clients disconnecting while the server is sleeping or vice versa, try using this option.* switchCorners = Synergy won't switch screens when the mouse reaches the edge of the screen if it's in a listed corner. The size of all corners is given by the switchCornerSize option.Corners are specified by a list using the following names:o none — no cornerso top-left — the top left cornero top-right — the top right cornero bottom-left — the bottom left cornero bottom-right — the bottom right cornero left — top and bottom left cornerso right — top and bottom right cornerso top — left and right top cornerso bottom — left and right bottom cornerso all — all cornersThe first name in the list is one of the above names and defines the initial set of corners. Subsequent names are prefixed with + or - to add the corner to or remove the corner from the set, respectively. For example:all -left +top-leftstarts will all corners, removes the left corners (top and bottom) then adds the top-left back in, resulting in the top-left, bottom-left and bottom-right corners.* switchCornerSize = NSets the size of all corners in pixels. The cursor must be within N pixels of the corner to be considered to be in the corner.* switchDelay = NSynergy won't switch screens when the mouse reaches the edge of a screen unless it stays on the edge for N milliseconds. This helps prevent unintentional switching when working near the edge of a screen.* switchDoubleTap = NSynergy won't switch screens when the mouse reaches the edge of a screen unless it's moved away from the edge and then back to the edge within N milliseconds. With the option you have to quickly tap the edge twice to switch. This helps prevent unintentional switching when working near the edge of a screen.
角っこは、左上が Expose の設定してないからさ。ここにすればいいじゃん!コーナーサイズまで設定できるんだってさ!ダブルタップっちゅーやつは、つまり、エッジを2回叩かないと、画面が切り替わらないようにできるんだってさ!完璧じゃん!じゃ、後でやってみよ。
0コメント