Çay için ufak bir betik

Ç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