歡迎您光臨本站 註冊首頁

KDE 4 plasmoid 簡介

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
KDE 4 包括許多振奮人心的新技術,其中包括 Plasma,該特性構成了 KDE 4 的桌面 shell。下面讓我們看看如何編寫簡單的 Plasma applet(稱為 plasmoid)以顯著改善桌面體驗,以及如何將一個 plasmoid 變成一個簡單的內存監控器。

KDE,即 K Desktop Environment(K 桌面環境),是一個基於桌面環境的免費軟體項目,它針對 UNIX® 等系統。它為日常操作提供基本的桌面函數和應用程序,並為開發人員提供工具和文檔,幫助他們為系統編寫獨立應用程序。KDE 軟體基於 Qt 工具箱。第四代 KDE 的核心是一個重新設計的桌面環境和面板(統稱為 Plasma),它將 Kicker、KDesktop 和 SuperKaramba 的功能整合到一種技術中。

KDE 4 帶來了新希望

K 桌面環境(KDE)的第四個主要版本於 2008 年 1 月發布,並且得到了各種的評價。這個版本有以下主要變化:

  • KDE 3 的大部分基本代碼完全重新編寫。
  • 創建了大量的新技術。
  • 大部分基本代碼以某種方式重構。

儘管初始的 4.0 版本顯示出極大的潛力,但修改範圍意味著這個版本不會與 KDE 3 具有相同的功能。因此,很多用戶報告說該版本在某些領域不穩定,一些用戶不願意升級到這個版本。4.1 版本解決了這些問題的大部分,但仍然缺少一些特性。

但是,隨著 2009 年 1 月 KDE 4.2 版本的發布,這些問題中的大多數都得到了解決,許多用戶決定使用 4.2 版本作為他們的主要桌面環境。

由於如此多的用戶已經開始使用這個版本,現在是深入了解這些新功能和新技術的好時機。





KDE 4.2 使桌面煥發生機

本文主要關注一種最激動人心的新技術:Plasma 和 Plasma applet(它們通常稱為 plasmoid)。

Plasma 後面的理念很簡單:您擁有一個或多個 Plasma 容器,這些容器是一些可顯示的元素,能夠包含一些單獨的項目,比如 widgets/plasmoids 和/或其他 Plasma 容器。

這個理念聽起來並不是特別具有突破性,除非您意識到這個事實:在 KDE 4 之下,整個桌面 shell(向用戶顯示的主桌面)實際上就是一個 Plasma 容器,並且所有常用控制項(比如任務欄、任務清單、時鐘、任務, 任務切換器、K 菜單、快速啟動圖標等)都是通過 Plasma applet(比如時鐘)或 Plasma 容器(比如任務欄)實現的。

這一點非常令人振奮。它為 KDE 4 用戶提供許多的自定義機會,允許開發人員和/或個人用戶更改桌面體驗的幾乎每個方面,在需要的地方完全更改其行為。例如,如果您想要一個比默認應用程序啟動器功能更強大的應用程序啟動器,您可以使用一個諸如 Lancelot(正在開發過程中)這樣的啟動器。如果空間有限,自己編寫一個在輕量級的 DE(比如 XFCE)中常見的應用程序啟動器(在輕量級的 DE 中右鍵單擊將顯示一個簡單的彈出菜單),刪除常規啟動器以提供更多的屏幕空間。

這個簡單的理念允許 KDE 4 轉變成自適應桌面,因為發行版和用戶能夠使 KDE 適應不同的配置。例如,高配置的機器能夠受益於複雜的大型 applet 和所有附件,而低配置的機器則可以依靠所需組件的簡單/輕量級版本並刪除 不需要的組件。 這樣,您不再需要替換 KDE 4 以支持一個更專業的、輕量級的 DE。

儘管這些 Plasma applet 可能有些複雜,它們原本是您希望總是處於打開狀態的工具風格的小型應用程序,而不是完整的應用程序。它們通常嵌入到桌面和/或任務欄中,典型的例子有系統監控器、即時消息器、社交網路工具等。

另一個公共的設計功能是它們佔用較小的屏幕空間。您不希望看到許多 plasmoid 總是在桌面上打開而沒有重疊。它們不在窗口管理器中顯示為獨立的窗口,因此您不能在它們之間快速移動或將其最小化。

除了提供基本的 Plasma 容器技術,KDE 開發人員已經著手編寫強大的 Plasma applet,並盡量使其簡便靈活。這些 applet 包括以下功能:

  • 對所有 GUI 元素的可縮放矢量圖形(Scalar Vector Graphics,SVG)的一流支持。 這樣,所有的應用程序/applet 的解析度將獨立於平滑縮放。在 30 英寸高解析度監控器和 8 英寸上網本屏幕上,同一個應用程序的外觀和行為將表現正常 — 而無需開發人員進行其他處理。
  • 對主題的出色支持。我們積極支持開發人員引用所有資源(如圖標和背景等)。引用時要使用相對路徑,這樣 KDE 能夠根據當前選擇的主題在運行時定位這些資源。這將允許所有 KDE 4 應用程序在不同的主題之間利用統一的外觀,這同樣不需要開發人員進行額外處理。
  • 多語言支持。KDE 4 plasmoid(比如常用 KDE 應用程序)能夠使用幾種不同的編程語言編寫。本文關注 C++,但其他語言(比如 Ruby、Python 和 Javascript)正在開發過程中。
  • 組件重用。KDE 很好地支持組件重用各組件相互提供的服務。

現在您對 Plasma 的背景有了一些了解,讓我實際編寫一個簡單的 plasmoid 並添加到我們的 KDE 4.2 桌面中。





KDevelop 4 IDE

這些指令假定您正在運行一個 KDE 4.2 桌面。這些指令的一部分或全部可能可以應用於 KDE 4.1,但我沒有驗證這一點。

首先,您需要安裝所有的 KDE 開發庫、標題等。

我使用的是 Kubuntu 8.10 (Intrepid Ibex)的 Stable 版本,該版本默認提供 KDE 4.1,所以我必須啟用 PPA 庫以獲取 KDE 4.2 和標題。 (參見 http://www.kubuntu.org/news/kde-4.2 以了解詳細信息)。(Kubuntu 9.04 不需要這個步驟,但安裝 g++ 和 kdesdk 等一定需要該步驟)。注意,Canonical 當前不支持這個版本的 KDE,所以最好使用開發環境而不是您的主機。

添加 PPA 庫之後,我安裝了 kdesdk、g++、cmake 和一些 kde-dev 包。操作如下:


清單 1. 構建 KDE 開發環境
				  sudo apt-get update  sudo apt-get install kdesdk  install cmake  sudo apt-get install g++  sudo apt-get install libphonon-dev libplasma-dev  

上述操作在我的機器上安裝了我需要的組件。如果您使用的是另一個發行版,您需要決定如何安裝這些包。

KDevelop 4 擁有一個不錯的模板,用於自動生成一個基本的 plasmoid。遺憾的是,在編寫時,KDevelop 4 仍舊處於 beta 版階段,沒有二進位版本可用於 Intrepid。因此,為了執行以下操作,您需要跟隨這些比較直觀的 指令,使用源代碼構建它。

什麼情況不應該使用 KDevelop
如果您不想使用 KDevelop,我向您推薦這篇優秀的 KDE 基礎技術文章 Getting Started,它解釋了一些基礎理論。如果您跟隨其中的步驟,您創建的項目將與我們使用 KDevelop 創建的項目非常相似。這樣,您可以跳到這個部分 修改示例。

運行 KDevelop 之後(如圖 1 所示),打開 Project,選擇 New From Template。對話框出現后,擴展 C++,然後 KDE 展開並選擇 Plasma Applet Template。下一步填充 Application name(我建議使用 dwPlasmoid)。然後單擊 Next 和 Finish。


圖 1. 創建項目

最終對話框要求您選擇一個 Installation Prefix 目錄(我推薦使用 $HOME/plasmoids)和一個構建類型(選擇 Release 或 Debug)。

這將創建一個項目。花一些時間查看文檔編寫得很好的 .cpp 和 .h 文件。另外,前面提到過的基礎技術文檔 進一步解釋了這些代碼正在進行的操作。

現在您已創建一個項目,準備好構建它了。要構建項目,打開 Project 並選擇 build(或者按下 F8 鍵)。該命令第一次將調用 configure,下次執行時,它將直接構建。

假設構建成功執行,從 Project 菜單選擇 Install。這個命令將安裝文件複製到此前選擇的目錄中。如果操作沒有出現問題,您就準備好進行測試了。

在運行新的 plasmoid 之前,您需要告知 KDE 它的存在。首先,您需要使 KDE 注意到這個 plasmoid 的安裝目錄($HOME/plasmoids)。為此,需要打開控制台以便設置 KDEDIRS 環境變數,然後運行 kbuildsyscocoa4 命令。打開一個終端並輸入清單 2 中的命令行:


清單 2. 使 KDE 注意到 plasmoid 的位置
				  export KDEDIRS=$KDEDIRS:$HOME/plasmoids  kbuildsyscocoa4  

現在 KDE 知道了 plasmoid 的位置,您可以嘗試運行它。plasmoidviewer 是一個方便的工具,可以用於進行測試。要獲取這個工具,輸入 plasmoidviewer dwplasmoid。您將會看到示例 plasmoid 顯示在一個窗口中(如圖 2 所示)。


圖 2. 基礎的 plasmoid

由於這是一個 plasmoid,您也可以將它嵌入到桌面中。但是,如果您試圖現在添加這個 plasmoid(使用桌面上的 Add widgets 菜單,您將在 plasmoid 的清單中看到 dwPlasmoid,但是如果您試圖添加它,它將不會有效!儘管您在運行 kbuildsyscocoa4 時正確設置了 KDEDIRS,但是在這個 Plasma 桌面啟動時,它沒有在環境中正確設置,所以它不能找到需要的所有文件。

要修復這個問題,可以退出當前運行的 Plasma 實例並從命令行重新啟動它(使用此前使用的那個命令行以便 KDEDIRS 仍舊正確設置,也可以在運行以下命令前重新設置它)。注意,這將優雅地退出 Plasma 並重新啟動它,因此確保您的操作不會被這種退出中斷(例如,在其他 plasmoid 中保存任何未保存的工作)。使用清單 3 中的命令退出當前 Plasma 實例。


清單 3. 退出當前 Plasma 實例
				  kquitapp plasma && kstart plasma   


[火星人 ] KDE 4 plasmoid 簡介已經有599次圍觀

http://coctec.com/docs/linux/show-post-68812.html