簡述
FVWM95 的全名是 F? Virtual Window Manager,是專門為 X11 所設計,外形和用法都類
似 Windows 95 的一個 window manager。□作者的說法,那個 F 所代表的意思是什麽,
他自己也忘記了。而 FVWM95 是由 FVWM 所衍生出來的,FVWM 又是從 twm 衍生出來的。
fvwm95 提供了 Virtual Desktop 和 Virtual screen,因此如果你的記憶體夠大的話,
要多大的桌面就有多大的桌面,同時它也和95一樣,可以經由 keyboard 來控制 window,
包括window的移動和基本操作等等,keyboard都以可勝任。它同時也提供了
Configuration command 和 build-in command,方便我們隨時作更動。另一個特性是它
的 focus 方式,它提供了 Sloppy-focus 和 per-window focus 的功能。
Sloppy-focus 是 focus-follows-mouse,當mouse由 window 移到 root window 時,
focus 並不會移動,直到 mouse 移到其它 window。
版權
fvwm95 既是 fvwm 所衍生的,當然就□襲了 fvwm 的版權.
fvwm 是由 Evan and Sutherland Computer Corporation 於1988年所取得版權。
而在1989年由麻省理工學院取得版權。在1993年和1994年由Robert Nation取得版權。
Fvwm95的window
Fvwm 的 window 就像95一樣,提供了 3D-look 的外觀,window 大小的調整可
經由將 mouse 移到 window 的角落,此時會出現一個小L的 mouse cursor,利用它來
控制 window 的大小。當將 mouse 移至 title bar 時,按下 mouse 左鍵便可以移動
此 window,按下中鍵可以顯示出 window 的控制視窗(包含window的移動,放大、縮小、
關閉、刪除等等),當然,當你將 mouse 移到 titile bar 的左方的小圖示,並按下
mouse 任一鍵也會顯示出 window operation 的視窗。
Title-bar 裡最多可以 10 個 button。而這些 button 都可以經由 user 自
行定義,default 值是在左方的小圖示。其功能如上述.
Virtual Desktop
FVWM95 提供了多重虛擬桌面給 user 使用。這個 virtual desktop 可以比真
實的螢幕還大。同時也可以利用 DeskTopSize 的內部指令來控制。當然每個Desktop的
大小必須要一致。所有在 desktop 內的 window 都可經由 pager(一個小形□ widnow
desktop)看到。Pager 是一個程式模組。之所以會做成 module 是因為它並不是 window
使用的必要程式。所有開啟的 window 也可利用 FvwmWinList 模組來顯示在一個 popup
menu中。
Sticky 是指將某個 window 鎖定在 desktop 的某個位置,這種功能通常用在
將某種程式 window 鎖住,如可以將 clock 鎖在某地。當然它也適用在 ICON 上。
Window 的 geometry 是指相對於目前的 viewport。例如:
xterm -grometry +0+0
就會將 xterm 開在 screen 可見的部分的最左上角的位置。當然我們也可以利
用它來設定 widnow 的位置,但這個位置是對整個 Virtual desktop 而言,而非對單獨
的 desktop 而言。
或者我們也可以使用下列的方式:
xterm -geometry -5-5
便可使 xterm 的右下角離 window 的右下角5個 pixel。但並非所有的應用程式
都支援這個負數的指定方式。
初使化(IN99vIALIZATION)
在作初始化的時候FVWM95會先找設定檔 (configuration file) 來作一些設定。
首先 fvwm95 會在使用者的目錄中找一個叫做 .fvwm2rc95 的檔案。如果在使用者的目錄
中找不到這個檔案,它就會找 /usr/lib/X11/fvwm/.fvwm2rc95,如果再找不到,那
fvwm95就無法執行了。
fvwm95 會設定兩個可以讓子視窗繼□的環境變數。一個是$DISPLAY,用來描述
那個 display 要使用 fvwm95,它可以是 unix:0.0 或 :0.0。但是它在透過 rsh 傳遞
時並不能做得很好。所以有另一個 $HOSTDISPLAY 也可以使用,它是透過 TCP/IP 的方式
(即使是在local)。fvwm95 可以利用兩種 Function 來作初始化的工作:InitFunction
和 RestartFunction,很明顯的,一個是經由剛開始進入 X 時作設定,一個是經由
restart來作設定。這些都可以經由rc檔中的 AddToFunc 功能來作個性化(customized)
來起動 modules、xterm 或其它你想要經由 fvwm95 來起動的程式。
圖示(icons)
基本的 FVWM95 設定是使用黑白的位元圖示,就好像 twm 一樣。但如果 XPM 有
內建的話,你就可以使用類似 ctwm,MS-windows,machitash 之類的圖示了,如果
SHAPE 和 XPM 的選項都有選擇的話,那就會有彩色且有形狀的圖示出來。
模組(modules)
模組是一種類似分別執行的 process 分離程式(seperate program),但是卻把
執行指令傳給 fvwm95 去執行。使用者可以自行撰寫 module 而不會影響整個 fvwm95。
模組必須包含在 fvwm95 內,這樣才能在 fvwm95 和 module 之間建立兩個管線
(pipe)互相連系。在 X 的執行階段,Module 可以經由內建的指令來將 module 包含進來
。Module 可以一直存在 X 中執行,也可以執行一段工作,然後離開。如果 module 正在
執行時,X 被要求離開,那麽 fvwm95 會先關掉與 module 間的 pipe,而後再等待
module 的離開回應。若 fvwm95 等了30秒還沒收到回應,那它就會自動結束。可以同步
執行的 module 的數目是受限於作業系統的可同時開檔數。通常在 60-256 之間。
M4 preprocessing 和 cpp preprocessing
fvwm95 提供了 M4 和 C 的preprocess。你可以使用 M4 或 C 來對你的
.fvwm2rc95 作前置處理。
自動上升(auto-raise)
當 mouse 移到 window 時,window 可以自動上升或經數個亳秒後再上升。這
是 FvwmAuto 這個 module 所提供的功能。
設定參數
Fvwm95也提供了執行參數, 但在此不予介紹.
設定檔
設定檔是用來設定 mouse、按鍵、顏色、虛擬螢幕大小,和其它相關事項。初始
的設定檔是 .fvwm2rc95。是利用內建的 READ 命令來讀取。
若某行的開頭是#的話,那麽那一行是沒有作用的。若開頭是*,那麽這一行是表
示用來包含 module 的設定命令。Fvmw95 使得設定命令(configuration commands)和內
建命令(built-in commnads)沒有差別,所以剛才所提到的內建命令可以直接加在任一行
上,讓 fvwm95 去執行它。或者是加在 menu 上或者是加在某個 mouse buttom 或
keyboard key 上,讓使用者在有需要時才呼叫出來。
我們附了一個.fvwm2rc95在後面,並加以說明。請參照附一。
#
# .fvwm2rc95 example configuration file for fvwm95-2.0.41
# .fvwm2rc95 的設定檔□例, 適用於fvwm95-2.0.41版
#========================================================================#
#
# Fonts - one for window titles, another for icons, and another for the menus
# 字形 --- 一個用來設定視窗標題, 第二個給圖示說明, 第三個給menu用.
WindowFont -adobe-times-bold-i-*-*-14-*-*-*-*-*-*-*
IconFont fixed
MenuFont -adobe-helvetica-medium-r-*-*-*-140-*-*-*-*-*-*
#
# Set the default window colors. The syntax is:
# DefaultColors winforecolor winbackcolor titleforecolor titlebackcolor
# where:
# winbackcolor is the background (border) color of all windows,
# including the menu windows
# winforecolor is used for the menu text
# titlebackcolor is the background color used for title bars of
# non selected windows
# titleforecolor is the color of the title text of non selected windows
#
# 設定內定的視窗頻色. 語法如下:
# DefaultColors 視窗前景顏色 視窗背景顏色 視窗標題前景顏色 視窗標題背景顏色
# 視窗前景顏色 : 給menu的文字用的顏色
# 視窗背景顏色 : 給所有視窗用的背景(邊界)顏色, 包括menu視窗
# 視窗標題前景顏色 : 非使用中的視窗標題文字顏色
# 視窗標題背景顏色 : 非使用中的視窗標題背景顏色
#
DefaultColors Black #c0c0c0 #c0c0c0 grey51
#
# Text and background color for the title bar of the active (selected) window
# 使用中的視窗之文字和背景顏色
#
HilightColors yellow #101080
#
# Text and background color for the title bar of sticky windows
# 定位視窗之文字和背景顏色
#
StickyColors blue #60c080
# You can also use the Style command to set the colors of individual
# title bars of some non-selected windows
# 你也可以使用 Style 命令來設定其它非使用中視窗的標題顏色
#
#Style "*" ForeColor #c0c0c0
#Style "*" BackColor grey51
#======================================================================
#
HilightColors yellow #101080
#
# Text and background color for the title bar of sticky windows
# 定位視窗之文字和背景顏色
#
StickyColors blue #60c080
# You can also use the Style command to set the colors of individual
# title bars of some non-selected windows
# 你也可以使用 Style 命令來設定其它非使用中視窗的標題顏色
#
#Style "*" ForeColor #c0c0c0
#Style "*" BackColor grey51
#======================================================================