Efe ÇİFTCİ

Bilgisayar Mühendisi, Özgür Yazılımcı, Trekkie.

Plasma Panel Şablonları Oluşturmak 11 Kasım 2010


KDE 4.5 ile birlikte plasma masaüstlerine yazının başlığında da gördüğümüz panel şablonları özelliği eklenmiş. “Nedir bu?” diyecek olursanız şöyle tarif edeyim; daha önceden belirlenmiş bir plasmoid dizilimine sahip panelleri ekranımıza kolayca eklememize yardımcı olan bir kısayol teknoloji. Mesela alt panele sağ tıklayıp yanlışlıkla taskbar’ı veya panelin tümünü uçurduğumuzu düşünün (özellikle de bunu KDE’yi ilk defa kullanan birinin yaptığını düşünün), orjinal halini geriye getirmek için yapmamız gereken işlem KDE 4.5 itibariyle artık çok basit:

Panel Şablonları Menüsü

Bu yazıda ekranda görmüş olduğunuz bu menüyü kendi istekleriniz doğrultusunda nasıl zenginleştirebileceğinizi açıklamaya çalışacağım.

Panel şablonları aslında daha önceden plasmoid paketleri yapmış kişilerin kolaylıkla tanıyabileceği bir formatta geliyor:

Şablon Dosyaları

  • metadata.desktop: taslak hakkında bilgi içeren dosya.
  • contents/layout.js: Oluşturulacak panel, panel üzerine yerleştirilece plasmoidler vs hakkında esas bilgiyi içeren dosya. Uzantıdan da görülebileceği gibi taslak dosyası bildiğimiz JavaScript dilinde hazırlandığı için herhangi bir Qt/C++/Python bilgisine sahip olmamıza gerek yok.

Örneğin, ekranın üst kenarına yerleşen ve Mac işletim sistemlerinde gördüğümüz uygulama menüsünü içeren bir panel şablonu hazırlayacak olduğumuzu varsayalım. Öncelikle yeni bir dizin oluşturup bu dizin altına metadata.desktop adında bir dosya oluşturup içini şu şekilde dolduralım:

[Desktop Entry]
Encoding=UTF-8
Name=Menü Paneli
Type=Service
ServiceTypes=Plasma/LayoutTemplate
X-Plasma-Shell=plasma-desktop
X-Plasma-ContainmentCategories=panel
X-KDE-PluginInfo-Author=Efe Ciftci
X-KDE-PluginInfo-Email=efeciftci@gmail.com
X-KDE-PluginInfo-Name=org.kde.MenuPanel
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://blog.efeciftci.com/
X-KDE-PluginInfo-Category=
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true

Daha sonra da contents adında bir dizin ve bu dizinin altında layout.js adında bir dosya oluşturalım ve içini şu şekilde dolduralım:

var panel = new Panel

// Panel yüksekliği 27 pixel olsun
panel.height = 27

// Panel gizlenmesin, her zaman gözüksün
panel.hiding = 'none'

// Panel ekranın üst kenarında dursun
panel.location = 'top'

// Panele bir tane menubar plasmoid'i eklensin
panel.addWidget("menubar")

Bu dosya yeterince açıklayıcı ve temel olmasına rağmen söylemem gereken bir nokta var, addWidget satırında kullanmak üzere sisteminizde kurulu olan tüm plasmoidlerin listesini bir terminalde plasmapkg -l komutunu çalıştırarak öğrenebilirsiniz. Ayrıca unutmayın ki panelinize birden fazla plasmoid eklemek istiyorsanız alt alta dilediğiniz kadar addWidget satırı kullanabilirsiniz.

Her iki dosyayı da hazırladığımıza göre sırada bu dosyaları bir taslak paketi haline getirmek var. Bir terminalden metadata.desktop dosyamızın olduğu dizine geçelim ve zip -r ../menupanel.plasmalayout . komutunu çalıştıralım. Bu komut, panel taslağımız ile ilgili herşeyi, bir üst dizine menupanel.plasmalayout adlı bir dosya içine yerleştirir. Bir üst dizin belirtmemizin sebebi, bu paketi daha sonra güncellemek isterseniz yanlışlıkla mevcut paketi yeni paketin içine dahil etmek istemememiz 🙂

Oluşan paketi sisteme kurmak içinse şu komutu çalıştırmamız gerekiyor: plasmapkg -t layout-template -i ../menupanel.plasmalayout. Eğer bu komutun çıktısında herhangi bir hata ile karşılaşmadıysak şimdi tekrar masaüstümüze geri dönelim ve sağ tıklayıp açılan menüye bakalım:

Panel Şablonları Menüsü

Görebileceğimiz gibi yeni panel taslağımız kullanıma hazır. Sizler de bu yöntemi uygulayarak kendi kişiselleştirdiğiniz panellerinizi bir taslak haline getirebilir ve oluşan dosyayı diğer bilgisayarlarınız veya arkadaşlarınızla paylaşabilirsiniz 🙂

Dipnot: JavaScript dosyası içinde kullanabileceğiniz diğer özelliklere (plasma aktivite şablonları oluşturmak bile mümkün) http://techbase.kde.org/KDE_System_Administration/PlasmaDesktopScripting adresinde API başlığı altından erişebilirsiniz.