提到 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如下:
Aclearcase/" target="_blank" >ccel
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/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/chinese/" ------> 如果你有使用
xcin+crxvt或
cxwin的话, 中
文字形都摆在
此, 当然别忘
了自己加上这
个路径, 否则
是无法执行的
EndSection
# **********************************************************************
# Server flags section. 可以在此设定一些 X server的参数(期标)
# **********************************************************************
Section "ServerFlags"
# server 不当离开时, 自动产生core
# NoTrapSignals
# 可以将Ctrl+Alt+BS退出 server 的功能取消
# DontZap
# 可将Ctrl+Alt++ or +- 更换解析度的功能取消
# DontZoom
EndSection
# **********************************************************************
# Keyboard section
# **********************************************************************
Section "Keyboard"
Protocol "Standard"
# 如果是用Xqueue的方式就可以将上一行comment掉, 保留下一行, 否则则comment掉下一行, 保留上一行
# Protocol "Xqueue"
# 设定keyboard的重覆速度
AutoRepeat 500 5
# ServerNumLock
# 指定那几个led 可以让client 自行控制
# Xleds 1 2 3
# 设定下列键
# LeftAlt Meta
# RightAlt ModeShift
# RightCtl Compose
# ScrollLock ModeLock
EndSection
# **********************************************************************
# Pointer section. 设定滑鼠
# **********************************************************************
Section "Pointer"
Protocol "Microsoft"
Device "/dev/mouse"
# 如果是用Xqueue的方式就可以将上一行comment掉, 保留下一行, 否则则comment掉下一行, 保留上一行
# Protocol "Xqueue"
# 对某些特定的Logitech滑鼠的鲍率
# BaudRate 9600
# SampleRate 150
# 给两键mouse模拟三键mouse
# 模拟三键时两键同时按下的时间
Emulate3Buttons
Emulate3Timeout 50
# 给一些logitech三键mouse用的
# ChordMiddle
EndSection
# **********************************************************************
# Monitor section 显示器的设定
# **********************************************************************
Section "Monitor"
Identifier "Generic Multisync"
VendorName "Unknown"
ModelName "Unknown"
# HorizSync 的单位是 kHz
# 请自行更改设定值
HorizSync 30-64
# VertRefresh 的单位是 Hz
# 也请自行更改设定值
VertRefresh 50-100
# Modes 可以有两种方式设定, 1.都设在同一行 2.分行设定
# 以下两种模式是相同的
# ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace
# Mode "1024x768i"
# DotClock 45
# HTimings 1024 1048 1208 1264
# VTimings 768 776 784 817
# Flags "Interlace"
# EndMode
# xf86config会自动设定一些标准的mode. 如果模式不合显示器的规格, 则X 会自动删除
# 所以你不用事先将它删除(除非有的模式会造成你的显示器无法显示)
# 在这些模式中, X 自然会找出最合适的来使用
# 640x400 @ 70 Hz, 31.5 kHz hsync
Modeline "640x400" 25.175 640 664 760 800 400 409 411 450
# 640x480 @ 60 Hz, 31.5 kHz hsync
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
# 800x600 @ 56 Hz, 35.15 kHz hsync
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
Modeline "1024x768" 44.9 1024 1048 1208 1264 768 776 784 817 Interlace
# 640x480 @ 72 Hz, 36.5 kHz hsync
Modeline "640x480" 31.5 640 680 720 864 480 488 491 521
# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600" 40 800 840 968 1056 600 601 605 628 +hsync +vsync
# 800x600 @ 72 Hz, 48.0 kHz hsync
Modeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync
# 1024x768 @ 60 Hz, 48.4 kHz hsync
Modeline "1024x768" 65 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
# 1024x768 @ 70 Hz, 56.5 kHz hsync
Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync
Modeline "1280x1024" 80 1280 1296 1512 1568 1024 1025 1037 1165 Interlace
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
# 1280x1024 @ 61 Hz, 64.2 kHz hsync
Modeline "1280x1024" 110 1280 1328 1512 1712 1024 1025 1028 1054
# 1280x1024 @ 74 Hz, 78.85 kHz hsync
Modeline "1280x1024" 135 1280 1312 1456 1712 1024 1027 1030 1064
# 1280x1024 @ 76 Hz, 81.13 kHz hsync
Modeline "1280x1024" 135 1280 1312 1416 1664 1024 1027 1030 1064
# Low-res Doublescan modes
# If your chipset does not support doublescan, you get a 'squashed'
# resolution like 320x400.
# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio
Modeline "320x200" 12.588 320 336 384 400 200 204 205 225 Doublescan
# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio
Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
# 320x240 @ 72 Hz, 36.5 kHz hsync
Modeline "320x240" 15.750 320 336 384 400 240 244 246 262 Doublescan
# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio
ModeLine "400x300" 18 400 416 448 512 300 301 602 312 Doublescan
# 400x300 @ 60 Hz, 37.8 kHz hsync
Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
# 400x300 @ 72 Hz, 48.0 kHz hsync
Modeline "400x300" 25 400 424 488 520 300 319 322 333 Doublescan
# 480x300 @ 56 Hz, 35.2 kHz hsync, 8:5 aspect ratio
ModeLine "480x300" 21.656 480 496 536 616 300 301 302 312 Doublescan
# 480x300 @ 60 Hz, 37.8 kHz hsync
Modeline "480x300" 23.890 480 496 576 632 300 301 303 314 Doublescan
# 480x300 @ 63 Hz, 39.6 kHz hsync
Modeline "480x300" 25 480 496 576 632 300 301 303 314 Doublescan
# 480x300 @ 72 Hz, 48.0 kHz hsync
Modeline "480x300" 29.952 480 504 584 624 300 319 322 333 Doublescan
EndSection
# **********************************************************************
# Graphics device section. 显示卡设定
# **********************************************************************
# Standard VGA Device: 标准的vga设定
Section "Device"
Identifier "Generic VGA"
VendorName "Unknown"
BoardName "Unknown"
Chipset "generic"
# VideoRam 256
# Clocks 25.2 28.3
EndSection
# Sample Device for accelerated server: 加速卡的□例设定
# Section "Device"
# Identifier "Actix GE32+ 2MB"
# VendorName "Actix"
# BoardName "GE32+"
# Ramdac "ATT20C490"
# Dacspeed 110
# Option "dac_8_bit"
# Clocks 25.0 28.0 40.0 0.0 50.0 77.0 36.0 45.0
# Clocks 130.0 120.0 80.0 31.0 110.0 65.0 75.0 94.0
# EndSection
Section "Device"
Identifier "My Video Card"
VendorName "Unknown"
BoardName "Unknown"
#VideoRam 1024
# Insert Clocks lines here if appropriate
EndSection
# **********************************************************************
# Screen sections 萤幕设定
# **********************************************************************
# The Colour SVGA server 对SVGA的设定
Section "Screen"
Driver "svga"
Device "Generic VGA"
#Device "My Video Card"
Monitor "Generic Multisync"
Subsection "Display"
Depth 8
#Modes "640x480" "800x600" "1024x768"
ViewPort 0 0
Virtual 320 200
#Virtual 1024 768
EndSubsection
EndSection
# The 16-color VGA server 16色VGA的设定
Section "Screen"
Driver "vga16"
Device "Generic VGA"
Monitor "Generic Multisync"
Subsection "Display"
Modes "640x480" "800x600"
ViewPort 0 0
Virtual 800 600
EndSubsection
EndSection
# The Mono server 黑白设定
Section "Screen"
Driver "vga2"
Device "Generic VGA"
Monitor "Generic Multisync"
Subsection "Display"
Modes "640x480" "800x600"
ViewPort 0 0
Virtual 800 600
EndSubsection
EndSection
# The accelerated servers (S3, Mach32, Mach8, 8514, P9000, AGX, W32, Mach64) 加速卡的设定
Section "Screen"
Driver "accel"
Device "My Video Card"
Monitor "Generic Multisync"
Subsection "Display"
Depth 8
Modes "800x600" "1024x768" "640x480"
ViewPort 0 0
Virtual 1024 900
EndSubsection
Subsection "Display"
Depth 16
Modes "640x480" "800x600"
ViewPort 0 0
Virtual 800 600
EndSubsection
Subsection "Display"
Depth 32
Modes "640x400"
ViewPort 0 0
Virtual 640 400
EndSubsection
EndSection