X Window System (X11) 是 UNIX 中既成現實標準的圖形化使用者介面。X 採網路結構,可讓應用程式在一個主機上啟動而在透過任何種類的網路 (LAN 或網際網路) 連接的其他主機上顯示。本章說明 X Window System 環境的安裝與最佳化,並提供有關在 SUSE® Linux Enterprise Desktop 中使用字型的背景資訊。
依照預設,X Window System 是以 SaX2 介面設定的,如第 5.2 節「Setting Up Graphics Card and Monitor」 (第 5 章「Setting Up Hardware Components with YaST」, ↑部署指南) 中所述。但也可手動編輯組態檔案進行設定。
![]() | 錯誤的 X 組態可能會損壞您的硬體 |
|---|---|
進行 X Window System 組態時請務必小心。在完成組態之前,絕對不可以啟動 X Window System。錯誤設定的系統會對硬體造成無法挽回的損害 (特別是對固定頻率的監視器)。本書與 SUSE Linux Enterprise Desktop 的創作者對於產生的任何損害概不負責。本資訊是仔細研究的結果,但不保證提及的所有方法都正確以及不會損害您的硬體。 | |
指令 sax2 可建立 /etc/X11/xorg.conf 檔案。這是 X Window System 的主要組態檔。這裡有您的圖形卡、滑鼠以及顯示器相關的所有設定。
![]() | 使用 X -configure |
|---|---|
若之前嘗試 SUSE Linux Enterprise Desktop 的 SaX2 失敗,則請使用 X -configure 設定您的 X 設定。如果您的設定包含專屬的僅二進位驅動程式,則 X -configure 無法工作。 | |
下列段落會描述組態檔 /etc/X11/xorg.conf 的結構。它由多個段落組成,每一個都會處理組態的某個層面。每一個段落以關鍵字 Section <designation> 開始,並以 EndSection 結束。下列轉換會套用到所有部份:
Section "designation" entry 1 entry 2 entry n EndSection
可用的段落類型列出在 表格 14.1 「/etc/X11/xorg.conf 中的段落」 中。
表格 14.1. /etc/X11/xorg.conf 中的段落¶
Monitor、Device 與 Screen 將做詳細說明。如需其他段落的進一步資訊,請參閱 X.Org 和 xorg.conf 的手冊頁。
xorg.conf 中可能有多個不同的 Monitor 和 Device 段落。也可能有多個 Screen 段落。ServerLayout 段落決定使用這些段落中的哪些段落。
Screen 段落是由 monitor 和 device 段落組成,已決定要使用的解析度和色彩深度。Screen 段落可能如同 範例 14.1 「/etc/X11/xorg.conf 檔的Screen段落」 一般。
範例 14.1. /etc/X11/xorg.conf 檔的Screen段落¶
Section "Screen"DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1152x864" "1024x768" "800x600"
Virtual 1152x864
EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection SubSection "Display" Depth 32 Modes "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" EndSubSection Device "Device[0]" Identifier "Screen[0]"
Monitor "Monitor[0]" EndSection
Device 段落描述特定的圖形卡。xorg.conf 中的設備項目數沒有限制,但每一個設的名稱要使用關鍵字 Identifier (識別碼) 來區別。若您安裝多張圖形卡,段落將只依序編號。第一個稱為 Device[0],第二個稱為 Device[1],以下類推。以下檔案顯示摘自一台使用 Matrox Millennium PCI 圖形卡的電腦 (如 SaX2 所設定) 之 Device 區段的一段文字:
Section "Device" BoardName "MGA2064W" BusID "0:19:0"Driver "mga"
Identifier "Device[0]" VendorName "Matrox" Option "sw_cursor" EndSection
X 伺服器或驅動程式的行為可以透過附加的選項來操作。Device 段落中的選項 sw_cursor 便是一個範例。它可以停用硬體滑鼠游標並描述使用軟體的滑鼠指標。驅動程式模組不同,可用的選項也各異 (可以在 /usr/share/doc/packages/目錄內驅動程式模組的描述檔案中找到)。通常情況下,也可以在手冊頁 (man 套件名稱xorg.conf、man 4 和 man <驅動程式模組>4 ) 中找到有效的選項。
晶片
如果圖形卡有多個視訊連接器,可將此卡的各個不同設備設定為單個檢視窗。請使用 SaX2 以此方式設定圖形介面。
和 Device 段落類似,Monitor 和 Modes 段落分別描述一個顯示器。組態檔 /etc/X11/xorg.conf 可以含有沒有個數限制的 Monitor 段落。每個 Monitor 段落都會參考帶有 UseModes 行 (若可用) 的 Modes 段落。如果沒有可用於 Monitor 段落的 Modes 段落,X 伺服器將從一般同步值計算適當的值。ServerLayout 段落指定相關的 Monitor 段落。
顯示器定義應該由有經驗的使用者進行設定。模式行是 Monitor 段落的重要組成部份。模式行可設定對應解析度的水平與垂直計時。顯示器內容,特別是允許的頻率,儲存在 Monitor 區段中。可以使用公用程式 cvt 產生標準 VESA 模式。如需詳細資訊,請參閱 cvt 手冊頁 (man cvt)。
![]() | |
除非您深入瞭解監視器與圖形卡功能,否則請勿變更模式行,因為這樣做可能會嚴重損壞您的監視器。 | |
想自行開發顯示器描述的人員,應非常熟悉 /usr/share/X11/doc 文件的內容。安裝 xorg-x11-doc 套件以尋找 PDF 與 HTML 頁面。
在今天,需要手動指定模式行的的情況非常少見。如果您使用先進的多頻顯示器,依規則,X 伺服器可以透過 DDC 直接從顯示器讀取允許頻率以及最佳解析度,如 SaX2 組態區段中所述。如果因某種原因而不適用,請使用 X 伺服器內附的一種 VESA 模式。此模式對大多數圖形卡與顯示器組合都起作用。
在 SUSE Linux Enterprise Desktop 上安裝其他字型非常簡單。只要將字型複製到位於 X11 字型路徑中的任何目錄即可 (請參閱第 14.2.1 節「X11 核心字型」)。若要啟用字型,安裝目錄應為 /etc/fonts/fonts.conf 中所設定目錄的子目錄 (請參閱第 14.2.2 節「Xft」),或以 /etc/fonts/suse-font-dirs.conf 包含於此檔案中。
以下內容摘自 /etc/fonts/fonts.conf。此檔案為適用於大多數組態的標準組態檔案。它還定義了包含目錄 /etc/fonts/conf.d。在此目錄中,所有以兩位數值開頭的檔案或符號連結將由 fontconfig 載入。關於此功能的詳細說明,請參閱 /etc/fonts/conf.d/README。
<!-- Font directory list --> <dir>/usr/share/fonts</dir> <dir>/usr/X11R6/lib/X11/fonts</dir> <dir>/opt/kde3/share/fonts</dir> <dir>/usr/local/share/fonts</dir> <dir>~/.fonts</dir>
/etc/fonts/suse-font-dirs.conf 是自動產生的,目的是為了將 (多半是協力廠商) 應用程式 (如 LibreOffice、Java 或 Adobe Reader) 中包含的字型拉進來。常見項目如下所示:
<dir>/usr/lib/Adobe/Reader9/Resource/Font</dir> <dir>/usr/lib/Adobe/Reader9/Resource/Font/PFM</dir>
若要在整個系統上安裝其他字型,請以 root 身分手動將字型檔案複製到合適的目錄,如 /usr/share/fonts/truetype。此外,這個作業可以透過「KDE 控制中心」中的 KDE 字型安裝程式來執行。結果完全相同。
您也可以建立符號連結,來替代複製實際字型。例如,如果您擁有掛接 Windows 分割區上的授權字型並且想要使用它們,便可能需要這樣做。接下來,請執行 SuSEconfig --module fonts 。
SuSEconfig --module fonts 會執行指令碼 /usr/sbin/fonts-config 來處理字型組態。關於此指令碼的詳細資訊,請參閱其手冊頁 (man fonts-config )。
點陣字型、TrueType 與 OpenType 字型以及 Type1 (PostScript) 字型的程序完全相同。所有這些字型類型可安裝到任何目錄。
X.Org 包含兩種完全不同的字型系統:舊的 與新設計的 系統。以下數節簡短描述這兩種系統。
目前,X11 核心字型系統不僅支援點陣字型,也支援縮放字型如 Type1 字型、TrueType 與 OpenType 字型。縮放字型僅只支援不需要消除鋸齒及子像素 (subpixel) 處理的字型,含有更多語言的文字符號的縮放字型所需的載入時間也越長。也支援 Unicode 字型,但是處理速度較慢且需要更多的記憶體。
X11 核心字型系統具有某些先天性的弱點。該字型系統已過時,無法再以任何有效的方法擴充。保留這種字型是為了回溯相容,但最好儘可能使用更先進的 Xft 和 fontconfig 系統。
為了能夠進行作業,X 伺服器必須知道它有哪些字型可用,以及系統中的哪些地方可以找到這些字型。這是由 FontPath 變數負責處理,該變數包含所有有效系統字型目錄的路徑。每個目錄中的 fonts.dir 檔案,可以列出目錄中可用的字型有哪些。FontPath 是 X 伺服器在啟動時產生的。它會在 /etc/X11/xorg.conf 組態檔案的 FontPath 項目中,搜尋一個有效的 fonts.dir 檔案。這些項目會在 Files 區段中找到。使用 xset q 顯示實際的 FontPath。也可以使用 xset 在執行時變更此路徑。若要新增其他路徑,請使用 xset+fp <path>。若要移除不要的路徑,請使用 xset-fp <path>。
如果 X 伺服器已經啟動,掛接目錄中新安裝的字型可以透過指令 xsetfp rehash 來設成可用。這個指令以 SuSEconfig--module fonts 執行。由於指令 xset 必須存取執行中的 X 伺服器,因此只有在 SuSEconfig--module fonts 是從可存取之執行中 X 伺服器的外圍程序啟動時才有效。實現此目的最簡單的方法是輸入 su 和 root 密碼,以取得 root 權限。su 可以將啟動 X 伺服器之使用者的存取權傳送到 root 外圍程序。要檢查字型是否安裝正確以及是否可以透過 X11 核心字型系統來使用,請使用 xlsfonts 指令來列出所有可用字型。
根據預設,SUSE Linux Enterprise Desktop 使用 UTF-8 地區設定。因此,最好使用 Unicode 字型 (在 xlsfonts 的輸出中,字型名稱的結尾為 iso10646-1)。xlsfonts| grep iso10646-1 可以列出所有可用的 Unicode 字型。SUSE Linux Enterprise Desktop 隨附的 Unicode 字型絕大部分都至少具有歐洲語言所需的文字符號 (舊編碼方式為 iso-8859-*)。
從一開始,Xft 的程式設計人員便確保了能支援平滑美觀的可縮放字型。如果使用 Xft,字型將由使用字型的應用程式處理,而不是如 X11 核心字型系統那樣由 X 伺服器處理。在這種方式,個別的應用程式需要存取實際字型檔並完全控制文字符號的處理方式。多種語言文字的正確顯示基礎便是由此構成。直接存取字型檔對於在列印中內嵌字型,來保證列印出的外觀和螢幕輸出一致非常有用。
在 SUSE Linux Enterprise Desktop 中,KDE 和 GNOME 這兩個桌面環境、Mozilla 以及其他許多應用程式預設已使用 Xft。越來越多的應用程式已經從舊 X11 核心字型系統改用 Xft。
Xft 使用 fontconfig 程式庫來尋找字型以及操作字型的處理方式。fontconfig 的內容由全域組態檔案 /etc/fonts/fonts.conf 控制。特殊組態應新增至 /etc/fonts/local.conf 與使用者特定的組態檔案 ~/.fonts.conf。這些 fontconfig 組態檔每一個都必須以下列開頭
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>
並以下列結束
</fontconfig>
要新增字型搜尋目錄,請附加下列行:
<dir>/usr/local/share/fonts/</dir>
不過,通常並不需要這樣做。依預設,使用者專屬目錄 ~/.fonts 已經輸入到 /etc/fonts/fonts.conf 中。因此,安裝額外的字型時,只要將它們複製到 ~/.fonts 即可。
您還可以插入操作字型外觀的規則。例如,輸入
<match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>
可以關閉所有字型的消除鋸齒效果,
<match target="font"> <test name="family"> <string>Luxi Mono</string> <string>Luxi Sans</string> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match>
可以關閉特定字型的消除鋸齒效果。
依預設,大部份的應用程式都是使用字型名稱 sans-serif (或相等的 sans)、serif 或 monospace。這些都不是真實的字型,而是可以解析為適當字型的別名,視語言設定而定。
使用者很容易在 ~/.fonts.conf 新增規則來將這些別名解析為屬意的字型:
<alias> <family>sans-serif</family> <prefer> <family>FreeSans</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>FreeSerif</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>FreeMono</family> </prefer> </alias>
因為幾乎所有的應用程式都預設使用這些別名,所以幾乎整個系統會受到影響。這樣,您幾乎可以簡單地隨處使用喜歡的字型而不必針對個別應用程式修改字型設定。
請使用指令 fc-list 來找出已安裝且可用的字型。例如,指令 fc-list 指令可傳回所有字型的清單。若要找出含有希伯來文 (:lang=he) 所有文字符號的可用縮放字型 (:scalable=true)、這些字型的名稱 (family)、樣式 (style)、粗細 (weight) 以及包含這些字型的檔案名稱,請輸入下列指令:
fc-list ":lang=he:scalable=true" family style weight
這個指令的輸出看起來如下:
Lucida Sans:style=Demibold:weight=200 DejaVu Sans:style=Bold Oblique:weight=200 Lucida Sans Typewriter:style=Bold:weight=200 DejaVu Sans:style=Oblique:weight=80 Lucida Sans Typewriter:style=Regular:weight=80 DejaVu Sans:style=Book:weight=80 DejaVu Sans:style=Bold:weight=200 Lucida Sans:style=Regular:weight=80
可以使用 fc-list 來查詢的重要參數:
表格 14.2. fc-list 的參數¶
|
參數 |
意義及可用值 |
|---|---|
|
|
字型系列的名稱,例如, |
|
|
字型的製造商,例如, |
|
|
字型樣式,例如, |
|
|
字型支援的語言,例如, |
|
|
字型粗細,例如 |
|
|
通常,斜度 |
|
|
字型檔案的名稱。 |
|
|
|
|
|
|
|
|
|
|
|
以點表示的字型大小。這個選項和 fc-list 一起使用時只對點陣字型有意義。 |
請安裝 xorg-x11-doc 和 howtoenh 套件來取得更多有關 X11 的深度資訊。可在專案的首頁 http://www.x.org 上找到關於 X11 開發的更多資訊。
手冊頁中詳細描述了 xorg-x11-driver-video 套件隨附的很多驅動程式。例如,如果使用 nv 驅動程式,可以在 man 4 nv 中找到有關此驅動程式的詳細資訊。
有關協力廠商驅動程式的資訊可在 /usr/share/doc/packages/<套件名稱> 中找到。例如,安裝套件後,x11-video-nvidiaG01 的文件就位於 /usr/share/doc/packages/x11-video-nvidiaG01 中。