Merhabalar, bu yazıda Pardus gibi GNU/Linux sistemlerde sistem boot olurken karşınıza çıkan ekranı tasarlayacağız.
1. Kurulum:
Plymouth’u bilgisayarınız açıkken test edebilmek için aşağıdaki paketi sisteminize kurun: (debian)
sudo apt-get install plymouth-x11
Tema klasörü örneği:
Temalar /usr/share/plymouth/themes/ dizininde bulunur.
Basit bir tema aşağıdaki dosyalardan oluşur:
tema/
├── tema.plymouth
├── tema.script
tema.plymouth dosyası Plymouth’un tema hakkında bilgi edindiği dosyadır.
Örnek bir .plymouth dosyası:
[Plymouth Theme]
Name=Ornek bir Plymouth Temasi
Description=Bu temada sunlar sunlar vardir.
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/tema
ScriptFile=/usr/share/plymouth/themes/tema/tema.script
- ImageDir: Temada kullanacağımız fotoğrafların kaynağı olan dizin.
- ScriptFile: Temanın kodlarını yazacağımız dosya.
Örnek bir .script dosyası:
- Kısımda detaylı anlatacağız.
Oluşturduğunuz temayı varsayılan yapma:
Yukarıdaki şekilde oluşturduğumuz temayı sistem açılırken gözükecek tema olarak seçmek için aşağıdaki dosyayı düzenliyoruz:
/etc/plymouth/plymouthd.conf:
[Daemon]
Theme=tema
Oluşturduğunuz temayı test etme:
Temanızı test edebilmek için size lazım olan 3 komut var:
plymouthd: (plymouth’u çalıştırır)plymouth --show-splash: (temanızı ekranda gösterir)plymouth --quit: (plymouth’u kapatır)
İsterseniz kolayca test edebilmeniz için hazırladığım şu scripti de kullanarak temalarınızı test edebilirsiniz:
plymouth_test.sh:
#!/bin/bash
(plymouthd &);
plymouth --show-splash;
read -p "Kapatmak icin [ENTER] tusuna basiniz.";
echo "";
plymouth --quit;
Not: Eğer plymouth tam ekran açılırsa Alt-Tab ile scripti çalıştırdığınız terminale gelip ENTER tuşuna basarak kapatabilirsiniz.
2. Kodlama:
Temamızı genel yapısıyla oluşturduktan sonra artık kodlamaya başlayabiliriz.
Kodlarımızı tema.script dosyasına yazıyoruz.
Plymouth, temaları bash + C dili karışımı gibi kendine has basit bir script dili ile yazılır.
Bu script diliyle neler yapabileceğinize dair birkaç örnek verelim:
Fotoğraf ekleme:
# Kaynak dizini içindeki manzara.png'yi okuduk
manzara = Image("manzara.png");
manzara.GetWidth(); # Fotoğrafın genişliğini okuyabiliriz
manzara.GetHeight(); # Fotoğrafın yüksekliğini okuyabiliriz
manzara = manzara.Scale(2, 2); # İstersek fotoğrafı 2 katına büyütebiliriz.
manzara = manzara.Rotate(Math.Pi/2); # İstersek fotoğrafı döndürebiliriz (radyan cinsinden değer)
# Fotoğrafı ekrana eklemek için Sprite oluşturmalıyız.
spr_manzara = Sprite(manzara); # Ekrana eklendi.
spr_manzara.SetPosition(100, 200); # Ekranda X:100, Y:200 konumunda
# veya
spr_manzara.SetX(100);
spr_manzara.SetY(200);
Yazı ekleme:
Yazıyı da eklerken aynı yöntemi kullanıyoruz tek fark Image ile bir kaynak dosya yerine yazı oluşturuyoruz:
yazi = Image.Text("Selamlar");
yazi = Image.Text("Kirmizi yazi", 1, 0, 0); #(R,G,B) değerleri 0.0 - 1.0 arası.
yazi = Image.Text("Yesil yazi", 0, 1, 0);
# Yazıyı ekrana eklemek için Sprite oluşturmalıyız.
spr_yazi = Sprite(yazi);
spr_yazi.SetPosition(10, 200);
Arkaplan rengini değiştirme:
# Farkli renkler ile yukarıdan aşağıya bir gradyan oluşturabilirsiniz:
Window.SetBackgroundTopColor(0, 0, 1); # (R, G, B)
Window.SetBackgroundBottomColor(0.8, 0.2, 0.1); # (R, G, B)
Animasyon ekleme:
Temamıza animasyon veya zamana bağlı değişen şeyler eklemek için saniyede 50 kere çalıştırılan hazır bir plymouth fonksiyonunu kullanacağız.
fun refresh_callback ()
{
// Buradaki kodlar saniyede 50 kere calisacak.
}
Plymouth.SetRefreshFunction(refresh_callback);
Örneğin bir logoyu veya yüklenme resmini sürekli olarak çevirmek için:
img_logo = Image("logo.png")
spr_logo = Sprite(img_logo)
rotate = 0;
fun refresh_callback (){
rotate = (rotate + 0.035) % (Math.Pi*2);
spr_logo.SetImage(img_logo.Rotate(rotate));
}
Plymouth.SetRefreshFunction(refresh_callback);
3. Faydalı linkler:
Evet, sanırım bu rehberde çoğu şeyi ele aldık.
Artık kendi boot ekranınızı tasarlayabilirsiniz :)
Eğer eksik bıraktığımız veya eklenmesini istediğiniz bir şey var ise yorumlarda yazmayı unutmayın.
Selametle.

