功能強悍的 Window Manager - IceWM!http://tetralet.luna.com.tw/index.php?op=ViewArticle&articleId=68

Tetralet | 11 二月, 2006 15:19

雖然 GNU/Linux 一直給人生人勿近的印象,但別就這樣以為在 GNU/Linux 上就沒有好用的圖形介面。事實上,如果不要抱持著太深的偏見,GNU/Linux 的桌面環境只要稍加調校就能夠讓人驚豔不已。

X Window System 簡介

X Window System 是在 Linux 上,類似 Microsoft Windows 的一個圖型介面環境,它可以簡稱為 X Window、X11 或 X,其實它的年紀可是比 Microsoft Windows 還大呢!

在 X Window System 的架構裡,X Client 是那些 在 X 上執行的應用程式,它會呼叫 Xlib,Xlib 使用 X Protocol 和 X Server 溝通。而 X Server 則是負責控制硬體,依 X Client 的請求而將結果顯示在使用者螢幕上,因此如果將 X Server 視為本機的顯示服務程式也不為過。而夾在中間的則是 Window Manager,Window Manager 管理包含視窗裝飾在內的許多 X Resources,比如說它會決定視窗的位置、管理視窗的操作及視窗的大小、決定視窗邊框的樣式及一些使用者和視窗的互動方式等等。

註一: 以上 Window Manager 的說明文字經過 Jserv 前輩的指正。感謝! 註二: Jserv 前輩表示他會寫一篇釐清 Window Manager 觀念的文章。敬請期待!
IceWM 簡介

IceWM 是一個非常輕巧快速且功能齊全的 Window Manager,在外觀及操作上極為類似 Motif、OS/2 及 Microsoft Windows。如果您受夠了肥大的 KDE 或是 GNOME,那麼 IceWM 可能會是您的最佳選擇。

安裝 IceWM

在 Debian GNU/Linux 裡安裝 IceWM 絕非難事,只要一行指令就搞定了:
apt-get install icewm
如果您同時在您的系統上安裝了多個 Window Manager,那麼請修改系統的設定,讓 X Window 啟動時呼叫 IceWM:
update-alternatives --config x-session-manager
update-alternatives --config x-window-manager
或者您也可以在您的 ~/.xinirc 中自行指定。例:
#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

# /etc/X11/xinit/xinitrc
#
# global xinitrc file, used by all X sessions started by xinit (startx)

xset +dpms
xset dpms 300 480 600

export LC_CTYPE=zh_TW.UTF-8
export LC_MESSAGES=zh_TW.UTF-8
export XMODIFIERS="@im=gcin"
export GTK_IM_MODULE=gcin
/usr/bin/gcin &

icewm-session

飛快!

IceWM 給人的第一印象就是:快!快!快!因為它的程式碼不大,並且對於系統資源 也要求不高,官方網站說只要 X 可以跑,IceWM 就可以跑,就算是是 386 機器也行。在此可以約略得知 IceWM 是如何的輕巧快速了。

相容性
因為 IceWM 本身預設上並不是專為其它 Desktop 環境所設計的,所以它的相容性極佳,不管是 KDE 或 GNOME 多可以在 IceWM 上執行無誤。IceWM 同時也支援了 Desklet(系統工具匣)、 透明底圖... 等等常見的功能,所以有不少人乾脆捨 KDE/GNOME,直接拿 IceWM 來當桌面使用了。

簡易的操作介面

由於 IceWM 在外觀及操作上刻意模仿 Motif、OS/2 及 Microsoft Windows,所以由 Microsoft Windows 跳槽過來的人們在操作 IceWM 時就免於重新適應之苦了。

比如說,Microsoft 上的【程式集列表】、【快速啟動列】、【系統工具列】、【小時鐘】等等,在 IceWM 上都可以看到。另外,像是在應用程式的標題列上點兩下是視窗放大,再點兩下則是還原,這些操作方式在 IceWM 裡都可以見到。

另外,修改您的 ~/.icewm/preferences 如下:

# Support win95 keyboard keys (Penguin/Meta/Win_L,R shows menu)
Win95Keys=1 # 0/1

# Auto hide task bar after delay
TaskBarAutoHide=1 # 0/1
那麼,在 IceWM 裡按下【Win】這個鍵時,下方的系統工具列就會跳出來,而等上一定的時間後它又會縮回去, 而這和 Microsoft Windows 的操作也是極為類似的。
虛擬桌面
在預設上,IceWM 會啟動 4 個虛擬桌面,這對於習慣同時開啟多個應用程式的人們可以說是難得的福音。以筆者為例,個人喜歡把日常事務擺在第一個桌面裡、root 的工作擺在第二個桌面,第三個桌面擺的則是遠端的 SSH、rdesktop、xvncviewer 之類的遠端操作環境,第四個桌面擺的則是一些在背景執行的程式,像是 XMMS 或是用來編譯程式的 chroot 環境等等。這樣的分門別類後將有助於增加工作效率。像是在切換至第二個桌面時,直覺上就知道這個桌面裡擺的全是以 root 權限執行的程式,當然會更加小心謹慎得操作,這樣多多少少能避免一些無心之過所導致的災難性後果。
IceWM 的虛擬桌面
您可以修改您的 ~/.icewm/preferences:
WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
來自訂虛擬桌面的名稱及數量。

另外,請同時修改您的 ~/.icewm/preferences 如下:(因為它和 XCIN 的快捷鍵重覆了)
KeySysWorkspace1="Super+F1"
KeySysWorkspace2="Super+F2"
KeySysWorkspace3="Super+F3"
KeySysWorkspace4="Super+F4"
之後,【Win】+【F1】就 會直接跳至第一個虛擬桌面,【Win】+【F2】就 會直接跳至第二個虛擬桌面... 同時,您還可以使用【Ctrl】+【Alt】+【←】和【Ctrl】+【Alt】+【→】直接切換至 上/下 一個虛擬桌面。或是按下【Ctrl】+【Alt】+【Shift】+【←】和【Ctrl】+【Alt】+【Shift】+【→】直接將應用程式移 至 上/下 一個虛擬桌面。或是按下【Ctrl】+【Alt】+【Shift】+【1】直接將應用程式移 至第一個虛擬桌面。在操作 IceWM 時這些快捷鍵將會是很方便的小技巧。
將視窗『釘』起來
在操作 GIMP 時,會不會覺得它的工具視窗常常被正在操作中的前景視窗蓋住實在不怎麼好用?在 IceWM 裡,您可以將視窗『釘』在別的 視窗之上,它就永遠不會被別的視窗蓋住了:
把 GIMP『釘』在其它視窗之上
其它 Linux 桌面的特性

除了虛擬桌面之外,一些 Linux 桌面常見的特性,像是:

  • 將視窗捲起(【Alt】+【F12】)

  • 隱藏視窗(【Alt】+【Shift】+【F12】)

  • 全螢幕顯示(【Alt】+【F11】), 當應用程式不支援全螢幕顯示時這可是超好用的。

  • 將所有視窗縮至工具列(【Alt】+【Shift】+【F9】)

  • 顯示桌面(【Alt】+【Ctrl】+【d】)

等等,都可以在 IceWM 裡找到。而這些快捷鍵都可以在 ~/.icewm/preferences 中加以修改:

KeyWinRollup="Alt+F12"
KeyWinHide="Alt+Shift+F12"
KeyWinFullscreen="Alt+F11"
KeySysMinimizeAll="Alt+Shift+F9"
KeySysShowDesktop="Alt+Ctrl+d"
快捷鍵

IceWM 還有一個讓人津津樂道的優點,就是它使用了超多的快速鍵組合,幾乎 可以取代滑鼠的所有動作,比如說:

  • 【Alt】+【F4】= 關閉視窗

  • 【Alt】+【F6】= 下一個視窗

  • 【Alt】+【Shift】+【F6】= 上一個視窗

  • 【Alt】+【F9】= 縮至最小

  • 【Alt】+【F10】= 放至最大

  • 【Alt】+【空白鍵】= 呼叫視窗選單

  • 【Alt】+【Tab】= 顯示視窗列表並切換至下一個視窗

  • 【Alt】+【Shift】+【Tab】= 顯示視窗列表並切換至上一個視窗

  • 【Ctrl】+【Alt】+【Del】= 系統關機/登出/鎖定/重新啟動 IceWM 對話視窗

  • 【Ctrl】+【Alt】+【Esc】= 視窗列表

  • 【Ctrl】+【Alt】+【空白鍵】= 快速啟動。可以用來直接執行應用程式。

對於一些鍵盤快手而言,IceWM 提供的這些快捷鍵實在是非常方便!當然了,這些快捷鍵全都可以自訂,您可以在 ~/.icewm/preferences 依自己的喜好來任意指定這些快捷鍵組合。

自訂呼叫應用程式的快捷鍵

除了以上 IceWM 所內建的快捷鍵之外,您還可以在 ~/.icewm/keys 中自行指定呼叫應用程式的快捷鍵。比如說:

key "Super+t" x-terminal-emulator

那麼當您按下【Win】+【t】時, 系統就會呼叫 x-terminal-emulator 這個應用程式了。

當然了,我們可以稍加變化:(請安裝 aumix 套件)

key "Super+Up" aumix -w +5
key "Super+Down" aumix -w -5
key "Super+Right" aumix -w +1
key "Super+Left" aumix -w -1

那麼我們就可以用【Win】+【↑】 【↓】【←】【→】來直接控制音量大小了。

類似的手法:

key "Super+Prior" xmms -r
key "Super+Next" xmms -f
key "Super+Insert" xmms -t
key "Super+Delete" xmms -q
我們就可以用【Win】+【PageUp】 【PageDown】來控制 XMMS 播放上一首、下一首,用【Win】+【Insert】來讓 XMMS 暫停/開始 播放,或是用【Win】+【Delete】來 關閉 XMMS。

另外,我們還可以使用:(請安裝 xmacro 套件)

key "Menu" /bin/sh -c "echo -e "ButtonPress 2nButtonRelease 2n" | xmacroplay "$DISPLAY""
來用【Menu】這個鍵來模擬按下滑鼠中鍵貼上的動作。

其實只要花點心思,IceWM 的快捷鍵是可以千變萬化的!

系統工具列上的小圖示

IceWM 在系統工具列上預設就有【現 在時間】、【即時 CPU 負載】、【網路即時流量】、【監看 POP、IMAP 的 E-mail】等 小圖示,所以您只要一按下【Win】這個鍵,您就可以直接由系統工具列得知這些即時資訊:
IceWM 的系統工具列
當然了,如果您不喜歡這些圖示,您可以由 ~/.icewm/preferences 把這些功能關閉。如上圖中,就沒有【監看 POP、IMAP 的 E-mail】這個圖示。
在 X Window 上眾多的 Window Manager 中,還找不到幾個有這些貼心的功能的呢!
快速啟動列:
和 Microsoft Windows 類似的,IceWM 也有快速啟動列:
IceWM 的快速啟動列
方法是修改 ~/.icewm/toolbar 如下:
prog Mozilla mozilla /bin/sh -c 'LC_ALL=zh_TW.UTF-8 mozilla'
prog XTerm xterm crxvt-big5
prog Konqueror kde konqueror
這個檔案的格式為:
#
顯 示名稱
圖 示
指 令
prog Mozilla mozilla /bin/sh -c 'LC_ALL=zh_TW.UTF-8 mozilla'
修改後按下【Ctrl】+【Alt】+【Del】重新啟動 IceWM 即可生效。
設定按下【Ctrl】+【Alt】+【Del】時所執行的命令
在 IceWM 裡,按下【Ctrl】+【Alt】+【Del】後,會出現以下視 窗:
在 IceWM 裡按下【Ctrl】+【Alt】+【Del】時所出現的畫面
您必須在 ~/.icewm/preferences 中加以修改:
# Command to shutdown the system
ShutdownCommand="sudo /sbin/shutdown -h now"

# Command to reboot the system
RebootCommand="sudo /sbin/shutdown -r now"

# Command to lock display/screensaver
LockCommand="xlock"
並安裝設定好 sudo 及 xlockmore/xlockmore-gl 套件,這些按鈕才能有作用。
自訂佈景主題
IceWM 也可以讓您自訂佈景主題,您可以把您的佈景主題放到 ~/.icewm/themes 下,然後修改 ~/.icewm/preferences:
Theme=" icedesert/default.theme"
其中的 icedesert 為您的佈景主題目錄。

在 IceWM 裡,您可以修改您的滑鼠遊標圖示、視窗標題、視窗按鈕、邊框、桌面背景... 等等。請參考 IceWM Themes Howto page 來取得更多設定佈景主題的技巧。
易於設定:
IceWM 的設定檔十分簡易,大多只要看一下設定檔上的簡短說明就會設定了,所以雖然有不少的 IceWM 的圖形介面設定程式,但多數人還是選擇直接修改它的設定檔。像 IceWM 的官方網頁上面就寫:
如果您想尋找什麼選項的話,您可以直接查看 ~/.icewm/preferences。
它經過了精心的配置,您應該輕易得就可以找到您所尋找的東西-
比如說,您想改變一些 quickswitch 選項,只要試著在偏好檔尋找 "QuickSwitch" 即可。
IceWM 功能強大卻還能保持輕巧快速,加上又如此易於設定,實在是不可多得的 Window Manager!推薦大家能試用看看!

Debian_Desktop :: 迴響 (11) :: 靜態連結網址 :: 引用 (0)

迴響 Comment Icon

fluxboxer | 12/02/2006, 10:42

我想 fluxbox 應該更省資源

%CPU %MEM VSZ RSS
0.0 1.2 9060 6296

1.9M /usr/local/fluxbox

Comment Icon IceWM 好用

alienwoo | 13/02/2006, 09:26

以前在 moto 看了你的文章後也開始用 IceWM, 真的相當好用. 因為裝完後不會設定什麼就可以在 title bar 直接 click 就放大/還原. 而且功能鍵很多. 很多事用鍵盤就可以搞定了. 不過看網頁就一定要用 mouse 才會快. 在我CPU 1.8G+ memory 256M的電腦上跑很順. 但不知是安裝 ttf-arphic-uming 字型的關係, 開 mlterm 或 gvim 總是比以前慢了點. 而且只要一跑 Firefox 跟 Thunderbird 後整個系統速度就會被拖下來.

Comment Icon 請問

kenshinn | 15/02/2006, 09:12

我的locale是zh_TW.UTF-8
icewm選單是英文的
請問要如何做才能向上面的圖一樣選單是中文的

Comment Icon 因為 PO 檔的位置錯誤了

Tetralet | 15/02/2006, 13:23

Re: kenshinn

請試試以下指令:

cd /usr/share/locale/zh_TW/LC_MESSAGES
ln -s ../../zh_TW.Big5/LC_MESSAGES/icewm.mo

然後再重新啟動 IceWM 即可。

早在很久以前就想對這個問題做 reportbug 了,
但說的人多,卻沒人動手...

Comment Icon Re: fluxboxer

Tetralet | 07/03/2006, 05:25

fluxbox 是否比 IceWM 更省資源個人並不是很清楚,
但以 Window Manager 而言,
1.9M 算是肥滋滋的了...

Comment Icon

once | 29/10/2006, 07:50

時代已經進入了3D,請問
icewm如何加入compiz或beryl?

Comment Icon 字型好醜...

dddan | 08/12/2006, 16:35

不知要如何調整, 才可讓工作列的字型好看一點呢?

Comment Icon 關於改字型...

阿豬 | 04/01/2007, 10:39

這個小弟可以代答,就我印象中,Debian的icewm因為編譯選項的關係,後來改吃xft/fontconfig字型
要修改icewm的字型可以寫在~/.icewm/preference或theme資料夾的default.theme裡
小弟通常是寫在後者
舉例來說,我的佈景主題是使用~/.icewm/themes/IceCrack2
那就編輯~/.icewm/themes/IceCrack2/default.theme
修改或加入以下的設定,把字型改成你要的類型和大小即可:

# Title bar font
TitleFontNameXft="文鼎PL新宋:size=15:bold"

# Menu font
MenuFontNameXft="文鼎PL新宋:size=15"

# Status font
StatusFontNameXft="文鼎PL新宋:size=15"

# Quick switch font
QuickSwitchFontNameXft="文鼎PL新宋:size=15"

# Normal button font
NormalButtonFontNameXft="文鼎PL新宋:size=15"

# Active button font
ActiveButtonFontNameXft="文鼎PL新宋:size=15"

# Normal taskbar font
NormalTaskBarFontNameXft="文鼎PL新宋:size=15"

# Active taskbar font
ActiveTaskBarFontNameXft="文鼎PL新宋:size=15"

# Minimized window font
MinimizedWindowFontNameXft="文鼎PL新宋:size=15"

# List box font
ListBoxFontNameXft="文鼎PL新宋:size=15"

# Tooltip font
ToolTipFontNameXft="文鼎PL新宋:size=15"

# Clock font
ClockFontNameXft="文鼎PL新宋:size=15"

# APM font
ApmFontNameXft="文鼎PL新宋:size=15"

# Label font
LabelFontNameXft="Firefly New Sung:size=14"

Comment Icon 修改圖示大小的設定

脫線 | 11/04/2007, 09:59

修改圖示大小的設定。(PS:需要新版的icewm)

修改preference
# MenuIconSize specifies size of icons in [menu]
MenuIconSize=20 # 原始值16 [8-128]

# SmallIconSize is used in [taskbar]
SmallIconSize=20 # 原始值16[8-128]

# LargeIconSize is used in [quickswitch]
LargeIconSize=32 # 原始值32[8-128]