XFree86 4.x教程
作者:Chris Houser
來源:IBM 我應該學習此教程嗎? 或許您已經安裝了 XFree86 4.0(或更高版本),但不知道接下來該干什么?;蛘吣赡芤褔L試運行 X,但只看到整個屏幕都是黑白點畫?;蛘吆芸赡?,您已經成功運行了 X,但您確信顯卡支持更多的色彩或更高的分辨率。對于其中任何一種情況,您都找對了地方。首先,我們將為您的特定顯卡和監視器設置 XFree86 X 服務器并使之運行。然后,將涉及您的所有個人配置選項,這些配置選項使您的桌面有家的感覺。 在本教程中,Chris Houser 向您演示了如何使 XFree86 4.x(Linux 版的標準免費 X 服務器)在您的系統上啟動與運行起來。Chris 逐步指導您完成配置 X 以與硬件一起正確工作并使用您所喜歡的分辨率和顏色深度來使 X 運行起來的過程。 另外,Chris 還論及了 X 的用法基礎,包括遠程運行 X 應用程序、保護 X 和使用 X 資源數據庫來配置 X 應用程序。他還向您演示了在 Xfree86 啟動時如何啟動您所喜歡的窗口管理器、桌面環境和應用程序。在本教程結束時,您將很好地領會 XFree86 的基本原理,可以準備將 XFree86 的許多功能應用到實際使用中。 Chris Houser,朋友稱他為“Chouser”,自 1994 年他成為印地安那州 Taylor 大學的計算機科學網絡管理員開始,他就一直是一名 UNIX 支持者,在那里他獲得了“計算機科學與數學”學士學位。其后,他曾經從事 Web 應用程序編程、用戶界面設計、專業視頻軟件支持,現在他正在從事 Compaq 上的 Tru64 UNIX 設備驅動程序編程。他還給各種免費軟件項目投稿,最近他在給 Gentoo Linux(http://www.gentoo.org) 投稿。他與他的妻子及兩只貓居住在新罕布什爾州。 Chris 歡迎您對本教程提出疑問和意見??梢酝ㄟ^ chouser@gentoo.org 與他聯系。 XFree86 的角色 XFree86 是一種多用途系統,它扮演兩個不同的主要角色。首先,我們將它用作設備驅動程序; 在這個角色中,X 允許操作系統和應用程序與計算機硬件通信。要做到這一點,XFree86 必須知道有關硬件的一些詳細信息。該信息存儲在它的主配置文件 XF86Config 中。 查找 XF86Config 在開始之前,關鍵是要找到 XF86Config 文件所在的位置。要查找 XF86Config,以 root 用戶登錄到文本控制臺 — 不應該馬上運行 X。通常,將在 /etc/X11/ 中找到 XF86Config;如果系統上存在這個特殊目錄,那么它很可能就是 XF86Config 所在的位置。其它公共位置包括 /etc/、/usr/X11R6/etc/X11/、/usr/X11R6/lib/X11/ 或 /usr/lib/X11/ 下的某處。 如果您發現某個地方應該有 XF86Config,而它不在那里,請不要擔心;我將在后面幾屏中指導您如何從零開始創建 XF86Config。 向前跳過 如果您已經使 X 工作,但想要學習如何調整各種 XFree86 配置設置,則向前跳到下一章節,XFree86 配置?,F在,讓我們看一下如何從零開始創建一個 XF86Config 文件。 創建新的 XF86Config 文件 創建新的 XF86Config 文件的最容易方法是使用 XFree86 的 -configure 選項。這里是如何告訴 XFree86 探測硬件并創建一個初始 XF86Config 文件的命令: # XFree86 -configure 屏幕應該會變成黑色,或許會閃爍一會兒 — 您不必擔心;允許有幾秒鐘的時間來完成硬件探測。 如果您沒有看到屏幕變成黑色,相反得到一行類似 XFree86: command not found 的錯誤,則可能需要將 XFree86 的二進制安裝目錄(幾乎總是 /usr/X11R6/bin)添加到路徑中。如果正在使用類似 Bourne 的 shell(sh、bash 和 ksh 等),則可以輸入下列命令來完成它: # PATH="/usr/X11R6/bin:$PATH" 如果正在運行類似 csh 的 shell(csh、tcsh 等),則可以輸入下列命令來做到: # setenv PATH "/usr/X11R6/bin:$PATH" 一旦完成了任一設置,請再次嘗試 XFree86 -configure。這次它應該起作用了。請記住,將 /usr/X11R6/bin 添加到缺省路徑中,這樣每次打開新控制臺時,您就不必顯式地將它添加到路徑中了。 安裝新的 XF86Config 現在,主目錄 /root 中應該有一個名為 XF86Config.new 的新文件。如果正在替換現有的 XF86Config 文件,則將它移開并在其位置上復制這個新文件。當然,如果沒有要替換的 XF86Config 文件,則只要跳過下面的第一個 mv 命令: # cd /etc/X11 # mv XF86Config XF86Config.orig # cp /root/XF86Config.new XF86Config 第一次 XFree86 測試運行 這個新的 XF86Config 包含 XFree86 對于您所具有的硬件類型以及應該如何設置它的最好猜測。要測試到目錄為止您所擁有的配置,只要再次運行 XFree86,但這次不帶 -configure: # XFree86 這應該使屏幕再次變成黑色。幾秒鐘之后,整個屏幕都是黑白點畫圖案,并且應該看到中間有一個黑色的 X。點畫模式是缺省 XFree86 背景,屏幕中間的黑色 X 是缺省鼠標指針。如果移動鼠標,它應該移動。如果光標不移動,不要擔心;這意味著我們只需要調整一下 X 鼠標設置,我們馬上就會做。 要在一旦出現點畫圖案時就回到文本控制臺,請按住 Ctrl 和 Alt 鍵,并輕輕地按一下 Backspace 鍵。這是要記住的重要的組合鍵,因為它幾乎總是關閉 X 然后使您回到文本控制臺 — 萬一您找不到從 X 會話退出的任何其它方法。 測試運行故障排除 如果運行 XFree86 不會使圖形點畫圖案出現在屏幕上,相反您得到了某種錯誤,那么您或許有超出了本教程范圍的不常用的硬件或者操作系統設置?,F在,可能是轉至 http://www.xfree86.org 的好時機,研究一下您的 XFree86 發行版是否支持您的特殊顯卡,如果支持的話,如何啟用這一支持。 然而,假設一切都工作正常,您應該能看見圖形點畫模式。祝賀您!現在,XFree86 是用一些可用的缺省值進行配置的,但還要進行許多可能的配置調整,使 X 的行為方式如您所愿。如果目前為止它正在很好地工作,而且您很忙,則可以跳至禁用遠程 X 連接;否則,讓我們將新的 XF86Config 文件裝入文本編輯器。 第一次查看 用您所喜歡的文本編輯器打開 XF86Config,讓我們看一下可能有哪些配置調整: # vi XF86Config 您應該看到它由幾節構成,每節都整潔地用 Section 和 EndSection 行隔開,每節都包含不同硬件或軟件組件的設置。您可以看到在 Section 行上命名的組件類型,如 "ServerLayout"、"InputDevice"、"Monitor" 等。通常,其中的大多數節都應該在早先運行 XFree86 -configure 時得到了正確設置,不應該將它們混在一起。 配置鼠標 如果在最初測試 XFree86 時可以通過移動鼠標來使“X”光標移動,則可以跳過下面的這幾屏并繼續 XF86Config:深度。 然而,如果鼠標不工作,這意味著 XFree86 正在對您的特殊鼠標使用錯誤的鼠標設備名或錯誤的鼠標協議。要查看當前的 XFree86 鼠標設置,找到 XF86Config 中名為 "InputDevice" 的 Section?;蛟S有兩個這種 Section,或許更多,而您要找到您鼠標的那個 Section。這應該不難找到,因為 Identifier 應該是 "Mouse0"。 對于鼠標配置,有兩個基本配置選項:Protocol 和 Device。在新式的 PC 上,Protocol 應該幾乎始終是 "PS/2"。然而,正確的 Device 設置可能取決于操作系統、發行版(distribution)或其它因素,如系統是否使用 devfs。 正確的鼠標設備 最常用的鼠標 Device Option 是 "/dev/mouse",但僅當將 /dev/mouse 符號鏈接指向 /dev 中真實的鼠標設備名時它才工作,并且特定的 Linux 系統可能正確地設置了它,也可能沒有正確地設置它。如果沒有 /dev/mouse 符號鏈接,則您必須親自查找特定的鼠標設備名。 幸運的是,這個過程通常很容易。幾乎所有的新式鼠標都插入計算機的 PS/2 端口,它在 Linux 中顯示為 "psaux" 設備。如果您碰巧使用啟用 devfs 的系統,則可以在 /dev/psaux 或 /dev/misc/psaux 中找到該設備節點。如果這些設備節點之一存在,則嘗試為 XF86Config 中的 Device Option 指定它;當輸入 XFree86 以再次測試 X 時,鼠標應該開始正確工作。 現在,XF86Config 的鼠標 InputDevice 節應該類似于: Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "PS/2" Option "Device" "/dev/psaux" EndSection 如果仍不能使鼠標工作,則可能在內核中沒有啟用 PS/2 鼠標支持。要解決這一問題,請嘗試裝入適合于您的鼠標的內核模塊,或者編譯一個包括了鼠標支持的最新內核。 XF86Config:深度 現在,我們將看一下為 XFree86 定義了允許的分辨率/顏色深度組合的那部分 XF86Config 文件。您將在 "Screen" 節中看到該信息,該節應該在 XF86Config 文件的末尾或其附近。在 "Screen" 節內部應該至少有一個(可能有幾個)"Display" SubSection,每個 SubSection 都有它自己的“深度”設置。 “深度”指的是用于在屏幕上存儲每個像素的位數,其中“深度”1 是黑白色的,“深度”24 指定真彩色顯示: 深度 顏色數 1 2(黑白) 4 16(16 色調色板) 8 256(256 色調色板) 15 32,768(近似彩色) 16 65,536(近似彩色) 24 16,777,216(真彩色模式;準確的彩色) XF86Config:深度 您可能只要在 "Screen" 節內部添加一行,以指定 XFree86 的缺省顏色深度,這一行將類似于: Section "Screen" DefaultDepth 24 (其余的 "Screen" 節……) EndSection 帶有高“深度”設置,您將有更豐富的顏色選擇。通常,最好是爭取到顯卡將支持的最高深度;建議深度為 15(好)到 24(最佳),因為這些特殊深度將允許顯示照片逼真的圖象。如果深度小于 15,會使一些圖像顯得很不連貫,因為 X 服務器需要使用一種稱為“抖動”的點畫效果來模擬某些顏色。如果您有一塊新式的顯卡,則應該一定能夠使用值為 24 的 DefaultDepth。 XF86Config: 模式 還要將一些缺省分辨率添加到 XF86Config 文件。要完成這一步,將如下面所示的 Modes 行添加到與您在上面所選擇的 DefaultDepth 設置相對應的 "Display" SubSection。建議將相同的 Modes 行添加到每個 "Display" SubSection,避免以后產生混亂。 Modes "1280x1024" "1024x768" "800x600" "640x480" 每對數字就是一個屏幕分辨率。例如,如果使用 "800x600",則會在水平方向上看到 800 個像素,在垂直方向上看到 600 個像素。如果使用更小的數字,則在屏幕上顯示更少的“實際內容”,但您可以看到的每樣東西都會變得更大,更便于閱讀。注意,您不能隨意地簡單地選擇這些模 式名;上面列出的分辨率("1024x768" 等)是編程以使 XFree86 可識別的標準模式??赡芤x您自己的定制分辨率,要完成這一操作需要另外幾個步驟,而且您通常應該堅持這些預定義模式。 XF86Config:消除“壞”模式 一個重要的注解 — 在上一屏的示例中,XFree86 將試圖創建 1280x1024 屏幕,僅當顯卡碰巧不支持 1280x1024 時,才后退到其它分辨率。所以,如果 DefaultDepth 為 24 并且 modes 行類似于前面 "Depth 24" SubSection 的 modes 行,則缺省情況下 X 將嘗試用 24 位彩色來設置一個分辨率為 1280x1024 的屏幕。然而,如果顯卡或監視器不支持分辨率 1280x1024,則 X 將后退到 1024x768、800x600 等,直到找到一個有效模式為止。 XFree86 和模式切換 然而,即使在缺省情況下沒有啟用特定分辨率,但 XFree86 仍允許您在 X 運行時通過使用特殊的組合鍵來切換到它。運行 X 時,通過按下 Ctrl 和 Alt 鍵并輕按數字小鍵盤上的“+”和“-”鍵以在列表中上下移動,可以在所有指定的有效顯示器分辨率之間循環。 我建議從列表中刪除所有高于您通常運行的分辨率,而保留較低分辨率。較低的分辨率有時是有用的,例如,要“放大”桌面上的某一小圖標或文件,或者要玩游戲,它們以稍低于通常使用的分辨率運行效果最佳。通常,游戲會將 X 自動切換到更低的分辨率(如果可用)。 XF86Config:最終的 "Screen" 節 這時,XF86Config 的 "Screen" 節應該類似于下面所顯示的那樣。如果數字有些不同,那不必擔心,只要確保其中的大體順序類似于: Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 8 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection EndSection 一旦將您喜歡使用的分辨率添加到 XF86Config 文件,就可以嘗試再次運行“XFree86”,以查看正在起作用的更高分辨率。只帶有點畫圖案背景,很難注意到屏幕分辨率中的差異,但應該有差異。一旦配 置了 X 以啟動幾個應用程序(這使您能夠更容易地看出屏幕分辨率中的差異),您就可能要回到本教程的這一部分。 XF86Config:監視器支持 正如前面所提到的那樣,如果 XFree86 確定特定顯卡/監視器不支持特定分辨率,那么 XFree86 可能會忽略這一選擇。如果有一個新式的“即插即用”監視器,那么 XFree86 將可以查詢它并確定它所支持的分辨率和刷新速率,并除去完全不在監視器上起作用的所有無效分辨率。然而,如果 XFree86 完全拒絕初始化您知道監視器支持的分辨率和顯示深度,則可能需要調整 XF86Config 文件中的 "Monitor" 節并手工指定監視器的水平和垂直刷新設置。這里是如何完成這一操作的步驟。 XF86Config:監視器支持(續) 首先,需要跟蹤監視器的特定刷新設置。我的特定監視器的水平刷新范圍是從 31.5 到 64.3Khz, 垂直刷新范圍是從 50 到 100Hz。要手工指定我的設置,我已經將 "Monitor" 節編輯成如下所示: Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 31.5 - 64.3 VertRefresh 50 - 100 EndSection 在對您的 "Monitor" 節做適當更改之后,XFree86 現在應該開始正確識別顯示器所支持的分辨率。 XF86Config:其它選項 如果要查找 XF86Config 中的其它設置、它們的含義以及您可能要更改的設置,請參閱 XF86Config 幫助頁面,它十分詳細: # man XF86Config 遠程 X 連接 現在,您已經使 XFree86 的硬件配置起作用,在使用系統范圍的配置之前,還有一個小的步驟。缺省情況下,XFree86 允許客戶機應用程序以幾種不同的方法(包括通過因特網連接)與之對話。這是一種功能強大的特性,如果您打算遠程運行某些 X 客戶機,則需要這一特性并且應該向前跳到 XFree86:服務器章節。 然而,在許多工作站上,從不遠程運行 X 客戶機,并且讓 XFree86 偵聽 TCP/IP 端口只會沒有必要地增加更多安全性方面的危險。要禁用這一功能并杜絕這一潛在的安全性漏洞,可使用您所喜歡的文本編輯器來編輯系統范圍的 startx 腳本: # vi /usr/X11R6/bin/startx 禁用遠程 X 連接 Startx 是一個我們將在本教程的下一部分中詳細討論的 shell 腳本?,F在,向下滾動到第 23 行附近,也就是第二個文本塊的末端。在那里,應該看到行: serverargs="" 將該行更改為: serverargs="-nolisten tcp" 現在,設置了 XFree86,使它能夠在系統上運行。如果您是一名系統管理員,那么這就是您所需要做的事情。然而,如果您是用戶,則可能要添加一些個人設置,以便 X 以您想要的方式運行。 介紹 startx XFree86 扮演的第二個主要角色是服務器,為多個客戶機提供中央服務。在討論 X 時,術語“服務器”和“客戶機”似乎會有點兒混淆。它幫助我記住,就象 Web 服務器一樣,通常只運行一個 X 服務器,而它控制對共享資源的訪問。對于 Web 服務器,這些資源可以是 Web 頁面和其它文件,但對于 X,它們是顯卡、監視器、鍵盤和鼠標。 X 客戶機是一個與服務器交互以打開一個窗口的應用程序或程序,并且在單擊按鈕并輸入時接收輸入。 就象 Web 服務器需要 Web 客戶機(Web 瀏覽器)以使它有用一樣,X 服務器需要 X 客戶機。當用 startx 命令啟動 XFree86 時,會讀取主目錄中的 .xinitrc 文件,以確定哪些程序將自動啟動。這些應用程序幾乎始終是 X 客戶機,可能包括終端仿真器、時鐘、圖形程序和窗口管理器或桌面環境。 .xinitrc 腳本 .xinitrc 文件只是一個 shell 腳本,所以,如果您熟悉編寫 shell 腳本,本節應該對您很有意義。如果您沒有編寫過 shell 腳本,那也可以;它將是一個值得學習的簡單示例,您將很快掌握它的竅門。
|
|
![]() |
![]() |
dsj |
查看公開信息 |
發送悄悄話給dsj |
訪問dsj的個人網站 |
查找dsj發表的更多帖子 |
添加 dsj 到好友列表 |
![]() |
#2 |
注冊用戶
|
創建簡單的 .xinitrc 讓我們先從最簡單的 .xinitrc 文件開始。切換成“普通”用戶,而不是 root 用戶。如果需要,先注銷再登錄。然后,在主目錄中創建一個 .xinitrc 文件,使它成為“可執行的”,并用您所喜歡的文本編輯器打開它: $ cd $ touch .xinitrc $ chmod a+x .xinitrc $ vi .xinitrc 然后,只要將一行放入其中: exec xterm 這將告訴 startx 命令在啟動 X 時運行 xterm。exec 命令會使 xterm 替換當前的 shell 進程,從而節省一些內存。 運行 startx 現在,請試一下 startx: $ startx 屏幕應該變黑并閃爍,就象先前運行 XFree86 時一樣。當這次看到黑白點畫時,還應該看到一個窗口,其中有 shell 提示。這是您在 .xinitrc 中指定的 xterm 客戶機。請注意,該窗口沒有邊框 — 無法在屏幕上拖動它或調整它的大小。我們稍后將修正它。 通過注銷來退出 XFree86 XFree86 將繼續運行,直到 .xinitrc 腳本完成為止。直到在其中列出的每個程序都已啟動并退出后,.xinitrc 腳本才會完成執行。缺省情況下,要在其窗口關閉之后,才會執行 xterm。這意味著,當從 xterm 退出時,將啟動級聯效應:xterm 將關閉,因此 .xinitrc 將完成,因此 X 將關閉,并且最后 startx 將完成,您將恢復到控制臺。 請試一下。在 xterm 窗口中輸入 exit,稍后您應該最終回到文本控制臺。這是退出 X-windows 的推薦方法(而不是依靠 Ctrl-Alt-Backspace 竅門)。 使用桌面環境 現在,需要向 .xinitrc 添加一些東西,以便您就可以移動并調整窗口的大小。這時,有兩種主要的進行方法。一種方法是使用象 KDE 或 Gnome 那樣的桌面環境。另一種方法是您自己選擇所有的啟動程序,并在 .xinitrc 中維護它們。啟動桌面環境更方便,但缺少些靈活性。我建議僅當您熟悉編制 shell 腳本時才使用第二種更為復雜的方法。 如果要使用桌面環境,首先需要安裝它。然后,要使用 Gnome 或 KDE,分別用 exec gnome-session 或 exec startkde 替換 .xinitrc(xterm)中的一行。這樣就行了!現在,您可以跳到 X 客戶機配置章節。 編寫 .xinitrc shell 腳本 如果要編寫一個更復雜的 .xinitrc 腳本,您需要挑選的主要東西是窗口管理器。窗口管理器是一種特殊類型的 X 客戶機,它顯示窗口周圍的“裝飾”,允許移動并調整窗口的大小,啟動程序和做其它有用的事情。有許多窗口管理器可供挑選;一些示例是 sawfish、blackbox、enlightenment、mwm、fvwm2 和 twm,但還有許多其它的。除了 twm,它們都不包括在 XFree86 中,如果要使用它們則需要單獨安裝。 .xinitrc 應該啟動窗口管理器和或許至少一個終端仿真程序,以便在 X 啟動時,可以有地方輸入命令。在編寫 .xinitrc 時要記住的重要事情是,一旦執行完 .xinitrc,X 就將退出。這里是啟動多個 X 客戶機的樣本 .xinitrc: xterm -geometry +1+1 & xterm -geometry +100+100 & exec twm 正如您可看到的那樣,在前兩個 xterm 行之后都附加一個結尾的“&”;這通知 shell 應該在后臺啟動 xterm,并允許 .xinitrc 腳本繼續而不必先等待每個 xterm 退出。最后,我們通過 exec twm 來執行窗口管理器。因為使用 exec 而不是使用 &,twm 將替換當前的 shell 進程,并且當 twm 終止后,XFree86 才會退出。 我們現在到哪兒了 這時,您應該有一個具有完整功能的 X 設置。這是為您的硬件配置的,并且根據您的首選項定制了一些基本設置。這里您可能要花一些時間來熟悉桌面環境或窗口管理器。本教程的其余部分將涉及 X 窗口系統的一些非必要特性,例如,如何使用 X 資源數據庫定制顏色和字體設置,如何在遠程機器上運行 X 客戶機,以及如何使用 X 認證系統。這里的所有指令都應該在 X 內部的終端窗口中以“普通”的非 root 用戶運行,如 xterm、rxvt、gnome-terminal 或 konsole。 X 客戶機配置 可以用無數種方法配置 X 應用程序。每個應用程序都可以使用可用的一種方法或多種方法的組合。一些方法對于特定應用程序是唯一的,它們可以由命令行選項或 /etc 中的配置文件組成,就象其它 UNIX 程序一樣。一些其它配置選項可以通過一些共享的外部程序進行設置,就象 Gnome 和 KDE 應用程序的控制面板。精確地講,如何配置一個 X 應用程序在很大程度上取決于程序的已使用的年限、該程序是否是為特定桌面環境設計的以及創建該程序的開發人員的敏感性。在許多方面,配置是 X 的復雜方面之一,因為還沒有一種配置它的“正式”方法。 X 資源數據庫 通常,X 客戶機已經將它們的配置設置存儲在一個稱為 X 資源數據庫的資源庫中。這個數據庫不象大多數數據庫那樣被保存在磁盤上,而是由 XFree86 將它存儲在內存中。當 X 應用程序啟動時,它掃描 XFree86 的資源數據庫,查找它所關心的那些項。X 資源數據庫中的每個項都是由 ResourceName 及其相應的 Value 組成。 由于單個數據庫用于存儲許多不同 X 應該程序的配置值,所以 ResourceName 不僅需要指定設置的名稱,而且還要指定它所適用的應用程序的名稱。因此,ResourceName 指定以應用程序名開始的層次結構,并且獲取更特定于其本身設置的確切名稱。這有點象文件系統中的路徑名從 / 開始并獲取更特定于確切文件的方法。 使用 xrdb 的演示 例如,可以通過將一個項放入具有 ResourceName "xterm*background" 的數據庫中來設置 xterm 的背景色。要嘗試它,可以通過使用 xrdb 命令,以將項添加到 X 資源數據庫中: $ echo "xterm*background: red" | xrdb $ xterm 您應該看到一個新的 xterm 以火紅的背景出現,而不是缺省的白色背景。名稱中間的星號(*)表示在 xterm 和背景之間可能有多層結構,但我們不必關心它 — 我們想讓 xterm 的所有背景都是紅色的。如果要更精確,可以使用句點(.)來代替星號,但必須指定 xterm 和背景之間的每一層,我們不會真正得到任何東西。 查詢數據庫 在上一步中使用的 xrdb 命令也可用于查詢數據庫。要查看當前設置,可以輸入以下命令: $ xrdb -query xterm*background: red 并且非??隙?,有添加到數據庫的設置。 將 xrdb 添加到 .xinitrc 使用 xrdb 的正常方法是從 .xinitrc 運行它,并使用它來裝入已放置在一個稱為 .Xresources(或者有時候稱為 .Xdefaults)的文件中的設置。要設置它,在任何其它設置之前,將行 xrdb $HOME/.Xresources 添加到 .xinitrc 的頂部。不管 .xinitrc 中還有其它什么(即,不管正在直接使用窗口管理器還是在使用桌面環境),都應該完成這一操作。 創建 .Xresources 文件 接下來,在主目錄中創建 .Xresources 文件,并將您自己的個人應用程序設置放入其中。這里是一些示例(注意,以感嘆號 (!) 開始的行是 xrdb 將忽略的注釋): ! use a light yellow background for everything except xterms *background: lightyellow xterm*background: white ! slim the widget borders on wish (TCL/TK) apps down to one pixel wide wish*borderWidth: 1 ! set the font for xterms to something a bit larger xterm*font: -misc-fixed-*-*-*-*-20-*-*-*-*-*-*-* 資源名和顏色值名 查找特定應用程序使用的 X Resource 設置的最好方法是,瀏覽該應用程序的文檔,特別是它的幫助手冊頁。例如,可以通過運行 man xterm 并搜索字“RESOURCE”來查看 xterm 識別的資源名。 指定顏色的任何資源都將接受 XFree86 識別的任何已命名顏色。這些顏色名和與之對應的紅綠藍三元組數字一起列在文件 /usr/X11R6/lib/X11/rgb.txt 中。除了使用已命名的顏色外,還可以使用下列語法來指定一個 HTML 樣式的 RGB 十六進制三元組: ! specify a pure blue xterm background (#rrggbb) xterm*background: #0000ff 字體名 X 將有點可怕樣子的字符串用作字體名,象上面 xterm*font 后面的字符串??墒悄槐負倪@個。通過使用字體選擇程序,很容易找到您想要的字體名。如果已經安裝 gfontsel,我建議使用它,但標準的 xfontsel 也能很好地工作。這兩個程序向您顯示了一個字體外觀的示例,以及在 .Xresources 文件中使用的完整字體名。 測試 .Xresources 文件 在您要測試 .Xresources 文件的任何時候,您都可以停止并重新啟動 X 服務器,或者只是再次運行 xrdb: $ xrdb $HOME/.Xresources 總之,對 .Xresources 所做的更改不會影響目前正在運行的任何程序。您將需要確保 xrdb 裝入 .Xresources 文件,然后退出任何正在運行的程序并再次啟動它,以查看新設置將如何影響它。 遠程訪問介紹 與許多圖形用戶界面系統不同,設計 X 窗口系統的時候考慮到了遠程訪問。在一臺機器上運行 X 客戶機和顯示其窗口以及由運行于不同機器上的 X 服務器控制是簡單的。 要完成本教程的這部分,將至少需要訪問連接到同一個網絡的兩臺不同 UNIX 機器,并且在這兩臺機器上安裝了 XFree86。我們將您面前的那一臺稱為服務器;另一臺稱為客戶機。雖然都需要安裝 X,但只需要按照本教程中描述的那樣配置“服務器”。還要記住,一定不能將 "-nolisten tcp" 放入“服務器”的 startx 腳本中?!翱蛻魴C”必須安裝了 X 庫,但不必配置 X 服務器或者運行它。事實上,甚至安裝在“客戶機”上的 X 的版本也不必是 XFree86 — 任何新式的 X 實現都能做到。 獲取服務器主機名和顯示號 要開始,先在“服務器”的桌面上打開 xterm(或其它終端仿真程序),執行下列命令并注意輸出。我們將在接下來的幾個步驟中使用這個輸出。 $ hostname servermachine.foo.bar.net $ echo $DISPLAY :0 您應該已熟悉主機名命令,但 DISPLAY 變量對您來說可能是新的。當 XFree86 啟動時,它通常采用 0 作為顯示號。稍后,我們將看一下如何使用這個顯示號。 生成新的 .XAuthority 文件 接下來,如果您還沒有 .Xauthority 文件,則可能需要生成一個。要查找,可使用 xauth 命令: $ xauth list xauth: creating new authority file /home/c/.Xauthority 如果沒有看到這一錯誤消息,而是 xauth 列出了一個或多個認證行,則應該跳過下一步。認證行類似于: servermachine/unix:0 MIT-MAGIC-COOKIE-1 39849ced20eb2b62df87c714a251b8fc 如果看到 creating new authority file 消息,則需要生成一個新的認證密鑰: # xauth generate . 共享的主目錄 現在,要使遠程程序的窗口在“服務器”的桌面上顯示的最簡單方法是,是否兩個機器上用戶的主目錄是相同的。當從某些中央文件服務器通過 NFS 或某些其它網絡文件系統安裝用戶的主目錄時,通常在本地 UNIX 網絡上發生這種情況。如果在“服務器”和“客戶機”上發生這種情況,您需要做的只是告訴“客戶機”在哪里查找 X 服務器,這將在后面的“設置 DISPLAY”屏幕中討論。 抽取認證項 然而,如果兩個機器不共享主目錄,則必須做一點事情,以授予“客戶機”與“服務器”談話的權限,而不必訪問整個資源。要做到這一點,需要將您先前創建(或已經存在)的認證項復制到遠程“客戶機”。首先,必須從“服務器”抽取項: $ xauth nextract myauth.xa $DISPLAY 現在,文件 myauth.xa 包含 X 認證數據;您應該注意,不要將該文件放在其它人能夠看到的地方,或者在公用網絡之間不加保護地傳送它。一定要將它復制到“客戶機”上的主目錄,所以我建議使用 scp(ssh 包的一部分)。 $ scp myauth.xa clientmachine:myauth.xa $ rm myauth.xa 接著,使用 rlogin、ssh、telnet 或您通常用來訪問其它機器的任何命令來注冊到“客戶機”。然后,將已復制的認證項合并到“客戶機”上的 .Xauthority: $ xauth nmerge myauth.xa $ rm myauth.xa 設置 DISPLAY “客戶機”仍需要知道在哪里查找正在運行的 XFree86 服務器。通過設置 DISPLAY 變量以指向“服務器”告訴它。確保注冊到“客戶機”,并使用您先前打印的主機名和顯示號。如果正在使用類似 Bourne 的 shell,請執行以下命令: $ DISPLAY=servermachine.foo.bar.net:0 $ export DISPLAY 否則,如果正在使用類似 csh 的 shell,則執行以下命令: $ setenv DISPLAY servermachine.foo.bar.net:0 正如您所看到的那樣,我們使用了“服務器”的名稱,并且末尾附上了顯示號。 遠程運行 xeyes 現在,您準備運行“客戶機”上的程序并從“服務器”控制它: $ xeyes 現在,您應該看到屏幕上彈出一雙大眼睛(對您的鼠標指針“不懷好意”)。該程序正在一個遠程 UNIX 機器(“客戶機”)上運行,然而正在與本地工作站(“服務器”)上的鼠標和顯示器進行交互。要使 xeyes 停止,只要通過在終端仿真器窗口中按下 Ctrl-C 來退出正在“客戶機”上運行的 xeyes 程序。然后,眼睛將立即從“服務器”的顯示器上消失。 結束語 現在,您已看過了 XFree86 配置的許多方面。您使用了幾個不同的配置文件(XF86Config、startx、xinitrc、.Xresources 和 .Xauthority)。更改了遠程訪問和認證設置,并正確設置了 XFree86 驅動程序?,F在,您應該擁有控制 X 窗口環境和精通 UNIX 桌面經驗所需的工具。 網站 網上有許多有關 X 服務器的常規信息和 XFree86 的特殊信息。這里是一些開始查找更詳細信息的好去處: XFree86 主頁(http://www.xfree86.org/ )有用于下載的最新版本、安裝說明、硬件支持列表和其它信息。 來自 X Consortium(http://www.x.org/ )(The Open Group 的一個組織)的 X 站點分發了正式的 X 發行版(而不是 XFree86)。它們的站點包括有關 X 協議、服務器設計等信息,主要面向有經驗的 X 開發人員。 “直接繪制基礎設施(Direct Rendering Infrastructure(DRI))”(http://dri.sf.net/ )是為安全而快速的 OpenGL 實現提供的框架,從而為許多圖形卡在 XFree86 上運行高速 3D 游戲和圖形打開大門。 DRI 不支持 nVidia 圖形卡;但幸運的是,NVIDIA 為 Linux 提供它們自己的高質量加速 XFree86 可兼容驅動程序(http://www.nvidia.com/view.asp?PAGE=linux ),其中包括新式的加速 OpenGL 實現。該頁面提供對 Linux 上 XFree86 驅動程序的訪問。 從 http://gnome.org/ 下載 GNOME 桌面和應用程序。 流行的“K 桌面環境(KDE)”(http://www.kde.org/ )包括 KOffice 和 Konqueror Web 瀏覽器。 |