Masaüstü Resmi Düzenleyicisi

Başlatan Jey@Nfer, 25 Mart 2013 - 13:00:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Jey@Nfer

Şu sıralar günüm aşırı yoğun geçtiği ve kafam allak bullak olduğu için yapacaklarımı kaydetmeye başladım; notlar içinde notlar..
Derken çok karışık olduğunu farkettim bazı notların da sürekli gözümün önünde olmasını istediğim için notlarımı masaüstü resmine yazmaya karar verdim. 
Bunun için de bir Python betiği yazdım.

Hem bir betik örneği olur hem de belki bazı arkadaşlar için kullanışlı olur diyerek sizinle paylaşayım arkadaşlar:

#!/usr/bin/env/python
#-*- coding: utf-8 -*-

from PIL import Image, ImageDraw, ImageFont #Resmin uzerine yazi icin gerekli modul
from datetime import date #bugunun tarihini bulmak icin

resim = Image.open("/home/mimvavkaf/wlp.jpg") #orjinal wallpaper resmi
# Uzerine yazilar yazacagimiz asil resim; sadece okuyacagiz, degistirmeyecegiz

cizele = ImageDraw.Draw(resim) # yazi yazma nesnesi

fnt = "/usr/share/fonts/truetype/freefont/FreeMono.ttf" # Yazi fontu

ft = ImageFont.truetype( fnt, 40 ) # yazi fontu, boyu

######################### ~~~aktifgun ac ~~~ ########################################

d_agun = open("/home/mimvavkaf/Desktop/Dropbox/ipucu/aktifgun.txt", "r")

# aktifgun dosyası, içersinde hatırlatmaların olduğu dosyadır
# sayfa yapısı belirli bir düzene göre tutulması gerekir (bu düzene göre okunur) :
# 1. satır : masaüstüne yazılan mevcut ip ucu dosyasının sıra ismini tutar (elle değiştirmeyin!)
# 2. satır : ip ucu dosyalarının adet bilgisini tutar; yalnızca yeni bir ip ucu dosyası oluşturduğunuzda, değerini elle bir arttırın.
# 3. satır : boşluk ; bu boşluğu silmeyin
# 4. satır : tarih bilgisi , burası mevcut tarihi gösterir, bu satırda elle hiç bir değişiklik yapmayın
# 5. satır : boşluk , bu boşluğu silmeyin
# 6. satır : buradan itibaren hatırlatmalarınız vardır; alt alta [gün ay : hatırlatma]
#             şeklinde formatlı olarak elle değiştirebilirsiniz.

# <SABITLER>

gunluk=d_agun.readlines()

d_agun.close()

olan=int(gunluk[0].replace("\n","") ) # kaçıncı ip ucu dosyası yazdırılacak
biten=int( gunluk[1].replace("\n","") ) # en son ip ucu dosyası kaç?

if olan < biten :
    olan +=1
else :
    olan = 1

olan=str(olan)
biten=str(biten)

aylar=["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül", "Ekim", "Kasım", "Aralık"]
gunler={0:"Pazartesi", 1:"Salı", 2:"Çarşamba", 3:"Perşembe", 4:"Cuma", 5:"Cumartesi", 6:"Pazar"}

bugun=date.today() #bu gunun tarihi
ay=aylar[bugun.month-1] #bu ay
gun=str(bugun.day)

vakit=gunluk[3].split(" ") #Namaz vakitleri

tarih=gun+" "+ay

# </SABITLER>

#Yapılacak iş var mı?
for i in gunluk[5:]:
    if i.split(" : ")[0] == tarih :
        cizele.text( (420, 1000), unicode(i, "utf-8") , fill="#ffff00", font=ft )

if not(vakit[0]==gun and vakit[1]==ay):
    # ay ve gun tutmuyorsa
    d_nv=open("/home/mimvavkaf/Desktop/Dropbox/ipucu/izmitnamaz.txt","r")
    # namaz vakitlerinin olduğu dosya, elle değiştirmeyin

    # http://www.fazilettakvimi.com/tr/namaz_vakitleri.html sayfasından alındı

    nvakitler=d_nv.readlines()
    d_nv.close()

    d_nv=open("/home/mimvavkaf/Desktop/Dropbox/ipucu/izmitnamaz.txt","w")
    d_nv.write(nvakitler[0])

    j=1
    for i in nvakitler[j:]:
        if tarih in i:
            vakit=i
            break
        j+=1

    for i in nvakitler[j:]:
        d_nv.write(i)

    d_nv.close()

    vakit=vakit.replace("\t","")
    gunluk[3]=vakit
    vakit=vakit.split(" ")

# masaüstü resminin üzerine bilgileri yaz
cizele.text( (400, 100), unicode(" %s %s %s " % (gun ,ay ,gunler[bugun.weekday()] ), "utf-8") , fill="#ffffff", font=ft )
cizele.text( (410, 155), unicode("%s %s" % ("Sabah  ",vakit[5] ), "utf-8") , fill="#ffffff", font=ft )
cizele.text( (410, 210), unicode("%s %s" % ("Öğle   ",vakit[7] ), "utf-8") , fill="#ffffff", font=ft )
cizele.text( (410, 265), unicode("%s %s" % ("İkindi ",vakit[8] ), "utf-8") , fill="#ffffff", font=ft )
cizele.text( (410, 320), unicode("%s %s" % ("Akşam  ",vakit[10] ), "utf-8") , fill="#ffffff", font=ft )
cizele.text( (410, 375), unicode("%s %s" % ("Yatsı  ",vakit[11] ), "utf-8") , fill="#ffffff", font=ft )

##################################### aktifgun YAZ ##################################

d_agun = open("/home/mimvavkaf/Desktop/Dropbox/ipucu/aktifgun.txt", "w") # aktifgun yaz

d_agun.write(olan+"\n")
d_agun.write(biten+"\n")

for i in gunluk[2:]:
    d_agun.write(i)

d_agun.close()

d_ipucu=open(("%s" %("/home/mimvavkaf/Desktop/Dropbox/ipucu/"+str(olan)+".i") ), "r") # ipucu dosyasi
# bu dosyalardaki bilgiler masaüstünüze yazılır
# bu dosyaların isimlendirmesi; "numara.i" olarak, uzantısı ".i" olacak şekilde yapılır
# dosyaların uzantıdan önceki isimleri ise sıralı giden numaralar olmalıdır.

ipucu= d_ipucu.read().split("\n") # ipucu dosyasini oku, yeni satir isaretinden bolup liste yap

d_ipucu.close() # dosyayi kapat

sutun = 120
for y in ipucu:
    cizele.text( (900, sutun), unicode(y,"utf-8") , fill="#99ff00", font=ft )
    #resmin uzerine yazi yaz
    sutun += 55 #alt satira gec

resim.save("/home/mimvavkaf/ekra.png", "png") #resmi kaydet



Programı şu şekilde kullanabilirsiniz :
* Öncelikle bu program için bir dizin oluşturun
* kaynak koddaki dizinleri kendinize göre değiştirin
* Bir masaüstü resmi seçin ve programı bir kez çalıştırın
* program size son satırda resim.save("/home/mimvavkaf/ekra.png", "png")  koduyla bir resim üretecek , bu üretilen resmi açıp masaüstü resmi olarak belirleyin.
* betiği başlangıç uygulamalarına "python [dizin_yolu]/ekranci.py" şeklinde bir komutla kaydederseniz her oturum açıldığında ekranınız güncellenecektir.

programın yaptığı şey şudur :
* belirlediğiniz dizindeki "aktifgun.txt" ile mevcut güne dair bilgileri (yapılacak iş, namaz vakitleri, ve ip ucu bilgisi) alır ve ekrana yazar.
* ip ucu dosyaları "[sıra_no].i" şeklinde isimlendirilir , yeni bir ip ucu dosyası oluşturduğunuzda "akftifgun.txt" dosyası içindeki 2. satırdaki sayıyı bir arttırın. Bu satır , en son ip ucu dosyasının ismini tutar.


Kaynak kodu dikkatli incelerseniz aslında her şey açık arkadaşlar, yeterli açıklayamadıysam kafanıza takılan yerleri sorun.

genel hatlarıyla taslak örneği için http://code.google.com/p/wallpaper-hatirlatici/downloads/list sayfasındaki kaynak dosyayı indirip ona göre düzenleme yapabilirsiniz.



umarım faydalı olur.
Hırs , azim , tevekkül ...

www.mehmetvahit.net

karboran

#1
Böyle bir programa ihtiyacım yok , mantar tahtam yetiyor :) . Ama betiği merak ettim inceleyeceğim elinize sağlık . Ek olarak , betikdeki açıklamar içinde teşekkürler , benim gibi pythonda yeni olanlar için çok iyi olmuş :).
Kabin basıncı düştü motorlarda arıza !
Vakit süratle aksın hakimiyet kur nabıza !
İçinden nasıl geldiyse yaz anlat herşeyi ,
Bu mektup varmıcak hayalini kurduğun kıza !

guopx

@ Jey@Nfer klavyenize sağlık çok güzel olmuş :)
Sevdiklerine sevdiğini söyle çok geç olmadan.