Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom Bar]
[Photo of the Author]
Geoffrey W. Corey
作者簡介
電腦是我的興趣與職業, 不過我生活的重心還是在我的家庭, 我是一個四歲小男孩 Joshua 跟十個月大的雙胞胎 Aaron 與 Ryan 的父親, 也為身為一個父親而感到十分的驕傲, 我還有一個最棒的老婆 Jennifer, 而且她也全力支持我走電腦業這一行。 目前我是在一家外商公司 ClientLink 工作, 專長在非常大型的資料庫系統以及物件導向分析、設計。

與作者聯繫


內容目錄
簡介
安裝
編譯原始碼
設定 Enlightenment
Enlightenment 的未來

Enlightenment

[Ilustration]

內容摘要: Enlightenment 是 Linux 底下的視窗管理程式 (window manager), 在設定上具有高度的自主性。 本文件討論了 Enlightenment 的特點、 安裝、 及設定方法; 在目前, Enlightenment 應該被視為是一個仍然在發展中的程式, 因此, 本文假定讀者應該要有在 Linux 上, 發展及編譯程式的良好知識。




簡介

Enlightenment 是一個很花俏的視窗管理員, Enlightenment 的作者們提供了一個高度可自行設定的環境, 允許使用者設定視窗外觀的每個部份, Enlightenment 在電腦運算之餘, 增添了許多樂趣, 我們再也不用面對那些四四方方, 到處看起來都一樣的死板視窗囉! 您只要載入預設的 "主題" (theme), 就足以使親朋好友們對您的桌面妒羨不已, 要讓大家嚇一跳的話, 就去抓 Aliens Neuromancer 來用吧; 可供選用的主題, 大約有二十來個, 這只是裡面的兩個而已, 您可以在 Enlightenment 的網站 http://www.enlightenment.org/themes 抓到這些人家做好的主題。

請特別注意, 您可能需要有夠強的中央處理器、 以及顯示卡, 才能夠跑得很順, 我目前在家裡, 是用一台 Pentium 90 的機器, 加上 2MB 的 Vision 864 S3 顯示卡, 來執行 Enlightenment, 我覺得這是玩 Enlightenment 最基本的配備, 不過也是有人弄出給較低解析度和頻寬專用的主題, 例如: Executive theme

底下是一張 Enlightenment 預設主題的縮圖:
在左上方的是桌面按鈕 (desktop buttons), 按下這些個按鈕就可以叫出 xterm、 netscape、 gimp... 等等應用程式, 假如您按了最下面這兩個按鈕, 會有一個 "抽屜" 向右展開, 而且裡面會有幾個縮圖, 讓您選取來做為桌面的背景圖。

在左下方的是虛擬桌面, 按下這些螢幕, 您就可以跳到不同的桌面去, 此外, 虛擬桌面上的圖形, 跟您真正桌面上的視窗擺置是一樣的, 您可以去拖放這些縮圖來改變視窗擺放的位置。

右上方是圖示盒 (icon boxicon box), 當您把某個視窗最小化以後, 就會多一個圖示擺到這個圖示盒裡面, 假如圖示太多的時候, 您可以按在圖示盒上下的捲動鈕來瀏覽圖示; 想要把已經最小化的視窗還原的話, 只要把圖示從圖示盒裡面, 拖放到桌面上就可以了。

在螢幕的中間有一個即現功能表 (popup menu), 您只要在桌面上, 按一下滑鼠的右、 中、 或左鍵, 這個功能表就會跑出來。

    預設的主題
Enlightenment Screenshot
 
Obsidian 主題 
Obsidian Theme
Enlightenment 裡面還附帶了很多有趣的東西, 您可以去 Enlightenment 的網站 看看, 並且把 EtermEplus 找出來。 Eterm 為您帶來一個超炫麗版本的 rxvt, 而 Eplus 裡面還有不少好東西! Eplus 包含了一個 CD 撥放機, 電子郵件通知程式, 系統效能監督程式, 以及一堆用來讓您的工作夥伴眼花繚亂、 沒有意義的燈號! 您也可以把 Eplus 的外觀, 設定成跟 Enlightenment 相似。 此外還有一些遵循 Enlightenment 的精神, 所創造出來的應用程式, 其中一個您一定要去下載來玩的是 eMusic, eMusic 是一個具有爵士風格的 MP3、 MOD、 以及 CD 撥放程式, 遵循著真正 Enlightenment 的風格, eMusic 的外觀一樣可以自行設定。
 
旁邊這張是 Obsidian 主題的縮圖, 看起來是不是跟預設的主題長得完全不一樣呢? 最底下這一行是虛擬桌面, 再上面一行裡, 包含了選單圖示 (menu icons)、 圖示盒、 以及 Eplus

玩電腦的創造性並未逝去! 感謝那些為 Linux 帶來勃勃生機的人們!

 

安裝

假如您對 Makefile, 以及程式庫路徑懂得不多的話, 安裝 Enlightenment 可能需要些技巧, 此外還要再提醒您一下, Enlightenment 是個尚在發展中的程式。 我曾經在 Debian 1.3.1 和 RedHat 5.0 底下, 成功的安裝過 Enlightenment, 在 Debian 底下安裝比較簡單, 因為 Debian CD 裡面, 已經包含了 jpeg、 png、 tiff 以及 z 等程式庫, 裝 Enlightenment 需要 Imlib, 而 Imlib 又會用到這些程式庫。 因為 RedHat 的 C 程式庫是新版的, 因此在 RedHat 底下安裝 Enlightenment 比較有點挑戰性, 所以我這邊要談的是在 RedHat 底下的安裝過程。 在 Enlightenment 的網站底下還有更詳細的安裝步驟, 在編譯及安裝 Enlightenment 之前, 請先遵循網頁裡面的指示, 以確定所需的程式庫, 已經通通在您的系統裡安裝妥當了。 接下來, 我將會簡短的解釋我是如何安裝 Enlightenment, 並且討論一些遭遇到的問題之解決方法。

首先您必須去 http://www.labs.redhat.com/imlib 抓最新的 Imlib 程式庫, 這些程式庫都有 RPM 檔可以抓來用; 大部份的問題之所以會發生, 是因為您雖然安裝了最新的程式庫, 但是卻還留有舊版的程式庫在您的系統上, 因此要檢查一下 /usr/lib 底下, 然後把舊版的 z、tiff、jpeg、png 以及 Imlib 程式庫殺掉, 只保留最新版的安裝在系統上就好。

現在已經有 Enlightenment 的 RPM 檔可以用了, 您可以先抓 RPM 檔回來試裝看看是否能正常運做; 啟動 Enlightenment 的方法, 是在您 home 底下的 .xinitrc 檔裡面加入底下這一行:

exec /usr/local/enlightenment/bin/enlightenment

存檔後, 鍵入下面的指令來進入 X 吧:

startx -- -bpp 16

注意: Enlightenment 用到很多高彩的圖形, 所以最好用上最高的解析度, 與最多的顏色數來執行, 最起碼該有 16-bit 顏色才是。

好囉, 假如 Enlightenment 跑不起來, 您應該可以從啟動 X windows 時, 所顯示的訊息得知失敗的原因, 然後找到問題自行解決, 不行的話, 就只好自行由原始碼編譯可執行檔來用了。

編譯原始碼

編譯原始碼 把抓回來的原始碼檔解開以後, 您只要看一下 INSTALL 這個檔案, 就知道如何編譯了, 簡單的說: 1) xmkmf -a  2) make install.

假如在連結 (linking) 的過程裡, 發生找不到 png、 jpeg、 tiff 的錯誤, 就改一下 Makefile, 找到 LOCAL_LIBRARIES 這一行, 確定這一行包含了這些程式庫:

LOCAL_LIBRARIES = -lImlib -ltiff -lgif -ljpeg -lpng -lz

再作一次 'make install' 應該就可以正常運作了, 還是不行的話, 就檢查一下是不是沒把 /usr/lib 底下重複的程式庫清乾淨, 而這些舊版程式庫會讓 Makefile 用到。

設定 Enlightenment

加入一個新的主題

好了, 您從 Enlightenment.org 下載了一個主題檔... 然後呢? 呵呵, 把檔案複製到 /usr/local/enlightenment/themes 底下就行囉。 想要啟動新的主題的話, 就改一下您的 .xinitrc, 在執行 enlightenment 的時候, 加個參數就行了; 比如說, 假如您抓回來的是 "Neuromancer" 這個主題的話, 就在您的 .xinitrc 裡面加上 "-theme" 的參數, 以及主題的檔名 (Neuromancer) 就行了, 所以您的 .xinitrc 裡面, 會有下面這一行指令,用來以 Neuromancer 主題啟動 enlightenment:

exec /usr/local/enlightenment/bin/enlightenment -theme Neuromancer

接下來只要用 16 bit 顏色啟動 X 就好了:

startx -- -bpp 16

其實 "-theme" 參數叫 enlightenment 做的事情, 就是去 /usr/local/enlightenment/themes 底下找一個名為 "Neuromancer" 的檔案或目錄, 然後依其中的設定來啟動; 如您所見, 每一個主題都非常的與眾不同, 並且允許主題的作者發揮高度的創造力, 然而, 甚麼是主題呢? 呵呵, 您抓下來的主題檔其實是一個壓縮過的 tar 檔案 (.tgz), 只是通常把延伸檔名拿掉了, 不過您還是可以把它解壓縮並且 untar 開來; 接下來我們將會這麼做, 並且試著在主題裡面, 設定一些選單以及按鈕。

設定主題

已經有一個用 TCL/TK 寫的程式 Econfig, 可以用來編輯某個主題的設定檔, 不過我們會深入一點, 用古老但是好用的 'vi' 來設定; 所有的主題都放在 /usr/local/enlighenment/themes 底下, 而且其實都是 tarballs (.tgz), 您可以用下列指令解壓縮, 並且解開預設主題 (DEFAULT theme):

cd /usr/local/enlightenment/themes
mv DEFAULT DEFAULT.tgz
tar zxvf DEFAULT
cd DEFAULT
ls
-rw-r--r--   1 1000     bin          2929 Jul 25  1997 MAIN
-rw-r--r--   1 1000     bin          7015 Jul 31  1997 buttons
-rw-r--r--   1 1000     bin           952 Aug 29  1997 control
-rw-r--r--   1 1000     bin           843 Aug 12  1997 cursors
-rw-r--r--   1 1000     bin          2885 Jul 29  1997 desktops
-rw-r--r--   1 1000     bin           510 Nov 18 17:12 exec
-rw-r--r--   1 1000     bin           567 Jul 25  1997 fx
-rw-r--r--   1 1000     bin          3239 Jul 25  1997 icons
-rw-r--r--   1 1000     bin          1074 Jul 25  1997 infobox
-rw-r--r--   1 1000     bin          6392 Jul 30  1997 keys
-rw-r--r--   1 1000     bin         41382 Aug  6  1997 menus
drwxr-xr-x   4 1000     bin          2048 Jul 26  1997 pix
-rw-r--r--   1 1000     bin           452 Jul 25  1997 root
-rw-r--r--   1 1000     bin          1658 Aug  8  1997 status
-rw-r--r--   1 1000     bin           530 Jul 25  1997 text
-rw-r--r--   1 1000     bin         13222 Aug 12  1997 windowstyles

檔案 MAIN 是 enlightenment 讀取的第一個檔案, 假如您看看這個檔案的內容, 您就會發現它裡面, 呼叫了其它檔案來設定 Enlightenment 的各個部份, 大部份的主題, 都遵循了預設主題裡對這些檔案的命名原則。
 
 
檔名 描述
MAIN 在 enlightenment 啟動的時候, 所載入的檔案。 這個檔案會包含其他的檔案, 用來設定種種格式的視窗、 選單、 按鈕、 桌面、 游標、 圖示... 等。
buttons 定義了在桌面上那些按鈕的位置、 外觀、 以及行為, 以預設主題而言, 這就是桌面左上方的那一排按鈕。
control 定義視窗管理程式的行為, 譬如在某個視窗被滑鼠游標點選 (focus) 一段時間後, 是不是要自動把它帶到最上層; 自己去看一看內容並且編輯這個檔案吧, 它裡面對每個功能都有很好的註解說明。
cursors 定義了滑鼠游標的形狀。
desktops 定義虛擬桌面 (virtual desktops) 的外觀與位置, 以預設主題而言, 這就是桌面左下方的那些圖形。
exec 定義了在啟動 enlightenment 的時候, 所要自動執行的程式。
fx 定義了 enlightenment 所能提供的特效, 這是一個很好玩的檔案, 自己去把它改一改試試看, 並且把 "drop-shadows" 從 "off" 改成 "on"。
icons 定義圖示盒, 用來放置被圖示化了的程式; 也就是說, 當您把一個視窗最小化以後, 它會變成一個圖示, 然後顯示在這個圖示盒裡面, 以預設主題而言, 這個圖示盒就位在桌面的右上方。
infobox 定義了啟動 enlightenment 時的訊息盒 (information box), 這就是您剛啟動 enlightenment 的時候, 所看到的那個 logo。
keys 定義在 enlightenment 裡面的熱鍵 (hot-keys), 您想要的話, 可以在這裡設定, 讓 enlightenment 在您按一下 F5 鍵的時候, 就自動去啟動 Gimp。
menus 定義選單的內容還有行為, 包括您在桌面上按滑鼠左鍵、 中鍵、 右鍵時, 會彈跳出來的選單, 等一下我們會試著來設定選單。
pix 用來放所有圖形檔案的目錄。
root 定義背景圖形。
status 這裡定義了剛開始啟動 enlightenment 的時候會彈跳出來, 告訴您正在載入設定的那個電視螢幕。
text 定義 enlightenment 所用的字型。
windowstyles 定義 X 底下所有視窗的邊框、按鈕及行為。
 

自定選單

好囉, 您應該已經知道, 若要設定選單的話, 只要修改 'menus' 這個檔案就行了, 您可能只想修改一下, 某個原有選項的文字跟執行的動作就好了, 譬如, 很多原有的選項在我的機器上都沒有對應的程式, 所以我可以把這些位置 "廢物回收", 只要改 "text" 跟 "action exec" 這兩行, 把它設成其他的東西就好了。 不過, 您終究會想要在選單裡面加入新的選項, 這個就比較麻煩, 您可能需要先去準備好一台計算機喔!

注意: 在您更改任何設定檔之前,要記得先備份!!!!

要新增一個選項的話, 可以先複製一份 "begin menuitem" 到第一個 "end" 之間的文字, 然後加到選項列表的最後面去 (還在 "begin menu" 跟 "end" 裡面)。 例如, 開啟 menus 這個檔案, 然後尋找 "Random" 這個字串, 這一段就定義了, 您在桌面上按滑鼠右鍵時, 會看到的 "Random Garbage" 選單, 接著尋找 "Xsnow", 您會跑到 "Random Garbage" 選單的最後一項去, 複製 "begin menuitem" 到第一個 "end" (剛好在 "action exec xsnow" 的後面) 之間的東西, 貼一份到最後一個 "end" 的前面, 再來把 "Xsnow" 改成 "Fonts", 把 "action exec xsnow" 改成 "action exec xfontsel"。 接下來要修改 "location", 這就比較需要技巧了, 您會發現 Xsnow 的 location 是 0 312、 size 是 253 24, location 第一個數字不用改, 第二個數字是 312, 假若把 312 除以 24 的話, 會得到 13, 這是因為 Xsnow 是選單的第 14 個選項 (從 0 開始算); 因此對於新增的 "Fonts" 選單而言, 它的位置是 312 再加上 24, 所以要把 312 改成 336, 然後, 也要把最前面這個選單裡面的選項數目 "items", 從 14 改成 15 (在文字 "Random Garbage" 上面兩行), 接下來, 還要把選單的大小增加 24, 把 "dimensions 253 336" 改成 "dimensions 253 360"。

另外還有一個途徑, 就是執行 Econfig, 然後就可以用圖形介面來設定。  我目前還沒試過 Econfig, 不過, 它應該會讓整個設定工作做起來更容易才是。

原本的 menus 摘錄:

------- omitted text -------
begin menu
  name root3
  type custom
  dimensions 253 336
  popupdist 126 12
  items 14
  begin menuitem
    text Random Garbage
------- omitted text -------
 begin menuitem
    text Xsnow
    type element
    location 0 312
    size 253 24
    text_location 5 5
    text_size 243 14
    image unselected pix/menu_plain_1.ppm  shapemode on 255 0 255
    image selected   pix/menu_plain_2.ppm  shapemode on 255 0 255
    action exec xsnow
  end
end
-------- omitted text -------

修改過的 menus 摘錄:

-------- omitted text -------
begin menu
  name root3
  type custom
  dimensions 253 360
  popupdist 126 12
  items 15
  begin menuitem
    text Random Garbage
-------- omitted text -------
  begin menuitem
    text Xsnow
    type element
    location 0 312
    size 253 24
    text_location 5 5
    text_size 243 14
    image unselected pix/menu_plain_1.ppm  shapemode on 255 0 255
    image selected   pix/menu_plain_2.ppm  shapemode on 255 0 255
    action exec xsnow
  end
  begin menuitem
    text Fonts
    type element
    location 0 312
    size 253 24
    text_location 5 5
    text_size 243 14
    image unselected pix/menu_plain_1.ppm  shapemode on 255 0 255
    image selected   pix/menu_plain_2.ppm  shapemode on 255 0 255
    action exec xfontsel
  end
end
------- omitted text ------
 

好囉, 要看看您改出來的成果的話, 按一下滑鼠左鍵而且點選 'Exit Options' 裡面的 'Restart',Enlightenment 將會再讀一遍設定檔, 並且重新啟動, 在重新啟動的過程裡, 您目前正在執行的所有程式, 都會被保留住, 所以全部的視窗, 都會維持原狀不會被關掉, 一等到 Enlightenment 重新啟動完畢, 在桌面上按一下滑鼠右鍵, 您應該就可以看到多了一個 "Fonts" 在選單的最後面了, 自己試試看吧!

用類似的方法, 也可以更改按鈕的設定, 自己去試一試, 並且體會一下設定檔的變化吧。 不過, 記得在作任何改變之前都要先作個備份喔!

Enlightenment 的未來

Enlightenment 在未來將會成為一個完全配合 GNOME 規格的視窗管理程式。 Enlightenment 的作者, Mandrake 跟 Rasterman 目前正在重新改寫 Enlightenment 成為 DR0.14 版, 因為身為 Red Hat Labs 裡面 GNOME 計畫的一員, Rasterman 正努力地在 Enlightenment 裡加入配合 GNOME 的功能。 目前, 已有一個 Enlightenment 0.14 示範程式, 被釋放出來, 專供程式開發者測試, 但其本身並不具有設定功能。 除非有甚麼意外, 相信在大家看到這篇文章的時候, DR 0.14 應該已經出來囉。

本文由 鄭原忠 所翻譯

主網站由 Miguel Angel Sepulveda 維護
© Geoffrey W. Corey 1998
LinuxFocus 1998