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# ServerNumLockLeftAlt MetaRightAlt MetaScrollLock ComposeRightCtl 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 150Emulate3ButtonsEmulate3Timeout 50# ChordMiddleEndSection
与前面一样,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.5VertRefresh 60ModeLine "640x480" 25.175 640 664 760 800480 491 493 525EndSectionSection "Monitor"Identifier "cpq1355"VendorName "Unknown"ModelName "Unknown"HorizSync 30 - 60VertRefresh 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 hsyncModeline "640x480" 25.175 640 664 760 800480 491 493 525# 640x480 @ 72 Hz, 36.5 kHz hsyncModeline "640x480" 31.5 640 680 720 864480 488 491 521# 640x480 @ 75 Hz, 37.50 kHz hsyncModeLine "640x480" 31.5 640 656 720 840480 481 484 500 -HSync -VSync# 640x480 @ 85 Hz, 43.27 kHz hsyncModeline "640x480" 36 640 696 752 832480 481 484 509 -HSync -VSync# 640x480 @ 100 Hz, 53.01 kHz hsyncModeline "640x480" 45.8 640 672 768 864480 488 494 530 -HSync -VSync# --- 800x600 ---# 800x600 @ 56 Hz, 35.15 kHz hsyncModeLine "800x600" 36 800 824 896 1024600 601 603 625# 800x600 @ 60 Hz, 37.8 kHz hsyncModeline "800x600" 40 800 840 968 1056600 601 605 628 +hsync +vsync# 800x600 @ 72 Hz, 48.0 kHz hsyncModeline "800x600" 50 800 856 976 1040600 637 643 666 +hsync +vsync# 800x600 @ 85 Hz, 55.84 kHz hsyncModeline "800x600" 60.75 800 864 928 1088600 616 621 657 -HSync -VSync# 800x600 @ 100 Hz, 64.02 kHz hsyncModeline "800x600" 69.65 800 864 928 1088600 604 610 640 -HSync -VSync# --- 1024x768 ---# 1024x768 @ 60 Hz, 48.4 kHz hsyncModeline "1024x768" 65 1024 1032 1176 1344768 771 777 806 -hsync -vsync# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsyncModeline "1024x768" 44.9 1024 1048 1208 1264768 776 784 817 Interlace# 1024x768 @ 70 Hz, 56.5 kHz hsyncModeline "1024x768" 75 1024 1048 1184 1328768 771 777 806 -hsync -vsync# 1024x768 @ 76 Hz, 62.5 kHz hsyncModeline "1024x768" 85 1024 1032 1152 1360768 784 787 823# 1024x768 @ 85 Hz, 70.24 kHz hsyncModeline "1024x768" 98.9 1024 1056 1216 1408768 782 788 822 -HSync -VSync# 1024x768 @ 100Hz, 80.21 kHz hsyncModeline "1024x768" 115.5 1024 1056 1248 1440768 771 781 802 -HSync -VSyncEndSection
正如上面所示,在一个配置文件中可以有多个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.3EndSection
其配置选项如下:
1) Identifier:用来标识显卡
2) Chipset:用来标识显卡芯片组
3) VideoRam:用来标识显存
4) Clocks:晶振芯片 七、 屏幕配置小节
设置将采用的XServer、显卡及显示器之外,还有显示模式、色彩深度、分辨率和虚拟桌面的设置。下面是一个配置实例:
Section "Screen"Driver "accel"Device "ATI Mach64"Monitor "cpq1355"DefaultColorDepth 16Subsection "Display"Depth 16Modes "800x600" "640x480"ViewPort 0 0EndSubsectionSubsection "Display"Depth 8Modes "1152x864" "1024x768" "800x600" "640x480"ViewPort 0 0EndSubsection# BlankTime 3# StandbyTime 10# SuspendTime 30#Offtime 50EndSection
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大小的桌面