Çay yaparken ya da çayı ısıtırken bilgisayara dalıp çayı ocakta unutabiliriz.
Çay ısınınca haber verecek Free Pascal ile ufak bir uygulama yazmıştım.
Ama süre bitince nasıl haber verecek?
Sadece bir ileti kutusu gösterse fark edilmeyebilir.
İşte bunun için bir betik yazdık. Bu betiği kullanmak için xdotool
paketini kurmak gerekiyor.
bc
paketi de saniye hesabı yapmak için faydalı olabilir.
#!/bin/bash
uyu()
{
/usr/bin/perl -e "select(undef, undef, undef, $1)"
}
YON='kuzeydoğu'
XHAREKET=5
YHAREKET=5
while true
do
eval $(xdotool getmouselocation --shell)
#echo $X $Y
if [ "$Y" == "0" ];
then
YON='güneydoğu'
fi
if [ "$Y" == "1023" ];
then
YON='kuzeybatı'
fi
if [ "$X" == "1279" ];
then
YON='güneybatı'
fi
if [ "$YON" == 'kuzeydoğu' ];
then
xdotool mousemove_relative -- "+$XHAREKET" "-$YHAREKET"
uyu .00166
fi
if [ "$YON" == 'kuzeybatı' ];
then
xdotool mousemove_relative -- "-$XHAREKET" "-$YHAREKET"
uyu .00166
fi
if [ "$YON" == 'güneydoğu' ];
then
xdotool mousemove_relative -- "+$XHAREKET" "+$YHAREKET"
uyu .00166
fi
if [ "$YON" == 'güneybatı' ];
then
xdotool mousemove_relative -- "-$XHAREKET" "+$YHAREKET"
uyu .00166
fi
done
Bekleme süresini
echo "scale=5; 1/600" | bc
komutuyla hesaplıyoruz. Burada bir saniyenin altı yüzde biri kadar beklemek istiyoruz.
Betik çalıştığında fare hareketleniyor.
Bu örnekte ise fare dairesel hareket ediyor :
#!/bin/bash
uyu()
{
/usr/bin/perl -e "select(undef, undef, undef, $1)"
}
SAY=1
MESAFE=300
AZALT=true
while [ true ]
do
xdotool mousemove -polar $SAY $MESAFE
uyu .00166
SAY=`expr $SAY + 1`
if ((SAY % 5 == 0)); then
if ("$AZALT" == true); then
MESAFE=`expr $MESAFE - 1`
else
MESAFE=`expr $MESAFE + 1`
fi
fi
if [ $SAY -eq 360 ];
then
SAY=0
fi
if [ $MESAFE -eq 0 ];
then
AZALT=false
fi
if [ $MESAFE -eq 600 ];
then
AZALT=true
fi
done