KDE的Plasma主題是直觀上KDE4最重要的變化之一,帶來了完全不同的桌面介面體驗。那麼這些Plasma主題究竟是怎麼製作出來的呢?這就不得不提到svg。
可縮放向量圖形(Scalable Vector Graphics,SVG),是一種圖片格式,和png,jpeg,bmp不同,它是通過描述圖片當中的向量而不是圖元而製成的圖片。比如一條直線,點陣圖 就是描述某些點是黑色,最終連成一條直線,而svg則是描述從點p到點q有一條直線這樣的一種形式,因此具有可以任意縮放的優點。
Plasma的主題就是由諸多這樣的SVG圖片組成的。說起來,製作一個這樣的主題並不是非常容易。對於一般人來說,既沒有時間也沒有精力花氣力重 新製作一套主題。這裡僅僅介紹一些常見的元素是如何構建的,希望最後對於某些細節瑕疵的主題,大家可以手動做一些小修正來達到完美的效果。如果真的有心制 作一個完整的主題的話,不妨從一個已有主題來慢慢構建。在kde-look上也有一些混合型主題,就是將不同主題的元素組合起來,自己只調整比較少的部 分,也可以做出很好看的主題。
說起svg,就不得不提到svg編輯無出其右的利器,inkscape。inkscape的具體使用這裡就不贅述了,大家上手試試就知道了。
我們從一個最基本的元素widgets/background說起。plasma的每個元件都是採用不同的svg圖片拼接而成,比如捲軸,面板, 背景都是不同的svg檔,每一個plasma的元素有一個對應的檔,比如widgets的背景就是widgets/background。因為對於沒 有混成管理的xserver來說半透明是無法顯示的,所以大部分plasma主題也為這些元素準備了一套不透明的主題,放在 opaque目錄下面,opaque目錄內部的組織和根目錄很像,就是在視窗無法混成的時候,可以使用這些檔從而達到更好的效果,否則就會有奇怪的黑 邊。KDE4.5的新feature是採用新KDE的託盤圖示可以根據plasma主題改圖示,這些svg圖示都是放在icons木下的。KDE4.5的 另外一個變化是出了opaque,還有translucent這個目錄,對應就是開啟模糊的情況下,使用的檔。所以看起來開啟視窗模糊之後,air主題 會看起來更加透明。
對於最基本的幾個元素,widgets/background,dialogs/background,看看就能夠立即發現自己使用的主題的身影。 對於background系列的這兩個svg來說,它採用了九宮格的方式進行縮放,將一個圖片拆分為九份,四個角不變化大小,四個邊只在橫向或者豎向變化 大小,中間部分是直接resize。這樣和直接縮放比起來在邊界上也會獲得很好的效果。
有意思的是,這些子圖是在同一個檔中描述的,如果瞭解html的domtree的話,這可能更好理解,每個小部分都會被分配一個id,根據id來確定每個部分的作用。
說起來,一個plasma主題僅僅有svg圖片,而沒有任何設定檔,它是如何描述邊界資訊的呢?在plasma的圖片中,經常會看到一些綠色的矩形,plasma就是根據這些矩形的寬度來確定邊界的範圍的。
在inkscape當中每個圖塊都被構成了group並且制定了id。每個id都有特殊的功能。
製作Plasma主題,基本來講比較像搭積木,和做網頁花的功夫可能差不多,不斷調整每個塊的顏色,背景,大小,最後達到最好的效果。還有一些比較 特殊的widget,比如lancelot,plasma的基本組件不足以創建這樣的圖,怎麼辦呢?就會有一些specific的部件用於構成這個主題。
做完的plasma主題製作成zip,上傳到kde-look對應分類之後,就可以通過get new stuff來安裝了。或者手動解壓到~/.kde4/share/apps/desktopthemes。
具體製作上還是挺麻煩的,我也只手動修改過某些主題的細節,來修正一些顯示上的bug。旨在讓有興趣的人做一個入門的瞭解,而不是完整的製作教程。具體製作從參考一個已有主題會簡單得多。
http://ikde.org/%E7%BE%8E%E5%8C%96/plasma-theme-intro/