Gnome üzerinde Python betiğiyle zamanlı masaüstü arka plan resmi değiştirme

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla

Amacımız: Belirlediğimiz bir süre tekrarı ile masaüstü arka plan resmimizin değiştirilmesi.

Kullanılacak programlar: Bir adet Python betiği ve cron uygulaması. Python ve cron ön tanımlı olarak kurulu gelmektedir.

Bilmeyenler için kabaca söylemek gerekirse cron belirli aralıklara bizim istediğimiz işlemleri yapan bir uygulamadır (aslında "daemon"dır).

Adım adım neler yapacağımızı anlatalım.


1. Öncelikle Intrepid'den önce sorunsuzca çalışan Cron ve gconftool-2 uygulaması şu an bir miktar sorunlu durumda. Bunu aşmak için şunu yapıyoruz.


Görevi: Xdbus_yap isminde gedit belgesi açar
cd ~
gedit Xdbus_yap


Açılan dosyaya şunları yazıp, kaydedip kapatıyoruz:


Dosya İçeriği
Dosya yolu:Xdbus_yap

#!/bin/bash

# Export the dbus session address on startup so it can be used by cron

touch $HOME/.Xdbus

chmod 600 $HOME/.Xdbus

env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus

echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus

# Export XAUTHORITY value on startup so it can be used by cron

env | grep XAUTHORITY >> $HOME/.Xdbus

echo 'export XAUTHORITY' >> $HOME/.Xdbus


Çalıştırma hakkı veriyoruz:


Görevi: Xdbus_yap dosyasına çalıştırma hakkı verir
chmod +x Xdbus_yap


Sistem > Tercihler > Başlangıç Uygulamalarına bir yenisi ekliyoruz ve komut olarak bu dosyayı gösteriyoruz.

Gnome'dan çıkış yapıp, tekrar giriyoruz.

Eğer her şey yolunda gitmişse, ev dizinimiz altında .Xdbus oluşmuştur. (Dikkat gizli dosyadır, başında bir nokta vardır, CTRL + H ile görebilirsiniz).


Kontrol etmek için şunu yapıyoruz:


Görevi: .Xdbus dosyasını kontrol eder
ls -l .Xdbus


Alacağımız çıktının şuna benzemesi gerekmekte:


-rw------- 1 serkan serkan 184 2009-05-02 05:51 .Xdbus


2. Şimdi de python betiğimizi kayıt edelim.


Görevi: resim_degistir isminde .py uzantılı bir gedit belgesi açar
cd ~
gedit resim_degistir.py


komutu ile dosyamızı açıyoruz. İçerisine şunları geçiyoruz:


Dosya İçeriği
Dosya yolu:dosya yolu

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


from os import listdir, system

from random import sample


#get list of files in dir

fileList = listdir("/nerede/bu/resimler/")

#randomly choose one

theChosenOne = sample(fileList, 1)

#set wallpaper

system('gconftool-2 --type string --set /desktop/gnome/background/picture_filename "/nerede/bu/resimler/' + str(theChosenOne[0]) + '"')

#scale wallpaper

system('gconftool-2 --type string --set /desktop/gnome/background/picture_options "zoom"')


Önemli Not: Betik içinde farklı 2 satırda geçen /nerede/bu/resimler/ yolunu, siz resim dizininiz olacak şekilde değiştiriyorsunuz. Ayrıca bu dizinlerin sonunda mutlaka / karakteri bulunmalıdır.


Dosyamızı kayıt edip, kapatıyoruz.


3. Betiğimizi cron'a ekleyebiliriz.


Görevi: cron uygulamasını açar
crontab -e


komutu ile uygulamamızı açıyoruz. Bize hangi metin düzenleyiciyi kullanayım diye sorduğunda kendisinin de tavsiye ettiği nano'yu seçiyoruz.


En altına şu şekilde bir satır ekliyoruz:

Dosya İçeriği
Dosya yolu:dosya yolu
  • /1 * * * * . ~/.Xdbus; ~/resim_degistir.py


Bu her dakika başında resim değiştirir. Eğer bunu 10 dakika yapmak istersek */1 olan kısmı */10 olarak değiştirmemiz yeterli olacaktır.

Dosyayı Ctrl+X'e basıp soruya E diyerek kayıt edip kapatıyoruz.

Bundan sonra cron belirlediğiniz süreye göre devreye girerek masaüstü arka plan resmini değiştirecektir.

Kaynakça

  • Ubuntu-tr Forumunda "heartsmagic" kullanıcısının anlatımı