Ç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

Dairesel hareketler yapan betiği eğer xournalpp ile çalıştırırsanız hoş şekiller çizilebiliyor.

Burada hızlı bir şekilde renkleri değiştirmek için bir Lua betiğinden faydalanabilirsiniz.

function initUi()
  app.registerUi({["menu"] = "Cycle through color list", ["callback"] = "cycle", ["accelerator"] = "<Alt>r"});
  app.registerUi({["menu"] = "Kalem degistir", ["callback"] = "kalemDegistir", ["accelerator"] = "<Alt>j"});
  app.registerUi({["menu"] = "Yazi yaz", ["callback"] = "yaziYaz", ["accelerator"] = "<Alt>v"});
  app.registerUi({["menu"] = "Yapistir", ["callback"] = "yapistir", ["accelerator"] = "<Ctrl>v"});
  app.registerUi({["menu"] = "Arapca Yapistir", ["callback"] = "yapistir", ["accelerator"] = "<Ctrl>Arabic_waw"});
end

local f = io.open('deneme.txt')
local output = {}


function yapistir()
   app.uiAction({["action"] = "ACTION_TOOL_TEXT"})
   app.uiAction({["action"] = "ACTION_PASTE"})
   -- os.execute("emacs")
   for each in f:lines() do
      output[#output+1] = each
   end
end


local colorList = {
  {"green", 0x008000},
  {"red", 0xff0000},
  {"mavi", 0x0574b2},
  {"kahve", 0xb24305},
  {"cagla", 0x5b243},
  {"pembe", 0xb20574}
}


local currentColor = 0

function cycle()
  if (currentColor < #colorList) then
    currentColor = currentColor + 1
  else
    currentColor = 1
  end
  app.changeToolColor({["color"] = colorList[currentColor][2], ["selection"] = true})
end

local seciliArac = 0

function kalemDegistir()
   seciliArac = seciliArac + 1
   if (seciliArac % 3 == 1) then
      app.uiAction({["action"] = "ACTION_TOOL_HIGHLIGHTER"})
      app.changeToolColor({["color"] = 0xEEFF00, ["tool"] = "highlighter"})
   end
   if (seciliArac % 3 == 2) then
      app.uiAction({["action"] = "ACTION_TOOL_PEN"})
   end
   if (seciliArac % 3 == 0) then
      app.uiAction({["action"] = "ACTION_TOOL_SELECT_OBJECT"})
   end
end

function yaziYaz()
   app.uiAction({["action"] = "ACTION_TOOL_TEXT"})
   app.changeToolColor({["color"] = 0xEEFF00, ["tool"] = "highlighter"})
end

Bu betiği main.lua olarak kaydediniz.

İlk oluştururken bu betiği hali hazırda var olan başka bir betiğin üzerine yazmıştık.

sudo cp main.lua /usr/share/xournalpp/plugins/ColorCycle/main.lua

Daha sonra xournalpp yazılımında Alt-R tuşlarına beraber basarak renkleri hızlıca değiştirebilirsiniz.

1 Like