XFree86學習筆記
整理:Jims of 肥肥世家
<yjnet@21cn.com>
Copyright ? 2004 本文遵從GPL協議,歡迎轉載、修改、散布。
第一次發布時間:2004年8月14日
--------------------------------------------------------------------------------
Table of Contents
1. X window 介紹
1.1. X 簡介
1.2. 版本
1.3. XFree86項目介紹
2. XFree86系統介紹
2.1. XFree86安裝
2.2. XFree86配置
2.3. XFree86的文件系統
2.4. XFree86字體
2.5. 啟動X11
2.5.1. 啟動方法
2.5.2. 啟用多用戶會話
2.5.3. 終止X會話
3. X11客戶程序常用選項
3.1. X程序常用選項
3.2. 使用客戶程序資源
4. X window的網絡應用
4.1. 遠程會話
4.2. 遠程桌面
4.3. 安全問題
5. X系統客戶程序介紹
5.1. 環境設置命令
5.2. 小工具
6. X11多媒體客戶程序介紹
7. 顯示管理器
7.1. xdm的配置
8. 窗口管理器
8.1. WindowMaker
8.2. fvwm\fvwm2\fvwm95
8.3. enlightenment
8.4. mwm
8.5. twm
8.6. icewm
8.7. Sawfish
8.8. blackbox
9. 桌面環境
9.1. GNOMN
9.2. KDE
9.3. CDE
10. X web
List of Tables
2.1. XFree86文件系統目錄清單
3.1. X程序常用選項
Chapter 1. X window 介紹
Table of Contents
1.1. X 簡介
1.2. 版本
1.3. XFree86項目介紹
1.1. X 簡介
X window系統是一個很復雜的網絡圖形界面系統,它的開發始于1984年,它被應用已有近20年。X也是一個協議,它定義程序(客戶程序)如何與另一個在遠程機器上運行的程序(服務器程序)交換信息。它最早是由數字設備公司(DEC)的Jim Gettys與麻省理工大學(MIT)的Ron Newman和Bob Scheifler共同開發的。當時DEC和MIT想共同開發一種分布式的計算環境,X系統就是他們研究成果的一部分,這項工作叫作雅典娜工程。現在X的管理機構是X 聯盟(www.x.org)。X系統由三部份組成,它們分別是X Server、Xclient和X協議。
X Server是控制輸入輸出的程序,它是和底層硬件直接通信的。它接收X client程序的請求做建立窗口、繪制圖形等工作。
X client是基于X Server的客戶程序,它請求X Server在指定的窗口進行各種操作。它不負責顯示,只是給X Server發送一個請求,由服務器完成動作。
X 協議是X Server和X Client之間溝通的語言。Xlib庫能完成這種通信功能,所以可以基于它進行X client程序的開發。
以下是X系統的幾點優勢:
可移植性。X系統可移植到幾乎所有的計算機圖形系統下。
標準化。X window系統提供一個標準的函數庫和功能調用集合,抽象了硬件層功能,使程序開發更標準更快捷。
網絡化。它是基于網絡的圖形界面系統。
模塊化結構。能方便進行功能擴展。
不嵌入操作系統中,適用于幾乎所有的操作系統,如linux、solairs、windows等。
1.2. 版本
1986年發布X10.4版
1987年9月15日發布X11R1版(X11第一次修訂版)。源程序有19MB,可在4種主要的操作系統下運行。
1988年發行第二修訂版X11R2。該版提供了很多壓縮的矢量字體,以及第三方軟件商提供的軟件工具。
1991年8月29日發布了X11R5版。為X window系統增加了國際化功能。
1994年4月21日,X11R6發布。這一版改進窗口管理、資源共享、會話管理等功能。
1996年3月5日發布了X11R6.1版,支持16種操作系統,包括linux內核1.2.11。
1996年12月23日發布了X11R6.3版,它是X聯盟轉換到TOG(開放工作組,一個非盈利機構)前最后的一個X版本。TOG由200個新成員和很多X聯盟的原創成員組成。
1998年1月4日,TOG發布了X11R6.4版。TOG工作組改變X 系統免費的許可證政策,如果從銷售X系統中盈利,就須交納年度注冊費,價格是每5萬個用戶7500美元,隨后又增加到至65000美元。由于新許可政策的實施,導致開源社區組成一個XFree86工程公司(一個非盈利的機構)開發了一個基于Intel PC平臺的免費X系統XFree86。1998年9月TOG也放棄新許可政策,把X11R6.4版的許可恢復到舊的麻省理工的版本。
2000年8月15日,X11R6.5.1發布。源文件容量擴充以144Mb,包含8100多個文件、600多種字體、345個手冊頁、20個程序庫、70個圖象和60個客戶程序。現在最新的版本是X11R6.7.0,可以到http://www.x.org下載。
1.3. XFree86項目介紹
XFree86項目成立于1994年3月19日。最早的開發工作始于1992年,由一個開發小組完成,實現了基于Intel PC平臺的X系統。1994年5月18日發布的XFree86 2.1版是第一個支持linxu的XFree86版本。2000年5月7日XFree86 4.0版發布,它是XFree86最重要的一個發布版,增加了很多功能。XFree86的意思是“提供X服務,它是自由的(free),它是基于Intel的PC平臺”。現在最新的XFree86版是4.4.0。可以到http://www.xfree86.org下載。基于windows平臺也有X window系統,如:X-Win32、Extra!X、Exceed等。
Chapter 2. XFree86系統介紹
Table of Contents
2.1. XFree86安裝
2.2. XFree86配置
2.3. XFree86的文件系統
2.4. XFree86字體
2.5. 啟動X11
2.5.1. 啟動方法
2.5.2. 啟用多用戶會話
2.5.3. 終止X會話
2.1. XFree86安裝
安裝軟件與其它軟件大同小異,這里就不詳細介紹了。
2.2. XFree86配置
在XFree86中的配置文件是XF86Config-4,下面介紹幾種配置的工具:
xf86config是一個基于文本的配置工具。在控制臺運行該命令后按提示配置就可以了。
reconfig用以把舊版的配置文件轉換成4.0.1版的配置文件格式。
可以用$ XFree86 -configure命令由系統自動生成一個叫XF86Config.new的配置文件,可基于這個文件再修改。最后用$ XFree86 -xf86config XF86Config.new進行測試。如果成功將出現一個帶“X”的窗口。最后把正確的配置文件拷貝成/etc/X11/XF86Config-4。
在XFree86 4.0.1后,還可通過xf86cfg這個圖形化程序來進行配置。
在各linux的發行版中,還包含有各自開發的配置工具,redhat有Xconfigurator;Mandrake 有DrakConf;SuSE 有SaX。
下面是一個完整的配置文件例子:
Section "ServerLayout"? ==============配置標識區
??????? Identifier???? "XFree86 Configured"
??????? Screen????? 0? "Screen0" 0 0
??????? InputDevice??? "Keyboard0" "CoreKeyboard"
# PS/2 Mouse not detected
??????? InputDevice??? "Serial Mouse" "CorePointer"
# USB Mouse not detected
EndSection
Section "ServerFlags" =================X 選項配置區
??????? Option "AllowMouseOpenFail"? "true"? ====允許在鼠標配置失敗的情況下啟動X
??????? Option "DontZap"?? "true"??????????? ====不能使用Ctrl+Alt+Backspace組合鍵退出X
??????? Option "DontZoom"? "true"??????????? ====不能使用Ctrl+Alt+小鍵盤+-來切換顯示模式
???????
EndSection
Section "Files"???? =========================字體配置區
??????? RgbPath????? "/usr/X11R6/lib/X11/rgb"
??????? ModulePath?? "/usr/X11R6/lib/modules"
# Additional fonts: Locale, Gimp, TTF...
#?????? FontPath???? "/usr/X11R6/lib/X11/fonts/latin2/75dpi"
#?????? FontPath???? "/usr/X11R6/lib/X11/fonts/latin2/100dpi"
# True type and type1 fonts are also handled via xftlib, see /etc/X11/XftConfig!
??? FontPath??? "/usr/X11R6/lib/X11/fonts/misc:unscaled"
??? FontPath??? "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
??? FontPath??? "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
??? FontPath??? "/usr/X11R6/lib/X11/fonts/PEX"
??? FontPath??? "/usr/X11R6/lib/X11/fonts/cyrillic"
??? FontPath??? "/usr/X11R6/lib/X11/fonts/TrueType"
EndSection
Section "Module"
??????? Load? "ddc"? # ddc probing of monitor
??????? Load? "dbe"
??????? Load? "dri"
??????? Load? "extmod"
??????? Load? "glx"
??????? Load? "record"
??????? Load? "xtt"
EndSection
Section "InputDevice"???? ================鍵盤配置區
??????? Identifier? "Keyboard0"
??????? Driver????? "keyboard"
??????? Option????? "CoreKeyboard"
??????? Option "XkbRules" "xfree86"
??????? Option "XkbModel" "pc105"
??????? Option "XkbLayout" "us"
EndSection
Section "InputDevice"??? =================串口鼠標配置區
??????? Identifier? "Serial Mouse"
??????? Driver????? "mouse"
??????? Option????? "Protocol" "Microsoft"
??????? Option????? "Device" "/dev/ttyS0"
??????? Option????? "Emulate3Buttons" "true"
??????? Option????? "Emulate3Timeout" "70"
??????? Option????? "SendCoreEvents"? "true"
EndSection
Section "InputDevice"??? =================ps/2鼠標配置區
??????? Identifier? "PS/2 Mouse"
??????? Driver????? "mouse"
??????? Option????? "Protocol" "auto"
??????? Option????? "ZAxisMapping"????????? "4 5"
??????? Option????? "Device" "/dev/psaux"
??????? Option????? "Emulate3Buttons" "true"
??????? Option????? "Emulate3Timeout" "70"
??????? Option????? "SendCoreEvents"? "true"
EndSection
Section "InputDevice"??? =================usb鼠標配置區
??????? Identifier????? "USB Mouse"
??????? Driver????????? "mouse"
??????? Option????????? "Device"??????????????? "/dev/input/mice"
??????? Option????????? "SendCoreEvents"??????? "true"
??????? Option????????? "Protocol"????????????? "IMPS/2"
??????? Option????????? "ZAxisMapping"????????? "4 5"
??????? Option????????? "Buttons"?????????????? "5"
EndSection
Section "Monitor"?????? ==================顯示器配置區
??????? Identifier????? "Monitor0"
??????? Option? "DPMS"? "true"
??????? VendorName????? "MAG"
??????? ModelName?????? "MAG9705"
??????? HorizSync 30-86# DDC-probed
??????? VertRefresh 50-160# DDC-probed
??????? # These are the DDC-probed settings reported by your monitor.
??????? # 1600x1200, 65.0Hz; hfreq=81.25, vfreq=65.00
??????? ModeLine "1600x1200"??? 175.50 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
??????? # 1280x1024, 75.0Hz; hfreq=79.98, vfreq=75.03
??????? ModeLine "1280x1024"??? 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
??????? # 1280x960, 85.0Hz; hfreq=85.40, vfreq=85.00
??????? ModeLine "1280x960"???? 148.50 1280 1344 1504 1728? 960? 961? 964 1011 +hsync +vsync
??????? # 1024x768, 85.0Hz; hfreq=68.68, vfreq=85.00
??????? ModeLine "1024x768"????? 94.50 1024 1072 1168 1376? 768? 769? 772? 808 +hsync +vsync
EndSection
Section "Device"?????? ===================顯卡配置區??????????
??????? ### Available Driver options are:-
# sw_cursor is needed for some ati and radeon cards
Option "sw_cursor"
??????? #Option???? "hw_cursor"
??????? #Option???? "NoAccel"
??????? #Option???? "ShowCache"
??????? #Option???? "ShadowFB"
??????? #Option???? "UseFBDev"
??????? #Option???? "Rotate"
??????? Identifier? "Card0"
??????? Driver????? "nv"??????????? =======如果不清楚可選svga或vga
??????? VendorName? "NVidia"
??????? BoardName?? "GeForce2 MX DDR"
#?????? BusID?????? "PCI:1:0:0"
EndSection
Section "Screen"???? =====================屏幕配置區
??????? Identifier "Screen0"
??????? Device???? "Card0"
??????? Monitor??? "Monitor0"
??????? DefaultColorDepth 24? ============用24位色深
??????? SubSection "Display"
??????????????? Depth???? 1
??????????????? Modes "1024x768" "640x480"
??????????????? Virtual 0 0
??????? EndSubSection
??????? SubSection "Display"
??????????????? Depth???? 4
??????????????? Modes "1024x768" "640x480"
??????????????? Virtual 0 0
??????? EndSubSection
??????? SubSection "Display"
??????????????? Depth???? 8
??????????????? Modes "1024x768" "640x480"
??????????????? Virtual 0 0
??????? EndSubSection
??????? SubSection "Display"
??????????????? Depth???? 15
??????????????? Modes "1024x768" "640x480"
??????????????? Virtual 0 0
??????? EndSubSection
??????? SubSection "Display"
??????????????? Depth???? 16
??????????????? Modes "1024x768"?
??????????????? Virtual 0 0
??????? EndSubSection
??????? SubSection "Display"
??????? SubSection "Display"
??????????????? Depth???? 24
??????????????? Modes "1024x768" "640x480"
??????????????? Virtual 0 0
??????? EndSubSection
??????? SubSection "Display"
??????????????? Depth???? 32
??????????????? Modes "1024x768" "640x480"
??????????????? Virtual 0 0
??????? EndSubSection
EndSection
2.3. XFree86的文件系統
大多數程序,字體和文件都放在/usr/X11R6目錄下,而其它組件和配置文件則放在/etc/X11目錄下,一些始化程序如xfs字體服務器就放到系統初始化目錄/etc/init.d目錄下。下面是一個XFree86系統目錄列表:
Table 2.1. XFree86文件系統目錄清單
目錄 描述
/etc/X11 X配置文件
/usr/X11R6/bin X程序
/usr/X11R6/include X11程序開發所需的#include文件和圖形
/usr/X11R6/lib X程序共享庫
/usr/X11R6/lib/X11 配置文件,應用程序資源文件文檔、字體及國際化文件
/usr/X11R6/lib/modules XFree86模塊(驅動程序、擴展文件、字體文件等)
/usr/X11R6/man X手冊頁
/usr/X11R6/share 各種X客戶程序共享的資源文件
2.4. XFree86字體
可以在本地或遠程安裝字體。單機上運行的linux的字體目錄主要是在/usr/X11R6/lib/X11/fonts目錄下。有幾個工具用以管理字體,分別是:
mkfontdir用來在字體目錄下創建字體名數據庫。
xlsfonts用來列出已安裝字體。
xfontsel用來顯示從字體集中選中的各種字體。
xfd用來顯示在X字體中的字符。
xset -q可查看字體的路徑
在fonts目錄下列有已安裝的各種字體目錄,如100dpi/、75dpi/、misc/等,每個目錄下都有一個fonts.dir和一個fonts.alias文件。fonts.dir文件是字體列表數據庫,X 和xfs字體服務器用這個文件查找字體;fonts.alias文件包含兩欄信息:名字和別名。可以利用這個文件給已有的字體創建新名字。Encodings目錄中的是Type1 (也稱TrueType)的字體編碼。這些信息用來在顯示器上繪制可縮放字體。
XFree86還可使用遠程XFree86 服務器上的字體,從而減少本地的字體存儲空間,主要通過配置字體服務器xfs完成。為利用遠程服務器上提供的字體,可用xset +fp unix/remote.org:7100命令可把遠程X 服務器提供的字體增加到當前顯示字體路徑中。在單機上運行xfs時,可以用一個單一的設置代替XF86Config文件中列出的字體列表:
Fontpath "nuix/:7100"
不過,具體操作還沒測試過。
Xresources文件位于/etc/X11目錄下,該文件包含所有客戶程序的默認資源管理信息。如emacs,vim。emacs*Background:DarkSlateGray表示把emacs程序的背景設置為灰色。這樣任何用戶在你計算機上啟動emacs編輯器,將使用灰色的背景。除非用本地設置來使之失效。
2.5. 啟動X11
X window的啟動過程是由xinit客戶端程序控制的,先啟動X Server,接著啟動窗口管理器,最后啟動用戶應用程序。用戶主目錄下的.xinitrc文件就是控制xinit程序啟動什么窗口管理器、顯示管理器和程序的文件。一般啟動X window的方法有如下幾種:
2.5.1. 啟動方法
各種linux的發行版都把運行級別5定為x window模式,所以最簡單的方式是修改/etc/inittab文件,把系統的默認運行級別定為5,重啟系統就可以了。有關系統運行級別的設置方法和原理可參考有關資料或man手冊頁。
我們也可以用startx腳本從shell中手動啟動x window。啟動startx后,它會進行一些環境變量的測試,它會搜查xclient的位置:$HOME/.xinitrc和/etc/X11/xinit/xinitrc,還有xserver的位置:$HOME/.xserverrc和/etc/X11/xinit/xserverrc。如果主目錄有配置文件就會優先使用,首先,xinit先執行.xserverrc的內容,如果找不到該文件,則用/etc/X11/xinit/xinit/xserverrc,如果都沒有,就執行 X :0,啟動X Server。接著xinit就會執行用戶主目錄下.xinitrc配置文件的內容。如果沒有則到/etc/X11/xinit/下找xinitrc文件,如果都找不到,則執行xterm -geometry +1+1 -n login -display :0。一個簡單的.xinitrc配置文件如下:
export LANG=zh_CN.GB2312?????????????? ======這兩行是設置中文環境變量
export? LC_ALL=zh_CN.GB2312
export XMODIFIERS="@im=Chinput"??????? ======設置Chinput為中文輸入法
chinput&?????????????????????????????? ======啟動chinput輸入法服務器
wmaker&???????????????????????????? ======啟動window maker窗口管理器
用startx啟動X的過程就是這樣的。
還有一個程序叫X,它只是啟動X Server進入X環境,所以可用它來測試X Server服務是否成功啟動。啟動X后,可按Ctrl+Alt+F7切換到X界面。
2.5.2. 啟用多用戶會話
如果有足夠多的內存,可以用startx命令啟動多個X會話。首先我們要啟動到非X多用戶模式下,如運行級別3。運行以下命令:$ startx -display :0 -vt7啟動第一個會話,運行$ startx -display :1 -vt8啟動第二個會話,可用Ctrl+Alt+F7/F8進行會話切換。
2.5.3. 終止X會話
一種方法是通過窗口管理器的注銷功能或在終端中打入logout,一種是通過Ctrl+Alt+Fn切換到其它控制臺,再用kill終止。
Chapter 3. X11客戶程序常用選項
Table of Contents
3.1. X程序常用選項
3.2. 使用客戶程序資源
3.1. X程序常用選項
Table 3.1. X程序常用選項
命令行選項 描述
-bg color or -background color 設置背景色
-bd color or -bordercolor color 設置窗口邊框色
-bw n or -borderwidth n 設置窗口邊框的寬度,n的單位是象素
-fg color 設置前景色
-fn font 設置字體
-geometry 寬X高+/-X偏移量+/-Y偏移量 指定客戶程序窗口的寬度,高度和在桌面上的位置
-iconic 以最小化的狀態啟動客戶端程序
-title string 設置窗口標題
以上參數只是一些程序常用的,有些程序可能不支持,要詳細了解可使用命令的-h或--help參數查詢,如rxvt --help。
3.2. 使用客戶程序資源
可使用資源設置文件為客戶程序設置各種默認的屬性,如字體、顏色等。這些客戶程序資源文件一般保存在/usr/X11R6/lib/app-defaults目錄下。可用$ appres xclock的形式來顯示xclock程序的資源文件內容。我們可以用editres程序來更改客戶程序的資源。還可以用xrdb來配置系統級別的資源。
Chapter 4. X window的網絡應用
Table of Contents
4.1. 遠程會話
4.2. 遠程桌面
4.3. 安全問題
X 系統的網絡模型是基于客戶機/服務器的體系結構。客戶機能遠程登錄進來,進行各種圖形顯示應用。
4.1. 遠程會話
有兩臺X系統,一臺A,一臺B。通過X系統的遠程會話可以把A的xclock應用程序顯示在B的顯示器上。具體的操作步驟如下:
首先要在兩臺電腦上安裝X系統。在A電腦上以不帶-nolisten tcp選項啟動X(在Xsession里設置)。并在B上執行$ xhost + A,允許A電腦訪問。
在A電腦上執行$ xclock -display B:0.0&,B的顯示器上就會顯示xclock時鐘。
連接完成后在B上要用$ xhost -A,取消A的遠程訪問權限。
利用該功能,我們也可以利用telnet或ssh登錄到遠程服務器,在遠程服務器上運行應用程序,再把顯示傳回本地顯示。
上面介紹的是基于主機的認證會話方式,還有一種更安全的基于cookis的認證方式,它要用到xauth這個程序,用它可生成一個本機的cookis保存在.Xauthority文件中,要進行認證需把它拷貝到另一臺機的.Xauthority文件中。這樣兩臺機就有了相同的cookis,連接時就可用于認證。在xauth里有兩個有用的程序,一個是extract用于把cookis導出成一個文件,merge用于把導出的文件導入.Xauthority文件中。
4.2. 遠程桌面
可以利用Xvnc軟件,實現遠程桌面應用。該軟件包括服務器和客戶端,能讓你在一臺linux客戶機上登錄遠程系統的桌面。包括windows、Machintosh、Solaris等。Xvnc是由英國劍橋的AT&T研究室研制。使用方法如下:
在A電腦上運行$ vncserver -geometry 800x600,啟動服務器。
在B電腦上運行$ vncviewer A:1,連接A系統桌面,桌面大小是800x600。
4.3. 安全問題
可利用xterm的安全鍵盤功能。操作方法如下:
在本地X會話過程中啟動用戶系統,$ xterm&。
然后把光標移到終端窗口內空白地方,按下Ctrl+單擊鼠標左鍵,在彈出的快捷菜單中選中“Secue Keyboard”。這時,終端窗口使用相反的前后景色。這樣,只有這個窗口可以輸入信息,其它任何程序和窗口都不能輸入信息。
為了加強安全,還可以使用xfwp設置一個X防火墻。
Chapter 5. X系統客戶程序介紹
Table of Contents
5.1. 環境設置命令
5.2. 小工具
5.1. 環境設置命令
用xset進行個性化設置,可以設置屏保、鼠標,顯示器的能源之星特性(DPMS)等
$ xset -q 可以顯示當前設置。
$ xset s on 打開屏幕保護。
$ xset s 60 設置屏保激活的時間為1分鐘。
$ xset s off 關閉屏幕保護。
$ xset m "1 6",放慢鼠標移動速度,$ xset m "30 10",加快鼠標移動速度,$ xset m "default",重置鼠標移動速度。
用xsetroot設置根窗口顯示背景,鼠標圖案等。
$ xsetroot -solid black,把窗口背景設置為黑色。
$ xsetroot -bitmap /usr/X11R6/include/X11/bitmaps/test.bmp,用test.bmp作為桌面背景
$ xsetroot -cursor_name xxx。設置鼠標圖案。$ xsetroot -cursor_name X_cursor,重置鼠標圖案。
通過xmodmap來重新排列鍵盤上的按鍵。
要使用xmodmap這個程序,需要有一個.Xmodmap的配置文件,配置按鍵的位置。配置文件內容如下:
remove Lock = Caps_Lock
remove Control = Control_L
keycode 0x42 = Caps_Lock
keycode 0x25 = Control_L
add Lock = Control_L
add Control = Caps_Lock
接著調用$ xmodmap .xmodmap進行設置。
為了更好設置,可以調用xev程序進行鍵位測試。
$ xmodmap -e "pointer = 3 2 1" 可以把鼠標的左右鍵對調。
xhost用于控制網絡上哪些主機允許存取本地顯示屏幕。
$ xhost +,允許所有主機存取本機顯示屏幕,這樣是很不安全,請使用時注意。
$ xhost -,禁止所有用戶存取本機顯示屏幕。
$ xhost + test,允許test這臺機存取本機顯示屏幕,也可以用IP地址。
5.2. 小工具
xwd and xwud可截取和顯示屏幕畫面
$ xwd -out test.xwd 按下回車后,光標變成一個卷發型,移動光標到要截取的窗口上,按左鍵就可以了。圖形保存在當前目錄下。
$ xwd -root -display B:0.0 -out test.xwd,用-root表示截取整個顯示內容。
$ xwd < test.xwd,顯示圖形。
用xbiff提示電子郵件到達信息,用xeyes顯示眼睛圖像,用xlogo顯示X標識,用xclock顯示時間,用xmag放大區域。
$ xbiff -update 15 -volume 100 -geometry 100x100 -fg white -bg blue。
$ xeyes -fg red -center yellow。
$ xlogo -fg black -bg lightgreen。
$ xclock -d -update 1 -fg black -bg lightgreen,-d表示顯示數字時鐘。
$ xmag ,回車后,光標變成一個L型,然后,在你想放大的地方按鼠標左鍵,則會把該區放大。
利用Pilot-xfer來與PDA通信。
詳細內容請參考相關資料。
xload可顯示系統狀態。
$ xload&
xman可顯示手冊頁
$ xman
editres可獲得和修改Xclient程序的資源信息。
$ editres。
xlsclients可列出當前X Server中運行的客戶程序。
$ xlsclients
Chapter 6. X11多媒體客戶程序介紹
GIMP,一個圖象處理軟件。
SANE(Scanner Access Now Easy),一個掃描儀支持軟件包。
Gun OCR/JOCR,光學字符識別軟件。
gPhoto,數碼相機支持軟件,支持超過100種相機。
Xine,xmms,mplayer,realplay,多媒體播放軟件
Krabber,mp3轉換工具。
Chapter 7. 顯示管理器
Table of Contents
7.1. xdm的配置
顯示管理器是負責管理X會話和登錄的,在GNOMN中的是gdm,在KDE中的是kdm,還有一個早期使用過的xdm。顯示管理器的作用和xinit差不多,都是控制進行X Server時要執行的工作。但顯示管理器有以下優勢。我們完全可用顯示管理器替代xinit。
顯示管理器可同時控制多個X Server。
它是循環執行的,可確保我們始終以X window圖形界面登錄。
它的可配置性很強。能為每個用戶配置不同的系統環境。
為用戶提供一種簡單的登錄方式。
7.1. xdm的配置
xdm的配置文件位于/etc/X11/xdm目錄下,首先應查詢xdm-config文件。系統會先讀取該文件的配置信息。xdm-config文檔的內容如下:
! $Xorg: xdm-conf.cpp,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
!
! $XFree86: xc/programs/xdm/config/xdm-conf.cpp,v 1.7 2001/01/17 23:45:24 dawes Exp $
!
DisplayManager.errorLogFile:/var/log/xdm.log??????????? ====出錯日志文件路徑
DisplayManager.pidFile:/var/run/xdm.pid
DisplayManager.keyFile:/usr/X11R6/lib/X11/xdm/xdm-keys
DisplayManager.servers:/usr/X11R6/lib/X11/xdm/Xservers? ====X Server服務器啟動的配置文件
DisplayManager.accessFile:/usr/X11R6/lib/X11/xdm/Xaccess? ====控制多個圖形終端時的配置文件
DisplayManager.authDir:/var/lib/xdm
DisplayManager.willing:su nobody -c /usr/X11R6/lib/X11/xdm/Xwilling
! All displays should use authorization.
! X terminals may not be configured that way, so they will require
! individualized resource settings.
DisplayManager*authorize:true
! Scripts to start the server, start the user session, and reset the server
DisplayManager*setup:/usr/X11R6/lib/X11/xdm/Xsetup
DisplayManager*startup:/usr/X11R6/lib/X11/xdm/Xstartup
DisplayManager*reset:/usr/X11R6/lib/X11/xdm/Xreset
DisplayManager*resources:/usr/X11R6/lib/X11/xdm/Xresources? ====啟動時的資源配置文件
DisplayManager*session:/usr/X11R6/lib/X11/xdm/Xsession????? ====啟動及周期配置文件
DisplayManager*authComplain:true
!
DisplayManager*userPath:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
DisplayManager*systemPath:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
DisplayManager*loginmoveInterval:10
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort:0
Xservers中列出xdm所管理的X Server的列表。如::0 local /usr/X11R6/bin/X -vt7
Xresourdes中列出了資源的名單,在登錄窗口啟動之前被xrdb加載。如:可通過該文件修改登錄窗口的屬性。
Xsession中列出在一個會話周期內所運行的程序。最后一行所執行的程序可以持續整個管理周期。當該程序結束,則周期結束。需要把除最后一行外的所有程序放在后臺運行。如果不這樣做,周期將可以會出掛起或出錯。如:執行twm行省略了"&",則它后面的程序將不會運行,直到twm程序結束。另外,最后的一行程序必須是可執行的命令,因為它將不間斷地執行且保持你的周期繼續活動。如果你把它放在后臺運行,雖然它同樣會順利地執行,但此周期程序執行至配置文件結束時將會中斷,因而造成周期的結束。如果不用exec引導程序,而且省略“&”。則最后一行的程序也將會順利地執行且此周期將不斷地持續工作,比如:xterm -geometry -0+50 -ls -C。-C表示使xterm成為一個控制臺終端,使所有的系統信息在該窗口中顯示。-ls表示使它的shell成為login shell。如果可使shell讀入你的login或profile,所以你自已設定的環境變量會自動設定。
Chapter 8. 窗口管理器
Table of Contents
8.1. WindowMaker
8.2. fvwm\fvwm2\fvwm95
8.3. enlightenment
8.4. mwm
8.5. twm
8.6. icewm
8.7. Sawfish
8.8. blackbox
X Server只負責程序的運行和輸入輸出,窗口界面它沒有定義和管理,它要靠一種叫窗口管理器的軟件來負責。這也是X window靈活強大的功能之一。通過不同的窗口管理器,你可以定義出千變萬化的窗口環境,突顯你的個性,要多酷有多酷。下面對一些常用的窗口管理器進行簡單的介紹。
8.1. WindowMaker
8.2. fvwm\fvwm2\fvwm95
8.3. enlightenment
8.4. mwm
8.5. twm
8.6. icewm
8.7. Sawfish
8.8. blackbox
Chapter 9. 桌面環境
Table of Contents
9.1. GNOMN
9.2. KDE
9.3. CDE
桌面環境是一種工作環境,里面有窗口管理器,有系統管理程序,有文件管理程序和一些工具軟件的集合。所以它可以說一個集成的環境,用于辦公、娛樂等。在linux下比較流行的桌面環境有兩個,一個是基于GTK+的GNOMN(GNU Network Object Model Environment)和一個是基于Qt的KDE(K Desktop Environment)。
9.1. GNOMN
9.2. KDE
9.3. CDE
Chapter 10. X web
在X11R6.4中提供了一種基于Web的X window解決方案叫broadway。它能使X window系統具有通過Web協議訪問X應用程序能力,即X web。X web的體系結構包括5個關健部分:
遠程執行---提拱遠程啟動X 應用程序的機制。
一致性訪問---集成X11R6.4和Http協議,提供獨立于平臺的一致性訪問,使它具有廣泛的可用性。
Web瀏覽器插入---結合遠程執行,提供在瀏覽器中顯示應用程序執行結果的功能。
安全機制---用區分可信(內部)和不可信(外部)應用程序的方法提供安全機制。它的實現包括3部分,第一是擴充的pc機X 服務器功能;第二是增加防火墻的X 代理功能;第三是為用戶提供控制在可信和不可信程序間交換數據的界面。
LBX(窄帶X )---用于改進X在廣域網和低速拔號網絡上的性能,使用的技術包括高速緩沖、數據壓縮和簡化應答。
X web是一種分布式的應用,這也是X window系統設計時初衷。但由于當時分布式計算技術環境的不完善,使得它的功能在當時的環境下實現不了。現在,隨著計算技術的飛速發展,如低成本寬帶網絡的迅速擴張,高性,低成本的CPU的使用,操作系統功能的不斷完善,開發工具和方法的不斷改進等,分布式計算環境已較完善,X window的分布式應用已漸漸成為現實。
X web是一種較新的技術,具體還沒有測試過,有興趣的朋友可到http://www.broadwayinfo.com網站了解一下。