提到 X 自然就不能不提到 XF86Config 這個檔案。XFree86 就是利用 XF86Config 來作一些 X 的初始設定。在你看完這篇文章時,你或許或感到無助,因為這麽大一篇設定檔 打到完不就掛了,還談什麽設定。其實你不用擔心,因為在 X 中已經提供了幾個相當不錯的X 設定程式給你使用了,其中最基本的就是xf86config 這個檔,在redhat中附了 Xconfigurator 也不錯,而最新的就是 XF86Setup,提供了圖形的介面,更酷,更方便 ,更好用,這些後面我會再介紹。當始啟動 X 時,它會在下列的路徑中尋找這個檔案:
/etc/XF86Config
XRoot/lib/X11/XF86Config.hostname
XRoot/lib/X11/XF86Config
XRoot表示X11的路徑.
XF86Config是經由許多區段所組成的。每個區段都有一個固定格式如下:
Section "SectionName"
SectionEntry
...
EndSection
而 section names 可為:
Files (File pathnames)
ServerFlags (Server flags)
Keyboard (Keyboard configuration)
Pointer (Pointer configuration)
Monitor (Monitor description)
Device (Graphics device description)
Screen (Screen configuration)
其中檔案區段(File section)是用來指定內定的字形路徑和 RGB 資料路徑。當然這些路 徑也是可由命令列的方式設定。至於entry的設定如下:
FontPath "path"
FontPath可以是多個的,分別列在不同行中。X11R6 也允許 X 從 font server 下
設定字形,如 fontpath "/usr/X11R6/lib/X11/fonts/misc/,tcp/zok:7100" 就是用來告知 X server 在本端的 /usr/X11R6/lib/X11/fonts/misc 路徑中,tcp/zok 這個主 機,port 為 7100 的地方找字形
RGBPath "path"
設定 RGB色彩資料庫的路徑.
ServerFlags section 中, 可以設定一些X Server的雜項.如下:
NoTrapSignals
這個可以防止X server因為不當的錯誤而自動離開。相對的, 它會結束 X ,然後在發生錯誤的地方產生core這個檔. 一般來說, 除非是X 的除錯人員, 否則我們 是用不到這個選項的.
DontZap
這個選項可以取消經由 Ctrl+Alt+Backspace 離開X 的功能.
DontZoom
我們可利用Ctrl+Alt+Keypad-Plus和Ctrl+Alt+Keypad-Minus來調整X 的解析度, 開啟DontZoom選項後就會取消這個功能. Keyboard section 當然就是用來設定一些keyboard的設定了.
Protocol "kbd-protocol"
kbd-protocol可以是Standard 或 Xqueue.
AutoRepeat delay rate
更改keyboard 重覆的速度. 但並非所有的平都可以使用.
ServerNumLock
讓X server控制 NumLock鍵. 如此可使應用程式使用number pad.
LeftAlt mapping
RightAlt mapping
AltGr mapping
ScrollLock mapping
RightCtl mapping
允許內定值設定到上列的key中.mapping 的值可為:
Meta
Compose
ModeShift
ModeLock
ScrollLock
Control
XLeds led
允許client AP應用這3 個led 鍵(Scroll Lock, Caps Lock & Num Lock). led的值為1 至3 .
VTSysReq
可以讓非SYSV但支援VT switching的系統使用SYSV-style VT switch
sequence.
Pointer section 用來指定游標的裝置和參數.
Protocol "protocol-type"
指定游標裝置的協定, protocol-type 如下:
BusMouse
Logitech
Microsoft
MMSeries
Mouseman
MouseSystems
PS/2
MMHitTab
Xqueue
OSMouse
Device "pointer-dev"
設定X server應用那個裝置(如/dev/tty00 或 /dev/mouse), 但若是用
Xqueue 或 OSMouse則不須指定.
BaudRate rate
設定序列滑鼠的鮑率. 有些mouse可以自行設定速率, 其它的則是經由 電腦來設定.內定值是1200.
Emulate3Buttons
可以讓兩鍵的mouse模擬三鍵的mouse. 模擬的方式是利用同時按下兩個鍵.
Emulate3Timeout timeout
模擬三鍵時, server等待兩鍵同時按下的時間. 內定值是 50ms
(milliseconds).
ChordMiddle
當middle鍵按下時, 送出left+right的事件.
SampleRate rate
ClearDTR
ClearRTS
這三個entry只適用在某些mouse中(LogiTech和MouseSystem).
Monitor sections 用來定義顯示器的規格和它可使用的模式. 在XF86Config中可以有多 個Monitor-section存在.
Identifier "ID string"
指定這個顯示器的名稱. 每個Monitor section只能有一個唯一的顯示器名稱.
VendorName "vendor"
設定顯示器制造公司名稱.
ModelName "model"
顯示器的model.
HorizSync horizsync-range
顯示器的水平掃描□圍.其值可用逗號分開, 如果是□圍則可用減號相 連.單位是KHz.
VertRefresh vertrefresh-range
顯示器的垂直覆新值. 其值可用逗號分開, 如果是□圍則可用減號相連.單位是KHz.
Gamma gamma-value(s)
gamma的顏色調整值. 可以為單一值或是三個分開的 RGB值. 但並非所
有的X server
都可以使用這個功能.
Mode "name"
Video Mode設定的啟始, EndMode為其結束. 其中的內容如下:
DotClock clock
HTimings hdisp hsyncstart hsyncend htotal
VTimings vdisp vsyncstart vsyncend vtotal
Flags "flag" ...
flag的選項有 :
"Interlace" : 顯示器是交錯式的
"DoubleScan": 雙重掃描式的
"+HSync"和"-HSync": 調整HSync信號
"+VSync"和"-VSync": 調整VSync信號
"Composite" : 指定顯示器所提供的composite sync
"+Sync"和"-VSync": 調整VSync信號
modeline "name" mode-description
可以將上述功能合並在一行.
Device sections 可以設定圖形裝置(顯示卡). 在XF86Config中可以有多個 DEVICE
section.
Identifier "ID string"
設定名稱, 以便Screen section中可以辯認.每個Device section中只能有一個名稱.
VendorName "vendor"
顯示卡制造商的名稱
BoardName "model"
顯示卡型號
Chipset "chipset-type"
指定顯示卡的chipset. 但通通是不用我們去設定的, 因為
X server會自動偵測.
Ramdac "ramdac-type"
指定RAMDAC, 但和上一個理由一樣, 通通我們也是不用去設
定它.
DacSpeed speed
除非要指定的速率和RAMDAC上印的不一, 否則也是不用理它.
Clocks clock ...
設定顯示卡的clock. 建議一定要設.
VideoRam mem
顯示卡的記憶體大小. X 會自動去偵測.
Screen sections用於設定X server所使用的顯示卡和顯示器.
Driver "driver-name"
每個Screen section必須由Driver entry開始, driver-name也必須是唯一的.driver-name如下:
Accel
Mono
SVGA
VGA2
VGA16
Accel是用於加速卡.mono單色. vga2和vga16分別是使用2 bits和4bits顏色.
Device "device-id"
使用的device
Monitor "monitor-id"
使用的monitor
ScreenNo scrnum
Screen的Number.
BlankTime time
螢幕保護. time分鐘不動後螢幕就不顯示.內定10分鐘.
SuspendTime time
省電時間. time分鐘不動後螢幕進入省電模式.內定15分鐘.
OffTime time
停電時間. time分鐘不動後螢幕進入停電模式.內定30分鐘.
SubSection "Display"
設定色彩bit數, 虛擬螢幕大小, 解析度,和其它.
# File generated by xf86config.
# 我的XF86config檔
#
# Copyright (c) 1994 by The XFree86 Project, Inc.
#
#
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.---------------- 這是重點.
# **********************************************************************
# Files section. 在此設定rgb檔和字形的路徑
# **********************************************************************
Section "Files"
# 在這特別提到你不用加上附檔名, 因為內定值它會自行辨認
RgbPath "/usr/X11R6/lib/X11/rgb"
# 接著加上字形路徑
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib
螢幕保護. time分鐘不動後螢幕就不顯示.內定10分鐘.
SuspendTime time
省電時間. time分鐘不動後螢幕進入省電模式.內定15分鐘.
OffTime time
停電時間. time分鐘不動後螢幕進入停電模式.內定30分鐘.
SubSection "Display"
設定色彩bit數, 虛擬螢幕大小, 解析度,和其它.
# File generated by xf86config.
# 我的XF86config檔
#
# Copyright (c) 1994 by The XFree86 Project, Inc.
#
#
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.---------------- 這是重點.
# **********************************************************************
# Files section. 在此設定rgb檔和字形的路徑
# **********************************************************************
Section "Files"
# 在這特別提到你不用加上附檔名, 因為內定值它會自行辨認
RgbPath "/usr/X11R6/lib/X11/rgb"
# 接著加上字形路徑
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib