上一篇文章簡單分享一下我對 Gnome Shell 的粗淺觀點,在 Gnome Shell 中,另外一個更令人驚喜的技術特色是 – JavaScript.

Gnome Shell 大部分的程式碼都是基於 JavaScript 所開發,利用 Gjs (Javascript Bindings for GNOME) 與 GObject Introspection,你就可以直接使用 GTK+ 的相關函式庫,例如 Gnome Shell 大量使用的 Clutter 等。

當然,決定採用 JavaScript 當然會引起一些爭論,不過我個人是樂見其成。試用你可以利用 Looking Glass,直接在類似 Firefox JavaScript console 的介面下,直接用 JavaScript 控制 Window manager 的反應與作用,多方便!而且還可以直接用 JavaScript 寫 Window Manager 的 Extensions! 幾乎所有開發需求都可以用 JavaScript 完成。你若想玩玩,可以從這份開發文件開始玩,叫出 Looking Glass 的方法可參考 Cheat Sheet

其實,在桌面系統中使用 JavaScript 為基礎並非創舉,在 Gnome Shell 之前,Litl 所推出的 Easel Webbook. 便是利用 gjs 所開發,一些技術細節可以參考 cananian文章

Gnome Shell 用得 JavaScript bindings 是 gjs, 基於 Mozilla SpiderMonkey 引擎。另外 Gnome 社群還有一套 Seed 則是基於 Webkit 所開發,也支援 GOI (GObject Introspection) binding.