glmm2 は OpenGL を用いたリアルタイムマシンモニタです。最近流行のサイドバーに近いものです。
localhost のモニタ (時刻,BATTERY,CPU,NET,MEMORY/SWAP) や、 TCP 経由での情報の受信などをサポートします。

glmm2 は、今日日の現実的な性能持った機械で動作させることを前提としています。描画はコンシューマゲームのような方式で、数 10 ミリセカンドごとに常に更新します。これは通常のアプリケーションと比べて高価なものになりますが、負荷に応じて描画を制御するモードを備えているため、他のプロセスに与える影響を可能なかぎり小さくすることができます。
具体的には PentiumIII 600MHz + 2D アクセラレータ(ThinkPad i1620 / XFree86 + DRI) 程度ならば描画レベルを下げれば楽に動きます。 AthlonXP 1700+ + GeForce3 程度ならば描画レベルを最大にしても楽に動きます。 Celeron 2.5GHz + GeForceFX5200 程度ならば、負荷は全く気になりません。
標準で用意されるクライアントは
です。
設定や概念などややこしいこともありますので、何かありましたら
へのメイルや 電言板 までお気軽にどうぞ。
任意の文字列や LED 状態を送信することができます。
例えば cron で一定時間ごとに uptime を送信したり、 Emacs の process buffer の内容を送信してみたりと、色々と応用がききます。例えば、
(defun glmm2-irchat-process-filter (proc string)
(if (string-match "^P" string)
(progn
nil)
(let ((tmp (encode-coding-string (decode-coding-string string 'junet) 'euc-jp)))
(when (string-match "^:\\([^!]+\\)\\([^:]+\\):\\([^:]+\\):\\(.+\\)" tmp)
(let ((sendstring (concat (match-string 1 tmp) ":" (match-string 4 tmp))))
(glmm2-send-one-line-message sendstring 4 "gyruss")
(when (string-match "\\(ttp://[-_.!~*'()#%:@&=+$,?/a-zA-Z0-9]+\\)" tmp)
(glmm2-send-one-line-message (concat "h" (match-string 1 tmp)) 5 "gyruss"))))))
(irchat-filter proc string))
(set-process-filter irchat-server-process 'glmm2-irchat-process-filter)
といった簡単な elisp で irchat の受信内容を glmm2 に送信することができます(上記プログラムは glmm2.el に含まれます。)。
文字列や LED の送信は slot に対しておこないます。 slot は 0 からはじまる整数の識別子です。文字列には 8 個、 LED には 5 個の slot があります。
LED 状態は
といったものが設定できます。
作者は上の機能を使い、プログラムのビルド状況を文字列と LED で glmm2 に送信して、ビルドしているデスクトップ以外からでもビルド状況を監視できるようにしていたります。
Web News や天気情報などを取得します。現在は以下のようなモジュールが用意されています。