2011年11月16日水曜日

gnomeのpop-upを使ってみよう->ネット中毒防止 pop-up

1.
家で余暇の時間を過ごしていると、うっかりネットサーフィンを続けてしまうことがある。前述(過去の記事「"Startup Applications" で立ち上げた xclock を "Always on Top" かつ "Always on Visible Workspace" にしたい。 -> devilspie を導入した」http://quantum-public-diary.blogspot.com/2011/07/startup-applications-xclock-always-on.html)のようにあなろぐ時計を見やすい位置に表示しているにもかかわらずだ。そこで、gnomeが立って2時間経過したら、「もうネットの時間はおしまいよ」とpop-upで教えてくれるスクリプトを書いた(普段、家のPCの電源を入れっぱなしにすることはないのだ。で、電源を入れたら自動login して、gnomeを立てて待っていてくれるシステムになっている)。

2.
zenity (http://live.gnome.org/Zenity)はコマンドラインやシェルスクリプトからGTKのダイアログボックスを開くことを可能にするツールである。使い方は「試験運用中なLinux備忘録(http://d.hatena.ne.jp/kakurasan/20070716/p1)」に詳しい。

が、私には細かいことは必要ないので、一番基本的な使い方をしている。

$ zenity --info --text "It's time to leave PC"

としてみればpop-upが出せる。

3.
pop-upの出し方がわかればあとはスクリプトを書くだけだ。
以下のスクリプトを書いて保存しchmod +xして、gnomeのstartup applicationsに登録する。

#!/usr/local/bin/bash
d=`date +%w`
if [ $d -eq 0 -o $d -eq 6 ]; then
    exit 0;
fi
sleep 7200;
zenity --info --text "It's time to leave `hostname -s`"

土曜と日曜は2時間以上ネットしてもいいとのポリシーを採用した。
2時間で pkill gnome-sessionとかshutdownしようかとも思ったけど、過激過ぎるのでとりあえずは警告のみで運用する。