みんなでターミナル Partty! 0.1リリース!

1つのターミナルを複数の人で同時に操作できるソフトウェア Partty のバージョン0.1をリリースしました!
万が一Parttyをご存じない方は、こちらをご覧ください。


http://f.hatena.ne.jp/images/fotolife/v/viver/20070721/20070721051919.png
ダウンロード: partty-0.1.tar.gz

コンパイル

LinuxMac OS Xで動作することを確認しています。LinuxではMakefileを以下のように修正してください。

 # for Linux
-#LDFLAGS += -lutil
+LDFLAGS += -lutil


そしてmakeしてください。

$ make

うまくいけばparttyという名前のバイナリができます。うまくいかなかったら、いろいろいじってみてください。


使い方

* Partty Host (create new session)
   [listen on TCP  ]$ partty  host  # use default port [25770]
   [listen on TCP  ]$ partty  host  <port number>
   [listen on TCP  ]$ partty  host  <network interface name>[:<port number>]
   [listen on TCP  ]$ partty  host  <listen address>[:<port number>]
   [listen on TCP  ]$ partty  host  <listen address>[:<port number>]
   [lisetn on Local]$ partty  host  -l  <path to socket to create>

* Partty Guest (join existent session)
   [connect to TCP  ]$ partty  guest  <hostname>  # use default port [25770]
   [connect to TCP  ]$ partty  guest  <hostname>:<port number>
   [connect to Local]$ partty  guest  -l  <path to socket>

まず、Partty Hostを実行してください。続いて別のターミナルまたは別のコンピュータで、Partty Guestを実行してください。すると、Partty Host側のターミナルを2カ所から同時に見たり、操作したりできます。
さらにPartty Guestをいくつも接続して、みんなでターミナルを操作できます。みんなでPartty!

※ 間違っても同じターミナルでGuestを起動してはいけません。大変なことになります。


たとえば「driver.local」「partner.local」「spectator.local」の3台のコンピュータで1つのターミナルを共有するには、以下のようにします。

[driver.local. ~/partty]$ ./partty host
[partner.local. ~/partty]$ ./partty guest driver.local
[spectator.local. ~/partty]$ ./partty guest driver.local

UNIXドメインソケット(Local Socket)を使うと、同一のコンピュータ内だけでターミナルを共有することができます。別のコンピュータからは接続できなくなるので、多少セキュアです。

[driver@driver.local. ~/partty]$ partty host -l ~/socket
[driver@driver.local. ~/partty]$ chmod 660 ~/socket
[partnerr@driver.local. ~/partty]$ partty guest -l ~/socket

ターミナルサイズ

ターミナルの大きさはPartty Hostに合わせられます。GuestでHostよりも小さいターミナルを開いていると、途中で改行されて見にくくなってしまいます。Guestでターミナルを大きくするか、Hostでターミナルを小さくしてあげてください。


新機能

安定性向上

安定性がとても向上し、まともに使えるようになりました。

ネットワーク越しの共有に対応

UNIXドメインソケットに加えて、TCPでの通信に対応しました。ただ認証機能は無いので、注意してください。通信は平文です。

バイナリが一つ

Host側とGuest側が一つのバイナリになっているので、持ち運びや配布が簡単です。
第一引数にhostかguestか指定しないといけませんが、これは最初の1文字(あるいは2文字、3文字)を指定するだけでもOKです。たとえば以下のように指定することもできます。

[partner.local. ~/partty]$ ./partty gue driver.local:25770
柔軟なコマンドライン

コマンドライン引数パーサ「Kazuhiki」を搭載。

Guestを待ち受けるポート番号などの指定には、待ち受けるネットワークインターフェースを限定したり、1つのネットワークインターフェースに複数のIPアドレスが割り振られている場合には待ち受けるIPアドレスを指定することができます。
さらに、IPv6アドレスにも対応しています。IPv6アドレスでポート番号を指定するには、以下のように[ ]で囲って指定します。

[ipv6host]$ partty g [fe80:0000:0000:0000:0216:cbff:fe0f:e602%eth0]:5700