Synergy というフリーソフトがあります。どういうものかというと概念は簡単で、たとえば左右に並べて別々の PC のディスプレイを置いたときに、あたかも1台の PC でデュアルディスプレイにしたときのように2つの画面間を自由に行き来できるようになるソフトです。KVM 切り替え器と違ってディスプレイは PC の台数分必要ですが、その分シームレスに複数の PC を1セットのマウスとキーボードで操作することができます。
これ、同一の OS 同士だけでもなかなか驚きのソフトなのですが、Windows のみならず Mac や UNIX 系の X Window System までもをサポートしていて、なおかつ別々の OS との組み合わせでも OK という驚愕の対応性を誇っています。つまり、私のように Windows と Mac の画面を並べて使っている場合は、Windows の画面から Mac の画面へマウスポインタを移動させるだけで操作の対象を切り替えることができるということ。
実際に使ってみると、別々の PC とは思えないほどスムーズな操作環境がそこに。これは久々に鳥肌もののフリーソフトです。すごい、の一言。超絶おすすめです。
ところで、Synergy 自体の設定は簡単ですぐに動作するのですが、キーボードとマウスの設定に悩まされることになります。特にマウスの第3ボタン以上の部分。
このあたりの動作はホスト側のドライバの設定が効いてくるのですが、通常第3ボタン以上はマウスドライバの設定で何かの操作に割り振られていることと思います。ブラウザの「戻る」「進む」だとかスクロールだとか。でも Windows 用のこれらのイベントは他の OS では動作しないため、そのままでは使えません。
たとえばこれらのボタンにキーボードショートカットに対応するキーイベントの発行を割り当てておく(相手が Mac なら Command + [(Finder や Safari での「戻る」のショートカット)などが便利)と、それはリモート側でも正常に発行されます。これらは逆に Windows 側では意味のない操作ですので、実際には第3ボタンを単体でクリックすると Alt + ←(Windows での「戻る」)、Shift を押しながらクリックすると Mac での「戻る」を発行するように設定しています。あと、第3 + 第4ボタン同時押しで F9、Crtl 押しながらだと F12 なんてのが Mac では便利。Mac ユーザなら何のことか分かりますよね?
なお、ホイールマウスのホイールイベントはリモート側へも伝わっている様子です。
Windows と Mac であったり無かったりする Alt、Windows、Command、Option の各キーは、標準では次の様な対応になります。
Alt = Command
Windows = Option
これ、Happy Hacking Keyboard Pro の刻印と逆なんですよねぇ。というわけで Synergy の設定で入れ替えると刻印どおりになるんですが、この状態だと先ほどのマウスの設定で問題が。Kensington のマウスドライバでは、Windows キーと何かを同時に押すという設定ができないので、この状態だと Mac 側では Command キーと何かを同時に押すという設定ができないことになってしまいます。すると「戻る」「進む」が設定できません。なので結局デフォルトに戻し、刻印は見ないことにしてしまいました。
もっとも、よく使う Command キーが最下段の両端に来るので、この方が使いやすい様な気もしてきました。そういうことにしといて下さいよ。
Windows 版以外は GUI のないコマンドラインツールです。Mac で自動的に起動するために、/etc/rc.local に以下の記述をしました。
#!/bin/sh
if [ -x /usr/local/bin/synergyc ]; then
/usr/local/bin/synergyc -f aaa.bbb.ccc.ddd &
fi
aaa.bbb.ccc.ddd は接続先ホストの IP アドレスです。この例は Mac がクライアントになる場合。サーバにするには Windows の方が楽なので・・・。
この設定をした Mac を先に起動すると Mac 側の Synergy は接続に失敗しているはずですが、時間をおいて何度でも接続を試み続けるので接続先の準備が整った時点で自動的に接続されます。これはよい点ですね。
ちなみにウチのサーバの FreeBSD の画面も連結して操作できるはずですが、こいつのディスプレイは結構離れたところにあるので現実的ではなさそう。普通に VNC とか Cygwin + X.org とかを使うのがよさげです。でも一度ネタとしてやってみたい気はしますね。