部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

Synergyで一組のキーボード、マウスで複数のPCを操作してみよう その2

以前その1を書いたSynergyについてですが、会社の机の上をいろいろいじって、現在は以下のように設定しています。

前提条件

  • Synergyバージョン:1.3.1
  • Synergyサーバ:Solaris11 snv_151a(x86)・・・主にキーボードとマウスを使用するマシンはこちらとなる
  • Synergyクライアント:Windows XP
  • IPアドレス
WindowsXP 192.168.0.1
Solaris11 192.168.0.2
  • synergyサーバを起動するSolaris11のOSユーザおよびホームディレクトリ:
hoge
/export/home/hoge
  • ディスプレイの配置
机に向かって左側がWindowsXP
机に向かって右側がSolaris11
  • WindowsXPの文字変換ソフトウェア(IME):MicroSoft IME スタンダード2003

とする。

以前Solaris10をインストールしていたマシンをOpenSolaris、さらにSolaris11へアップグレードしたところ、Synergyクライアント起動は

% /usr/local/bin/synergyc 192.168.0.1

を実行して行うのは変わらないのですが、Solaris10時代はteratermでSSHログインした状態で実行すれば良かったのがGUIのデスクトップ環境から端末を起動して実行しないと接続できなくなったためです。
変更点を調べていけば原因が分かるのかもしれませんが、調べるのが面倒だったSolarisを使い倒すんだという意思表示のためにもサーバをSolarisにしたらどうか」と同僚に言われたので、上記のようにしてみました。

また、後述のとおりWindows側で日本語入力を行うのに大変苦労しましたが、有志の方が提供している日本語入力のためのパッチがsynergyのバージョン1.3.1用だったのでこれに合わせました。
2012年4月現在、Synergyの最新バージョンは1.4.7 Betaで、さらには派生版の「synergy-plus」というものが存在します。

しかしながらこれらには手を出せていません(異なるOS間での動作が微妙、という噂があるのも試行をためらう理由の一つです)。おいおい調べていきたいと思います。

という訳で設定手順は以下の通りです。

ソフトのダウンロード

公式サイト
http://synergy-foss.org/ja/
から

1.3.1 Windows 32-bit

をダウンロード。
日本語関連パッチを公開している素晴らしいサイト
http://wiki.nothing.sh/page/memo/Synergy
にて、

synergys_bin_20080204.zip
synergy_src_20080204.zip

をダウンロード。

インストール

Windows XP用Synergyのインストール

1.3.1 Windows 32-bit

をクリックしてダウンロードしたインストーラ「synergy-1.3.1-Windows-x86.exe」を実行します。特に特記すべき点は無いので割愛します。
その後、

synergys_bin_20080204.zip

を解凍した後に展開される

synergy.exe
synergyc.exe
synergys.exe
synrgyhk.dll

を、インストールされたものと差し替えます(格納フォルダにファイルをコピーして上書きする)。

■Solaris11用Synergyのインストール

ダウンロードしたソースコードからビルドします。
なお、gccのバージョンは

3.4.3

であり、スーパユーザの環境変数として

PATH=/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin

を設定しています。

ソースコードの解凍
synergys_src_20080204.zip

を解凍します。

% unzip synergy_src_20080204.zip
configure、makeの実行
% su -
# cd synergy_src_20080204
# ./configure
# make
インストール実行
# make install

/usr/local/bin以下にインストールされると思います。

設定

■Solaris11側でsynergyサーバの設定
まずsynergyサーバであるSolaris11側の設定をします。Windowsではsynergyを起動して設定を行いましたが、Solarisでは

.synergy.conf

という名前の設定ファイルに必要な設定を記入します。「.synergy.conf」はsynergyサーバを起動する際に使用するOSユーザのホームディレクトリに格納しておきます。今回は以下のように設定しました。

su - hoge
vi /export/home/hoge/.synergy.conf

以下のように編集

section: screens
        sol11:
        winXP:
end

section: links
        sol11:
                left    = winXP

        winXP:
                right    = sol11

end

section: aliases
        sol11:
                192.168.0.2

        winXP:
                192.168.0.1
end

■WindowsXP側でsynergyクライアントの設定
次にWindowsXP側の設定を行います。
synergyのアイコンをクリックしてsynergyを起動します。

ほかのコンピュータのキーボードとマウスを使用する(クライアント)

の「サーバのホスト名」の欄に

192.168.0.2

と、synergyサーバのIPアドレスを入力します。
これで最低限の準備完了ですが、WindowsXP PCを起動する度にsynergyクライアントが自動で起動するようにすると便利です。自動起動したい場合は

オプション > 自動起動

をクリックし、

PCの起動時 > 設定

をクリックし、「閉じる」で終了すれば設定できます。以降は電源オンした後、自動でsynergyクライアントが起動されます。

Synergy起動

■Solaris11側でsynergyサーバを起動

su - hoge
% /usr/local/bin/synergys

と実行します。psコマンドなどでsynergysプロセスが上がっている事を確認しましょう。

■WindowsXP側でSynergyクライアント起動
synergyのアイコンをクリックして起動し、上述のクライアント設定が入っていることを確認して「スタート」を押下します。ログファイルが出力されるウィンドウが現れ、

NOTE: started client
:
NOTE: connected to server

というようなメッセージが出ていればサーバと接続が出来ている事になります。Solaris11マシン側のマウスのポインタを左側に滑らせて、WindowsXP側のディスプレイのポインタを操作できるようになっていたら接続成功です。

日本語入力に関する設定

Solaris11のキーボード、マウスでWindowsXPの操作ができるようになりましたが、この状態で「半角/全角」キーを押下すると、半角から全角へ入力モードを変更できますが、その逆の全角から半角への変更が出来ません。

上記のパッチ提供サイトからたどれる、そもそもの日本語キー対応パッチを作成された方のサイトによると、このパッチによって

半角/全角キー
変換キー
カタカナ/ひらがな/ローマ字キー

が使えるようになっているはずなのにおかしいな、と思っていたのですが、調べているうちに、Synergy経由でWindowsXPにアクセスして「半角/全角キー」を押すと実際には「変換キー」として押下されている事が判りました。

対策をどうしようかと考えましたが、よく考えると「変換キー」はあまり使わないので、「変換キーを押すと半角/全角キーと同じ動作をするようにWindowsXP側の設定を変更する」事にしました。具体的には以下の通りです。

  • WindowsXPの言語バーにて、
ツール > プロパティ > 全般 > 設定 > キー設定

とクリックしていく。

キー「半角/全角」

を選択して「キー追加」ボタンを押下する。
キー入力待ち状態になるので、ここで「半角/全角キー」を押すとなぜか「変換キー」として認識されているので、そのまま「OK」を押下すると「半角/全角キー」に割り当てられている「IME オン-オフ」という動作が「変換キー」にも割り当てられる。

確認画面でもさらに「OK」を押下、さらに「OK」を押下してプロパティを終了する。


これで「半角/全角キー」を押すたびに、半角または全角に入力モードが変更されます。

考察

Solaris11サーバに接続しているキーボードは「HHKB Lite2」というものですが、これによって「半角/全角キー」が上手く認識しないのかは現時点では不明です。
synergyのバージョンが古い事も関係している気がしますが、とりあえずは望む動作になったのでそのままにしてあります。
新しいバージョンにチャレンジしなかったのは現行環境で上手く動作しなかったためも大きな理由なのですが、1.3.1環境でちゃんと動くようにはなったので、新しいバージョンのものにも少しずつ試してみようかなと思っています。

ではー。