與其他圖形界面相比,X Window是高度可配置的,這是因為X Window 本身只是定義了一系列最基本的顯示功能調用,而並沒有規定圖形窗口應該是什麼樣子的,因此大批程序員為X Window開發了各種不同風格的開發工具包和窗口管理程序,使得X Window的風格多種多樣。因此X Window的使用者有多種選擇,可以根據自己的喜好來定制工作站的圖形界面。
顏色深度、分辨率與字體配置:
在前面的設置過程中可以設置X服務器使用多種色彩深度,如8bpp、 16bpp、24bpp和32bpp,一般來講色彩深度越大,所能表現的色彩越豐富,而 24bpp就被稱為真彩色,能真實的表現圖象的色彩(32bpp實際也只是24bpp,它是為了讓每個象素都占據獨立的32位雙字,以對齊象素邊界,加速處理速度)。缺省的色彩深度為對應於256色的8bpp,顯然這不足於表現圖象的色彩,在硬件能力滿足的條件下應該使用更高的色彩深度(要受顯存大小和分辨率大小的限制)。例如要設置X服務器工作在16bpp的准真彩色下,可以使用帶參數的 startx或xinit。
$ startx -- -bpp 16
其中前面的兩個--線表示將後面的參數不加改變的傳遞給X服務器。另一種設置缺省色彩深度的方法是在X的設置文件XF86Config中設置DefaultColorDepth 選項。
由於X Window中的色彩深度是可以改變的,為了幫助客戶程序使用具體的色彩,X客戶程序中使用的色彩將通過X服務器映射為真實的色彩。X中還定義了多種標准色的名字,在X程序或資源定義文件中直接使用色彩名字,如 Red、Blue,就得到常用的顏色。
X服務器也可以同時支持多種分辨率,並能夠在運行時刻動態切換它所支持的分辨率。在前面XF86Setup設置程序中的顯示器設置選項中,有部分顯示器能同時設置了幾個顯示模式,然而這些分辨率並不是該顯示器能支持的分辨率的全部,如果是使用xf86config或者手工更改設置文件,還能設置更多的分辨率。當設置了多個分辨率模式的時候,就能在X Window下使用熱鍵、和<+>向後切換模式,使用 、和<->向前切換分辨率模式,其中<+>和 <->是小鍵盤上的鍵,主鍵盤上的<+><->並不能用來切換分辨率。
雖然存在不同的分辨率模式,但是X服務器顯示的虛屏大小仍然相同,虛擬顯示屏大於實際顯示屏,但可以通過鼠標的移動,在實際顯示屏上顯示虛擬顯示屏的不同部分。因此在有多個分辨率的時候,虛擬顯示屏至少應該等同於最大分辨率的大小,這樣不論切換到哪個分辨率,應用程序的窗口仍然保持原有的樣子,只是窗口有可能位於真實的顯示屏外,需要通過移動鼠標來移動虛擬顯示屏,看到應用程序窗口的全貌。由於移動虛擬顯示屏是通過直接控制顯示卡上的寄存器來進行的,不需要在顯存或內存中進行額外的移動或復制操作,因此幾乎不消耗資源,也不影響任何顯示速度。
雖然XFree86缺省已經支持了相當豐富的字體,但是還是有可能需要安裝新的字體,例如某種中文字體。X Window的字體應該在配置文件中設置其搜尋路徑,但在啟動X Window之後,也可以使用xset命令來重新設置字體的搜尋路徑。
xset fp+ :增加一個字體搜尋目錄。
xset fp- :刪除一個字體搜尋目錄。
xset fp= :重新設置字體搜尋目錄。
xset fp rehash:更改某個字體目錄中的內容後,強迫系統刷新字體搜尋路徑。
要想使用一些使用者自己設置的字體,就要按下面的步驟將這些字體加入到X Window的搜尋路徑。
* 將這些字體單獨放在一個目錄下,或者放到系統原有的字體目錄下。
* 運行 “mkfontdir 該字體目錄” ,構建這個字體目錄(將按照所有的字體,重新生成fonts.dir文件)。
* 使用 “xset fp+ 該字體目錄” 或 “xset fp rehash” ,使設置生效。
fonts.dir文件中包含該字體目錄下所有字體的名字,以下為一個例子的部分內容,該文件每一行都給出一個字體的名字。
gb16st.pcf.gz -isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
gb24st.pcf.gz -isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
10x20.pcf.gz -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
gb16fs.pcf.gz -isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
可以看出font.dir中的內容分為兩部分,第一部分為字體文件的名字,第二部分為字體的名字。每個字體的名字用 “-” 將不同的部分分隔開了,這些相互分隔的部分包括字體的開發者、字體的類別、字體本身的尺寸(磅數)、傾斜度和點的大小,字符間距的類型、字體所為的字符集,以及字符的風格。
可以看出,每個字體的名字相當復雜,然而可以通過定義別名的方式來簡化具體字體的名字,在一個字體目錄下,都有一個對應的fonts.alias的文件,這裡就登記了很多字體的別名,使用者也可以自己根據需要增添。
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
5x7 -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
5x8 -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso646.1991-irv
上面就是某個font.alias的一部分,它的第一列就為簡單易記的別名。在運行 X Window時,可以使用xlsfonts來查看系統中可以使用的字體信息,使用xfontsel來查看每種字體的外觀。
定制客戶桌面基本方法
根窗口的特征可以使用xsetroot命令來設置,可以使用它來定制窗口的顏色(背景色和前景色),或者使用一個位圖作為背景等。也可以使用”xset s seconds”來定義屏幕保護的激活時間,”xset s default”將屏幕保護設為系統的缺省配置。
還有很多更強大的X程序能用來定制X的根窗口,設置壁紙和屏幕保護。例如可以使用xv來將gif或jpg等類型的圖片設置為壁紙,這些程序都可以在FreeBSD的Packages Collection 和Ports Collection中找到。
X客戶程序通常使用標准的構件,通常這些構件都有一些標准的參數來定義它們使用的字體、文字的前景色、背景色、滾動條等。這些參數可以通過更改構件的資源設置,來改變其設置。一般使用用戶個人目錄下的.Xdefaults或.Xresoures作為用戶的個人資源文件,資源文件在啟動時在.xinitrc文件中由xrdb命令載入系統。
除了資源設置之外,標准X客戶程序中的構件也支持標准的命令行選項,可以用來改變窗口構件的屬性:
-borderwith或-bw,框架的寬度,以像素為單位
-foreground或-fg,前景色
-background或-bg,背景色
-display,客戶程序要使用的X服務器的顯示位置
-font或-fn,顯示特殊文字使用的字體
-geometry,窗口的幾何結構,包括位置和大小
-iconic,以圖標方式啟動
-title,標題欄的標題
選擇窗口管理器和桌面環境
在FreeBSD安裝好XFree86之後,缺省的窗口管理器是twm,這是一個比較簡單的窗口管理器,會使得第一次接觸X Window的使用者對X Window產生不好的印象,但是如果進一步了解X Window系統,就會知道X Window本身並沒有包括真正好用的窗口管理器,但是卻存在很多種優秀的窗口管理器能達到這個目的,使X Window變得更華麗、更易用。
因此必須從Packages Collection中選擇安裝相應的窗口管理器或桌面環境,可供選擇的有fvwm95、AfterStep、KDE等。
fvwm95是從另一個窗口管理器fvwm2的進行改進之後的版本,它被設置為與Windows95 的桌面非常相似,因此習慣於Windows95界面的個人計算機使用者常常會選擇這個窗口管理器,然而既然使用的是X Window,沒有必要一定還要使用Window95的顯示風格,使用 fvwm2、AfterStep等其他窗口管理器來嘗試其他風格更為有益。一般情況下使用者還是會安裝一個fvwm95,fvwm95使用的配置文件是用戶主目錄下的.fvwm2rc95文件,而缺省配置文件為/usr/X11R6/lib/fvwm95/system.fvwm2rc95文件。使用fvwm95時最簡單的啟動文件.xinitrc應包括:
/usr/X11R6/bin/fvwm95
AfterStep是模仿NextStep的窗口管理器,這個窗口管理器精巧而且漂亮,如果不是過於沉迷於Windows95的操作方式,不妨使用這個窗口管理器,它還有幾個派生的管理器,如WindowMaker、enlightenment等。為了充分發揮AfterStep的華麗,X的顯示屏應該大於800x600的分辨率,並至少使用16bpp的色彩深度。AfterStep的所有配置文件均放置在用戶主目錄下的GNUStep目錄中,相應的啟動文件為:
/usr/X11R6/bin/AfterStep
與前面兩者不同,gnome和KDE不僅僅是一個窗口管理器,還包括大量的應用程序和相關工具(gnome使用enlightenment作為其缺省窗口管理器)。這些桌面環境包括各種應用程序、控制條、圖形化的設置程序等,使用它們能夠全面享受到圖形桌面環境的優點,但它們占用的系統資源也相對較多。如果是將安裝FreeBSD的計算機用做一台工作站,那麼就應該選擇其中一種桌面環境,用戶可以根據自己的喜好來選擇安裝gnome或者KDE。
如果選擇安裝了KDE時,在.xinitrc及.xsession中應該包含的相應啟動命令為:
/usr/local/bin/startkde
在3.2=RELEASE之後,FreeBSD能通過Sysinstall來設置不同的桌面環境,Sysinstall 能安裝相應的軟件包,並在/usr/share/skel中添加dot.xinitrc和dot.xsession文件,這樣在生成用戶時就自動生成.xinitrc和.xsession文件。
配置和使用KDE
KDE不單單是一個窗口管理程序,它包括了使用X Window圖形界面進行操作所需要的各種應用程序。它的主要部分為一個擁有任務條、工具條、快捷圖標的桌面環境,並包括可用於浏覽WWW網頁的文件管理器、編輯器、計算器、CD播放器、郵件處理程序、新聞組閱讀程序等等大量的應用程序。
KDE的另一個特點就是包括了對圖形界面外觀的定制程序,一般情況下Unix中進行配置需要修改對應的配置文件,雖然這種方式提供了很大的靈活性,但對於很多不重要的設置,並不需要這麼靈活的方式,而要求方便、簡易。在KDE下不需要使用手工更改配置文件,而是通過圖形界面的設置程序進行設置,因此更容易使用。下面為一個KDE 界面的例子:
由於KDE是為了高性能的圖形界面開發的,因此為了獲得較好的觀感,至少應該以800x600分辨率運行X Window,建議使用1024x768以上的分辨率,以充分發揮KDE的顯示效果。
KDE圖形桌面由桌面背景、快捷圖標、工作欄和任務條組成,每個可以點擊的位置上通常使用左鍵一次點擊啟動相應的功能,使用右鍵點擊出現一個菜單,可以進行相關設置。上圖為進行工作欄和任務條的外觀設置,設置它們顯示的不同的大小和位置。此外,在桌面上使用右鍵可以配置桌面外觀,包括牆紙和屏幕保護。點擊左下角的K圖標可以彈出一個菜單,菜單中包括了KDE環境提供個多種應用程序,也可以添加對其他應用程序的連接。
與MS Windows不同,KDE(以及大部分X窗口管理器),使用一次點擊啟動應用程序,而不是雙擊。KDE下切換窗口的熱鍵與Windows相同為Alt-Tab。
KDE界面低部工作欄上的各個按鈕都對應一個相應的應用程序,而其中並列的四個按鈕,對應四個不同虛擬屏幕,每個屏幕上的內容各不相同,可以分別配置。KDE最多可支持八個虛擬屏幕,每個窗口只顯示在一個屏幕上,除非使用鼠標將窗口左上角的圖釘標志打開,這樣操作之後這個窗口總顯示在屏幕上,而不管如何切換虛擬屏幕。
KDE的配置工作全部可以通過KDE配置中心(KDE Control Center)來完成。點中左下角的 “K” 圖標,在菜單中選中KDE Control Center或使用工作欄上的快捷圖標,就可以啟動它對KDE的外觀進行配置。
KDE控制中心可以設置KDE桌面環境的排列方式,如工作欄、任務欄的大小和位置,窗口的風格,使用的顏色,屏幕保護以及其他一些應用程序的相關設置。這些設置也可以在KDE桌面環境中,使用鼠標右鍵彈出的菜單中的選項來啟動。
由於KDE是一種國際化的應用程序,因此可以使用上面的設置程序將KDE使用的字符設置為中文。當將KDE使用的語言設置為中文時,那麼所有KDE的菜單都使用中文,但是這需要中文X服務器或其他中文系統的中文顯示能力的支持,否則KDE雖然顯示的是中文字符,但是顯示的卻會是亂碼。
對於使用XDM登錄方式的系統,需要使用xdm以提供系統登錄。雖然用戶登錄後可以從.xsessin中啟動KDE,但仍然擺脫不了xdm過於簡陋的登錄畫面。而KDE的另一個特點就是提供一個xdm的替代程序kdm,這使得系統管理員可以替換掉簡單的xdm界面,使用kdm來提供更漂亮的XDM登錄界面,這使得X Window系統表現得更為華麗。
上圖就是一個kdm的外觀,它同樣也是在KDE控制中心中來進行配置的,只是由於 kdm屬於系統程序,因此只有root運行的KDE控制中心才能選擇這一項配置功能。設置KDM ,需要選擇KDE配置中心的第一個選項Desktop Manager。
這個選項中可以設置kdm的圖標、出現在kdm的用戶列表中的用戶、或者不出現在kdm 的用戶列表中的用於,以及在會話結束時用於關閉系統的指令等。
將工作站用作專用X終端
專用機房中常常使用X終端為公共使用者提供服務,使用者可以通過這些終端以XDM 方式登錄到機房中的Unix主機上去。X終端不允許使用者登錄到自己系統中,而只能使用本地X服務器的處理能力,登錄到其他主機上進行使用。
由於個人計算機硬件更為便宜,並且由於硬件的發展其性能也並不落後,使用個人計算機作X終端也是一種在使用專用X終端之外很不錯的選擇。可以使用FreeBSD作操作系統,Xfree86支持X Window系統,就能將FreeBSD系統用作專用X終端,這樣的優勢是所有的軟件都可以免費得到,就使得在實現幾乎同樣的性能的條件下,卻減少了大量的資金投入。
同樣也可以通過設置使得用戶不能登錄進本地系統,而是直接登錄到網絡上的其他Unix主機中去。這需要那台提供登錄服務的Unix主機運行xdm,這樣X終端就能通過xdmcp 協議在網絡中通過廣播或者直接查詢的方式,查找到運行xdm的主機,並連接上來提供登錄登錄畫面,就如同在本地系統一樣。用作X終端的FreeBSD系統需要以使用特別的參數運行X,以查找XDM主機。
如果運行XDM的Unix主機和用作X終端的FreeBSD系統在同一個以太網段上,可以使用廣播的方式尋找運行XDM的主機,此時啟動X的命令為:
# /usr/X11R6/bin/X -broadcast
這樣系統上將列出本地所有運行XDM的Unix主機,供使用者選擇登錄。或者可以直接查詢方式,通過query參數直接與某台Unix主機相連接,這可以用在客戶機和服務器不在同一個網段上的時候。
# /usr/X11R6/bin/X -query Unixhost
為了使系統一啟動就進入這個登錄狀態,可以將這個命令寫入shell腳本,並放入系統啟動目錄/usr/X11R6/etc/rc.d中。然而此時使用ttys文件進行設置更佳,因為此時可能同時想關閉虛擬控制台,以防止X終端使用者切換到虛擬控制台上。