SLBiff


はじめに

普段は PC に向かって仕事をする身ですが, 文献調査や校閲作業, 半田作業など, たまには机に向かっているものの PC を操作してない時もあります. そういう時は, うっとうしいので 手動もしくは自動でディスプレイの電源を切ります.

これで困るのがメールの着信通知です. 普段私はメーラ (MUA) をタスクトレイに常駐させ, そのアイコンが変わったことをもってメール着信を知るのですが, ディスプレイが消えてるとそれが分かりません. しかたなく, 時折ディスプレイをつけて何か来てるかどうか確認していましたが, 何とかならんもんかと前々から思っていました.

要はディスプレイが消えていてもメールが来てれば光る何かがあればいいわけです. 最初に思いついたのはシリアルもしくは USB 接続の LED を作ることです. 作るのはそんなに難しく無さそうですが, 面倒くさいかというと話は別ですし, 貴重なポートを浪費するのも抵抗があります. なんかいい方法はないものかとネットをさまよってみると, キーボード付属の LED の点滅でメール着信を教えるソフトが転がっていました. なるほど, これはいいアイデアだ.

ところがダウンロードして使ってみるといろいろ不満が出てきます. あるソフトは画面に誰からメールが来たかの表示を消すことができません. 私が知りたいのはメールがサーバに溜まっているか否かだけであって, 誰から何通などという情報はメーラで見るので欲しくありません. 別のソフトはなかなかいい感じだったんですが, LED (Scroll Lock) の制御を 仮想的に [Scroll Lock] キーが押さたことでやってました. はじめ, 私もこのキーはまったく使わないので構わないと思って使っていたのですが, ある日 X-Deep/32 上で emacs を触っていると突然ピーピーと beep 音が出ます. どうも emacs が未定義キーが押されたと警告を出していたようです.

またメール着信時の合図が常時点滅でなく, 数秒点滅した後は 常時点灯になって気付きにくいこと, メーラで新着メールを読んだ後クリアしにくいことなども不満でした.

っという訳で私なりに作ってみたものがこれです.

プログラム

プログラムの実行形式は こちら です(0.3). NT/2000/Xp 環境では giveio.sys のインストールを強く奨励します. giveio.sys 経由でキーボード上の LED を制御しているためです. 一応 giveio.sys が無くても仮想キー入力を使って LED を点滅するように 作ってみましたが, これだと上述の beep 音の問題が取り除けません.

初回起動時は以下のような画面になるはずです.

POP サーバ, ユーザ, パスワード及び監視間隔の入力欄がありますので, 適当に入れてください. なお, 監視間隔は短ければ短い程サーバに負荷をかけますので, 2,3 分程度にしておいてください. [Save/Start] キーを押すと設定を保存後監視モードに移行します. 設定ファイル中, パスワードは一応不可視にしてますが, やり方は netpsと同じでいい加減です. 取り扱いには気をつけて下さい.

[Tray] ボタンを押す, もしくは起動時に設定ファイルの読み込みに成功した場合は トレイに入ります. 表示するにはトレイ上のアイコンを左ダブルクリックしてください.

[Check Now] ボタンを押すとサーバにメールの有無を確認しに行き結果を表示します. 裏を返すと, このボタンを押した時以外は, サーバ接続に失敗しても何も表示しません. 入力したサーバ名やユーザ, パスワードが間違ってないか, 一度このボタンで確認してください.

サーバにメールがある場合は Scroll Lock の LED が 2 秒周期で点滅します. 点滅に気付いたらメーラを使って取得してください. 取得後, ほっといても一定時間経過後またサーバにメールの有無を確認しに行きますので, その時点でメールが消えていることが判明し LED が消灯されますが, どうしてもタイムラグがあります. それが嫌な場合は, メーラでメール取得後, タスクトレイのアイコンを右クリックしてください. 右クリックした時点ですぐにメール確認に行き結果を反映します.

なお, 本ソフトは単純にサーバにメールがあるか否かでメールの有無を判断しています. サーバにメールを残す設定をしていると常時 LED が点滅します.

Ver0.2 で, slbiff 起動時に、既に slbiff が起動しているか否かを調査し, 起動している場合は, その slbiff に対し, 一定時間メールが無いと判断させるメッセージを投げて終わるようにしました. すなわち、タスクトレイのアイコンを右クリックする代わりに slbiff を起動する だけで LED が消灯されます (さらに言えば, タスクトレイをクリックするやり方はサーバにメールが来てないか見に行きますが, slbiff 起動法はサーバに見に行かずに強制的に消灯します).

これをどのように使うかというと, Sylpheedの場合, [設定]-[全般の設定]に「新着メッセージが着たらコマンドを実行する」という 項目があります. ここに slbiff をしこませておくと,

  1. slbiff でメールに気づく
  2. sylpheed で取りに行く
  3. 取りに行くことで slbiff が実行される
  4. LED が消える
という流れが実現できます.

V0.3 では LED の制御方法を直接 I/O ポートをたたくのでなく, API を通じて行うように変えました. その結果 USB キーボードでも動くようになりましたが, (特定のアプリで Beep が鳴るなど) 副作用があるか分かりません (否定できないだけで, 今の所その存在は確認はされてません).

またせっかくなんで,

  1. メール着信時にタスクトレイのアイコンの色を変える
  2. APOP および110 以外のポートへの対応
  3. LED 等が正しく付くかのテストスイッチの追加
などの機能追加もしました.

その他


[戻る]