Raspberry piでSynergyを使う

実はアーさんハウスハッカソンや,高専カンファレンスin岐阜2 〜テクニカーニバル〜のネタ用にRaspberry piを買いました.

そこで,簡単なSynergyを利用するための作業メモを残しておきます.*1

初期設定

初期設定は適当にググったり,以下の本があったのでそれを参考にして環境構築しました.

ちなみに,ホスト名は自分ルールがあり

  • メインPC
    • [本名]-Desktop
  • Raspberry pi
    • [本名]-Raspberrypi

で,運用しています.

なお,今使っている環境はメインPCはUbuntu12.10を利用しています.
また,Raspberry piのOSはRaspbianを利用しています.

ちなみに設定でSSHを起動させています.
基本的にLAN内で利用する用途なので通常設定のままです.

Synergyを使う

Synergyとは

Synergyは複数のコンピュータ間のマウスとキーボードを簡単に共有することができるフリーのオープンソースソフトウェアです。あるコンピュータの画面の端にマウスを移動すると別のコンピュータの画面に移ります。クリップボードを共有することもできます。必要なのは ネットワーク接続だけです。 SynergyはクロスプラットフォームでWindows, Mac OS X, Linux上で動作します。

Synergy

要するにネットワークがあれば一つのマウスとキーボードで操作を行うことが可能となります.

構成

今回は左側にRaspberrypi,右側にメインPCを配置するという使い方で利用します.
また,メインPCがサーバで,Raspberrypiをクライアントという使い方で運用します.

インストール・設定

インストール

インストールはaptで簡単に手に入ります.
端末から

$ sudo apt-get install synergy

でインストールできます.なんと簡単!!

設定

インストールしたら次は設定です.
メインPCのホームディレクトリに.synergyconfというファイルに記述します.
ちなみに,自分はVim派なので端末で

~$ vim .synergyconf

で設定を記述します.

記述内容としては以下の通り.

section: screens
        [本名]-Desktop:
        [本名]-Raspberrypi:
end

section: links
[本名]-Desktop:
        left = [本名]-Raspberrypi
[本名]-Raspberrypi:
        right = [本名]-Desktop
end

sectionで設定項目を定義しています.
screensでそれぞれのPCのホスト名を定義し,linksで配置を設定します.
linksに関しては非常にわかりにくいのですが,それぞれのPCの左に何があるのか,右に何があるのかを定義するという事です.
2枚だけだと互い違いで大丈夫です.

実行

まずはクライアントPCのX Window Systemを起動*2します.

$ startx &

サーバPCでは以下のコマンドで実行します.

$ synergys -c ~/.synergyconf

クライアントPCでは以下のコマンドで実行します.

$ synergyc <サーバーのIPアドレス>

最初はそれぞれの側で-fオプションをつけてログを出した方が安心かも.

終了

クライアントPCでは以下のコマンドで終了*3できます.

$ kill `pidof synergyc`

サーバーPCも同様に

$ kill `pidof synergys`

X Window Systemはjobsコマンドでバックグラウンドで処理しているアプリを確認し,fgコマンドでフォアグラウンドに持ってきてからCtrl+Cで終了させます.

$ jobs
[1]+  Running                 startx &
$ fg 1
startx
^Cxinit: connection to X server lost

waiting for X server to shut down Server terminated successfully (0). Closing log file.

xinit: unexpected signal 2

最後に

自分は基本的にSSHでバックエンド側を呼び出して実行と終了の手順を踏んでやっています.
非力なマシンなので一応,使わないときは余計なものを落として使用しています.

Synergyがとっつきにくい理由はサーバとクライアントの定義付けが難しいところかなと思います.
個人的にサーバはマウスとキーボードを利用する端末の事を言い,クライアントはそれ以外の端末と考えると良いと思います.

次はVNCサーバの使い方かなぁ.

*1:セットアップしたのだいたい2週間前だけどね…

*2:&はバックグラウンドで処理するパラメータです.メッセージが出てきますがEnterキーを叩けばコマンドラインが出てきますので大丈夫です.

*3:`pidof <アプリ名>`でそのアプリのPIDを持ってきてくれるので便利