以 icewm 認識視窗管理員


視窗管理員做些什麼事?

我們平常在使用終端機視窗, xpaint 視窗, 或字典視窗, 其實背後還有一支重要的程序 (process) 在替我們服務, 幫我們安排視窗的位置, 把滑鼠與鍵盤的訊息分派給適當的視窗, 並保管最小化的視窗等等。 做這些打雜工作, 但自己本身並未以一個視窗的方式出現的這支程式做視窗管理員 (window manager)。 解釋半天, 不如讓我們感受一下沒有視窗管理員的不便。 請登出, 選擇 "工作項目 (session)" 下的 "fail safe", 再重新登入。 這時畫面出現一個孤伶伶的終端機視窗, 連外框也沒有。 我們可以在終端機內下 "xpaint &" 又下 "pydict &" 開啟一個小畫家視窗及一個字典視窗; 但是所有視窗都沒有外框, 也因而無法移動, 改變大小, 甚至連改變 keyboard focus 都不行。 X Window 系統下比較常用的視窗管理員, 有:

  1. wmaker: 提供類似 NeXTSTEP 的介面
  2. sawmill: 方便使用者盡其所能地靈活調整視窗管理策略
  3. twm: 原始, 陽春的簡單管理員
  4. fvwm2: 在twm架構上多所改良的管理員。
  5. enlightment: 極盡花俏之能事, 強調聲光效果的藝術型視窗管理員。 耗費很多系統資源。
  6. icewm: 輕薄短小, 但具備大部份重要功能的摩登管理員。

視窗管理員巡禮

接著下 twm & 啟動陽春的 twm。 記下終端機視窗上出現的兩個數字, 例如 [3] 925。 等一下要更換視窗管理員之前, 要先下命令: kill 935 或 kill %3 把目前的視窗管理員 (也就是twm) 給作掉, 才能叫出另一個視窗管理員。 (作業: 試試看, 如果不先 kill 目前的管理員, 而直接下 fvwm2 & 或 icewm & 會出現什麼錯誤訊息?) 以下各段就不再贅述更換視窗管理員的過程。

twm: 按滑鼠左鍵會出現選單, 但不能鬆手, 否則選單立刻消失。 把滑鼠拖到 Show Iconmgr 再放開, 左上角就出現一個 Icon manager (小圖像管理員) 裏面每個 icon 就代表桌面上的一個視窗。 點一下, 桌上的視窗就消失, 再點一下又出現。 如果你同時開太多視窗, 畫面太亂, 有這個 icon manager 就很方便了。

fvwm2: 桌面右下角有一個用虛線切成 2*2 或3*3 小方塊的區域。 每個小方塊叫做一個 virtual desktop (虛擬桌面), 你可以想像可用的桌面空間彷彿有整個螢幕的 4 倍 (或 9 倍) 大, 而你只看到其中一小塊而已。 切到另一個 virtual desktop (在另一個小方塊上點一下, 或把滑鼠移到螢幕邊緣逗留一下) 然後按左鍵出現主選單, 選 programs 的 graphics 的 paint 叫出一個 xpaint 視窗。 你看! xpaint 和原來的終端機這兩個視窗被分別放到兩個不同的虛擬桌面上了。

icewm: 類似於 twm 中的 icon manager, icewm 在螢幕下方的工具列上也為每個視窗設置一個 icon, 點一下就可打開或縮小該視窗。 (記得嗎? 縮小視窗只是將它收藏起來; 如果要終止執行 / 消減視窗, 必須按視窗右上角的 x) 它也提供類似 fvwm2 的 virtual desktop, 在工具列上的 1,2,3,4 點一下就可以切換。 比較有趣的是 icewm 提供變換 theme (外觀主題) 的功能: 從左下角的企鵝主選單裏選 "主題", 然後從子選單裏面隨便選一項來試試看。

重要心得: 盡管不同的視窗管理員有不同的外觀, 選單內容, 甚至滑鼠操作方式, 但是有些觀念與術語 (例如管理縮小後的視窗, 及 virtual desktop 等) 則是不變的。 學電腦的時候, 把多一點心思放在 觀念和專有名詞 上, 而不要太在意選單的位置與滑鼠的操作方式 (試按一下就知道, 幹嘛要記?) 將來面對陌生的環境才比較容易適應。 用 Honda civic 學開車的人, 遇到 Nissan Sentra 一樣會開; 同樣地, 我們用 icewm 學電腦, 將來遇到 GNOME, KDE, 甚至是 MS Windows 也沒有害怕的道理

設定符合自己口味的 icewm

從中文終端機執行 icepref & 做了一些修改後, 按 Restart 鈕, 試用看看新效果如何. 如果滿意, 再按 Save 鈕, 以後每次進入 icewm 就都使用你修改過的特效. 注意你家裡多出了一個 .icewm 的目錄 (要用 ls -a 才看得到), 裡面就是新的設定檔.

徒手修改 icewm 的設定

有些設定用 icepref 無法改變, 這時候就要用徒手的方式來修改. 先確定你家裡有 .icewm 目錄, 且裡面有 preferences, menu, toolbar 等三個檔案. 如果沒有可以從 /usr/X11R6/lib/X11/icewm/ 底下拷貝過來.

用 nano 或 gedit 打開 toolbar 檔, 在

menu "常用程式" folder {
    prog "螢幕鎖定" xlock xlock -mode flag
這兩列之間加上這一段:
    menu "自己收集的程式" folder {
        prog "西洋棋"   xboard          xboard
        prog "彈珠台"   xboing          xboing
        prog "xgammon"  xgammon         xgammon
        prog "混圖"     xmorph          xmorph
        prog "飛行模擬" xpilot          xpilot
        prog "紙牌遊戲" xpat2           xpat2
        prog "益智遊戲" xpuzzles        xpuzzles
        prog "桌面動畫" xscreensaver    xscreensaver
        prog "方塊"     xtrojka         xtrojka
    }

然後從主選單當中選「登出」右邊的「重新啟動 icewm」 (目的是要通知 icewm 讀取修改過後的工具列) 以後要啟動自己常用的程式就不必下命令了!

(待續...)