原文见麦克马拉曼的http://www.linuxext.com/article_view.asp?id=18
XF86Conifg文件的详细注解,强烈建议初学者看看.谢谢麦克马拉曼兄.
X-Window系统给我们提供了许多配置工具,但最终也是生成了一个配置文件:XF86Config,它存放在/etc/X11目录下。如果你能够直接 读懂它,那么对其做一些小的调整,那将是十分容易的事。现在我们就一起来分析一下这个配置文件。它分成了许多个小节,每个小节分别配置一部分。
一、 File配置小节
设置X Window系统所用的字体路径,下面是一个配置实例:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
FontPath "unix/:-1"
EndSection
其中Section"Files"表示Files小节开始,EndSection表示这个小节结束。其间有几个配置项:
1)RgbPath:设置RGB色彩数据库的路径。这个配置项的内容是在安装的时候就写好的,肯定没错,别改它。
2) FontPath:用来设置字体的路径。而像Redhat Linux会采用X Font Server(字体服务器)来管理所有的字体,这时,你就会看到字体路径就像:"unix/:-1"
二.Server Flag配置小节
设置X Server的各种选项,包括一些功能键的设置,下面是一个配置实例:
Section "ServerFlags"
# NoTrapSignals
# DontZap
# DontZoom
# DisableVidModeExtension
# AllowNonLocalXvidtune
# DisableModInDev
# AllowNonLocalModInDev
EndSection
Section"ServerFlags"表示ServerFlags小节的开始,EndSection表示该小节的结束,其中有以下几个配置项:
1)NoTrapSignals:不捕捉信号,在错误发生时直接dump产生Core文件。若启用这项设置将可能导致控制台不稳定,不过对于高手而言,dump产生的core文件有利于纠错。建议不启用。
2)DontZap:取消使用Ctrl+Alt+Backspace组合热键退出XWindow系统的功能。默认是注释掉它,也就是说可以使用Ctrl+Alt+Backspace组合热键退出X Window系统。建议不启用。
3)DontZoom:取消使用Ctrl+Alt++和Ctrl+Alt+-组合键切换显示模式的功能。默认是注释掉它的,也就是说可以使用这两个组合键进行显示模式的切换。建议不启用。
4) DisableVidModeExtension:禁示使用xvidtune程序调整画面。
5) AllowNonLoaclXvidtune:允许使用非本地端的xvidtune程序。
6) DisableModInDev:关闭动态变更输入设备的设置。
7) AllowNonLocalModInDev:允许非本地端变更键盘和鼠标的设置。
注:xvidtune程序是Xwindows中提供的一个应用程序,它用来调整画面显示大小和位置的程序。
三、 键盘配置小节
设置各式键盘,在此可以指定键盘的传输协议、语系、信号、字符对照表,下面是一个配置实例:
Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 5
# ServerNumLock
LeftAlt Meta
RightAlt Meta
ScrollLock Compose
RightCtl Control
# XkbDisable
# XkbModel "pc102"
# XkbModel "microsoft"
# # # XkbOptions "ctrl:swapcaps"
XkbRules "xfree86"
XkbModel "pc101"
XkbLayout "en_US"
EndSection
Section "Keyboard"表示Keyboard小节的开始,EndSection表示该小节的结束,其中有以下几个配置项:
1) Protocol:用来配置键盘所使用的传输协议。可选值为:
Standard:标准传输协议
Xqueue:使用X队列传输协议
默认值就是Standard,一般无需修改,大家的大都是标准的键盘。
2) AutoRepeat:用来配置对按住某键不放的处理,格式为:
AutoRepeat 毫秒数 次数
如:AutoRepeat 500 5,表示当按住某键500毫秒(0.5秒)后,开始自动送出该按键信号,每秒5次。
3) ServerNumLock:让X server处理NumLock信号,效果等于关闭键盘右方数字键的功能。
4) 以下一组配置项是用来设置键盘上Alt、Ctrl、Shift、ScrollLock等键的 功能定义:
LeftAlt Meta
RightAlt Meta
ScrollLock Compose
RightCtl Control
左边是键名,LeftAlt就是左边的ALT键,RightAlt就是右边的ALT键......,而右边则是功能定义,包括:
Compose:等于一般Scroll Lock按键的功能;
Control:等于一般Ctrl按键的功能;
Meta:等于一般Alt按键的功能;
ModeLock:等于一般Caps Lock按键的功能
ModeShift:等于一般Shift按键的功能。
接下来则是关于XKB的配置:
5) XkbDisable:关闭键盘扩展属性,也即不指定其类型及对应的语言
6) XkbCompat:设置键盘兼容性,缺省值是"default",包含有"Basic"的设置,按串口的"mousekeys"、"accessx"、 "misc"、"iso9995"与"japan",相关文件配置放在/usr/X11R6/lib/X11/xkb/compat目录下。
7)XkbGeometry:指定键盘结构,不同的键盘有不同的硬件结构,除非是使用Amiga、Atari、Macintosh等专用键盘,否则应使用缺省值"pc",不设置也行。它的相关选项在/usr/X11R6/lib/X11/xkb/geometry目录下。
8)XkbKeycodes:指定键盘按键送出的信息,缺省值为"xfree86",其余的可用设置位于/usr/X11R6/lib/X11/xkb/keycodes目录下。
9) XkbKeymap:指定键盘配置类型设置文件,可用的文件位于/usr/X11R6/lib/X11/xkb目录里的keymap子目录。如果设置了本 选项相当于同时设置了XkbKeycodes、XkbTypes、XkbCompact、XkbSymbols以及XkbGeometry。
10)XkbLayout:设置键盘输出语系,使用缺省值"us"即采用美式英文。可选值为:de:德文 fr:法文 it:意大利文 jp:日文 ru:俄文
11)XkbModel:设置键盘的型号,常见的是"pc101"、"pc102"。若采用具有微软标志的键盘的话,请改为"pc104"。
12)XkbOptions:设置键盘选项,通常并不需要任何选项设置,除非您想要交换按键的定义。如"ctrl:swapcaps"就可以将Ctrl与Caps Lock键互换。
13)XkbRules:指定Xwindow采用的键盘规范文件,除非有特殊需要(使用SGI的键盘),否则应使用缺省值:"xfree86",其它的可选值在/usr/X11R6/lib/X11/xkb/rules目录下。
14) XkbSymbols:定义键盘各按键所对应的字码,各国键盘革些字码不尽相同。缺省使用"us",即ASCII,字码表对照文件放在 /usr/X11R6/lib/X11/xkb/symbol目录下,用户可以修改。 15)XkbTypes:设置键盘的种类,缺省值为"default",在/usr/X11R6/lib/X11/xkb/types目录下给出了所有的 选项。
16)XkbVariant:设置键盘变量,通常无须设置。
四、 鼠标配置小节
设置诸如鼠标、触摸屏等标准输入设备。下面是一个配置实例:
Section "Pointer"
Protocol "PS/2"
Device "/dev/mouse"
# Protocol "Xqueue"
# BaudRate 9600
# SampleRate 150
Emulate3Buttons
Emulate3Timeout 50
# ChordMiddle
EndSection
与前面一样,Section"Pointer"代表该小节的开始,EndSection代表该小节结束。在该配置小节中,共有以下配置项:
1) Protocol:设置鼠标使用的传输协议,可使用的协议有:
Auto:让X window自已检测,但可能不准确
BusMouse:总线型鼠标,早期的串口鼠标
GlidePoint:使用ALPS串口版本的GlidePoint触摸屏及其兼容产品
GlidePointPS/2:使用ALPS PS2版本的GlidePoint触摸屏及其兼容产品
IMPS/2:使用微软PS/2版本的IntelliMouse及其兼容产品
IntelliMouse:使用微软串口版本的IntelliMouse及其兼容产品
Logitech:使用旧版Logitech串口鼠标,新版的已改为"Microsoft"协议
Microsoft:在1992年起的5-8年间使用的串口鼠标
MMHitTab:使用旧版Logitech串口的HitTablet手机板
MMSeries:使用旧版Logitech串口的MouseMan鼠标
MouseMan:使用中期的Logitech串口的MouseMan鼠标
MouseManPlusPS/2:使用LogitechPS/2版本的天貂及其兼容产品
MouseSystem:采用MouseSystem传输协议的串口鼠标可以使用该选项
NetMosuePS/2:使用Genius PS/2版本的NetMouse网络鼠标及其兼容产品
NetScrollPS/2:使用Genius PS/2版本的NetScroll滚轮鼠标及其兼容产品
OSMouse:使用由操作系统控制的鼠标,而非让X Window控制鼠标
PS/2:现在最广泛使用的PS/2接口的鼠标
SysMouse:让FreeBSD能够使用外围设备代号为/dev/sysmouse的鼠标设备
ThinkingMouse:使用Kensington串口版本的Thinking鼠标
ThinkingMousePS/2:使用PS/2版本的Thinking鼠标及其兼容产品
Xqueue:假如你在键盘设备段让键盘使用X队列传输协议,则这里也要
2) Device:用来设置连接鼠标的外围设备代码,通常都是/dev/mouse
3) BaudRate:用来设置波特率,只对某些Logitech鼠标有效,当使用AceCad绘图板时,需要将其设置为9600
4) SampleRate:用来设置采样率,只对某些Logitech鼠标有效
5) Emulate3Buttons:将双键鼠标模拟成为三键鼠标
6) Emulate3Timeout:设置模拟三键超时时间
7) ChordMiddle:如果是Logitech鼠标,那么得用这一配置项代替Emulate3Buttons
五、 显示器配置小节
设置显示器的水平、垂直扫描频率,同时定义各个显示模式与扫描频率之间的对应关系。X Server会根据显示器扫描频率的设置,配置用户指定的显示模式,自动在数十种的对应关系中,找到最恰当的显示刷新率。下面是一个配置实例:
Section "Monitor"
Identifier "Generic Monitor"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 31.5
VertRefresh 60
ModeLine "640x480" 25.175 640 664 760 800
480 491 493 525
EndSection
Section "Monitor"
Identifier "cpq1355"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30 - 60
VertRefresh 50 - 125
# Mode "1024x768i"
# DotClock 45
# HTimings 1024 1048 1208 1264
# VTimings 768 776 784 817
# Flags "Interlace"
# EndMode
# --- 640x480 ---
# 640x480 @ 60 Hz, 31.5 kHz hsync
Modeline "640x480" 25.175 640 664 760 800
480 491 493 525
# 640x480 @ 72 Hz, 36.5 kHz hsync
Modeline "640x480" 31.5 640 680 720 864
480 488 491 521
# 640x480 @ 75 Hz, 37.50 kHz hsync
ModeLine "640x480" 31.5 640 656 720 840
480 481 484 500 -HSync -VSync
# 640x480 @ 85 Hz, 43.27 kHz hsync
Modeline "640x480" 36 640 696 752 832
480 481 484 509 -HSync -VSync
# 640x480 @ 100 Hz, 53.01 kHz hsync
Modeline "640x480" 45.8 640 672 768 864
480 488 494 530 -HSync -VSync
# --- 800x600 ---
# 800x600 @ 56 Hz, 35.15 kHz hsync
ModeLine "800x600" 36 800 824 896 1024
600 601 603 625
# 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
# 800x600 @ 85 Hz, 55.84 kHz hsync
Modeline "800x600" 60.75 800 864 928 1088
600 616 621 657 -HSync -VSync
# 800x600 @ 100 Hz, 64.02 kHz hsync
Modeline "800x600" 69.65 800 864 928 1088
600 604 610 640 -HSync -VSync
# --- 1024x768 ---
# 1024x768 @ 60 Hz, 48.4 kHz hsync
Modeline "1024x768" 65 1024 1032 1176 1344
768 771 777 806 -hsync -vsync
# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
Modeline "1024x768" 44.9 1024 1048 1208 1264
768 776 784 817 Interlace
# 1024x768 @ 70 Hz, 56.5 kHz hsync
Modeline "1024x768" 75 1024 1048 1184 1328
768 771 777 806 -hsync -vsync
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360
768 784 787 823
# 1024x768 @ 85 Hz, 70.24 kHz hsync
Modeline "1024x768" 98.9 1024 1056 1216 1408
768 782 788 822 -HSync -VSync
# 1024x768 @ 100Hz, 80.21 kHz hsync
Modeline "1024x768" 115.5 1024 1056 1248 1440
768 771 781 802 -HSync -VSync
EndSection
正如上面所示,在一个配置文件中可以有多个Monitor配置小节,用来配置多个显示器。以供后面选择使用。每个Monitor配置小节都应该使用Section"Monitor"开始,以EndSection结束。下面我们就一起来看一下配置选项:
1)Identifier、VendorName、ModelName:这三个配置项用来标识不同的显示器,第一个名字任意写,你自己知道就可以了,后面两个也可以随便新,不过写成"unkown"最好。
2)HorizSync:设置水平扫描频率,它的缺省单位是kHz,它可以用逗号分隔开多个独立的数值,也可以使用形如"30-64"的方式来表示一个范围。具体的值应该根据显示器的使用说明上的数据来写。
3)VerRefresh:设置垂直扫描频率,它的缺省单位是Hz,表示方式与HorizSync一致,建议根据显示器的使用说明上的数据来写。
六、 显卡配置小节
设置显卡的型号、芯片组、晶振芯片、显存。下面是一个配置实例:
Section "Device"
Identifier "ATI Mach64"
VendorName "Unknown"
BoardName "Unknown"
#Chipset "Generic"
VideoRam 1024
# Clocks 25.2 28.3
EndSection
其配置选项如下:
1) Identifier:用来标识显卡
2) Chipset:用来标识显卡芯片组
3) VideoRam:用来标识显存
4) Clocks:晶振芯片
七、 屏幕配置小节
设置将采用的XServer、显卡及显示器之外,还有显示模式、色彩深度、分辨率和虚拟桌面的设置。下面是一个配置实例:
Section "Screen"
Driver "accel"
Device "ATI Mach64"
Monitor "cpq1355"
DefaultColorDepth 16
Subsection "Display"
Depth 16
Modes "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 8
Modes "1152x864" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
# BlankTime 3
# StandbyTime 10
# SuspendTime 30
#Offtime 50
1) Driver:选择X Server驱动,在本例中是accel
2) Device:选择所使用的显卡,这里的名字应与显卡配置小节的Identifier 一致
3) Monitor:选择所使用的显示器,这里的名字应与显示器配置小节的Identifier一致
4) BlankTime:设置进入屏幕保护的时间,单位为分。
5) StandbyTime:设置显示器进入待机状态的时间,单位为分
6) SuspendTime:设置显示器进入挂起状态的时间,单位为分
7) Offtime:设置显示器关闭的时间,单位为分在这个小节中,还有Display子小节,用Subsection "Display"做为开始,用EndSubsection表示结束。每一个子小节设置一种显示模式,在此例子中设置了两种显示模式(这些模式在 XWindow中,可以使用"Ctrl"+"+"、"Ctrl"+"-"来切换。每个Display子小节中可以有以下配置项:
1) Depth:色深,如16代表16位色,8代表8位色
2) Modes:可以使用的分辨率,如本配置中表示16位色可以使用"800x600" "640x480"两种分辨率
3) ViewPort:使用虚拟桌面时,设置起始画面的左上角坐标
4) Virtual:设置虚拟桌面,后面跟上分辨率即可,如Virtual 1600, 1400就表示模拟成为1600x1400大小的桌面