glmm2
 

glmm2 とは?

glmm2 は OpenGL を用いたリアルタイムマシンモニタです。最近流行のサイドバーに近いものです。

localhost のモニタ (時刻,BATTERY,CPU,NET,MEMORY/SWAP) や、 TCP 経由での情報の受信などをサポートします。

glmm2lv0glmm2lv1

glmm2 は、今日日の現実的な性能持った機械で動作させることを前提としています。描画はコンシューマゲームのような方式で、数 10 ミリセカンドごとに常に更新します。これは通常のアプリケーションと比べて高価なものになりますが、負荷に応じて描画を制御するモードを備えているため、他のプロセスに与える影響を可能なかぎり小さくすることができます。

具体的には PentiumIII 600MHz + 2D アクセラレータ(ThinkPad i1620 / XFree86 + DRI) 程度ならば描画レベルを下げれば楽に動きます。 AthlonXP 1700+ + GeForce3 程度ならば描画レベルを最大にしても楽に動きます。 Celeron 2.5GHz + GeForceFX5200 程度ならば、負荷は全く気になりません。

標準で用意されるクライアントは

です。

設定や概念などややこしいこともありますので、何かありましたら wac@umiushi.org へのメイルなどお気軽にどうぞ。

News

2006年8月6日(日)
glSidebar へ移行します
秋くらいになんとかできればいいなぁ。
2005年3月3日(木)
改良中
色々と時代遅れになったので。
2003年9月10日(水)
更新しました。
大量の行を表示しようとすると落ちるバグを修正しました。
2003年7月29日(火)
更新しました。
elisp を微調整しました。

クライアントについて

情報送信クライアント

任意の文字列や 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 や天気情報などを取得します。現在は以下のようなモジュールが用意されています。

戻る