FreeBSD连载(54):配置文件XF86Config
配置文件XF86Config
位于/etc目录下的XF86Config文件是XFree86的X服务器的配置文件,XF86Setup或者xf86config在配置完后就将配置信息保存在这个文件中。XFree86也提供了一个配置文件的样例文件,/usr/X11R6/lib/X11/XF86Config.eg,可以用作参考。很多情况下需要对X的行为进行微调,而并不想重新启动设置程序重复进行整个设置过程,这样手工修改配置文件就更为方便。
有一些X服务器的参数使用配置程序并不能进行配置,必须在原有XF86Config上手工更改配置文件。
下面将以一个简单的配置文件为例进行简单介绍XFree86的设置选项。
- 文件搜寻路径
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"# FontPath tcp/fontserver:7000# ModulePath "/usr/X11R6/lib/modules"EndSection
上面是配置文件的第一部分 “Files” ,这个文件部分定义了X Window使用的搜索文件路径,如调色板文件的路径RGBPath,字体路径FontPath,以及ModulePath用来设置X服务器的动态可加载模块的路径。
其中字体路径可以使用多行来设置多个路径,也可以在一行之内设置多个路径,路径之间使用逗号分隔。字体路径也能定义为网络上的字体服务器,这需要指定协议、主机名和端口地址,例如tcp/fontserver:7000表示一台名为fontserver的字体服务器使用tcp端口7000提供字体服务。Unscaled用于修饰表示对这个路径下的字体不进行缩放处理,处理固定字体可减少系统资源的消耗。使用字体服务器可以让多个服务器同享字体,从而达到节约磁盘空间的目的。
在行首使用符号 “#” ,表示这一行为注释,并不被X服务器处理。
- 可加载模块
# Section "Module"# Load "xf86Jstk.so"# EndSection
如果前面Files部分定义了ModulePath,这个"Module"部分就用来装载相应路径下具体的模块。一般情况下,并不需要使用这个功能,除非是使用了一些非标准的功能,需要可加载模块的支持,如xf86Jstk.so就是一个游戏杆的驱动程序。
- X服务器选项
Section "ServerFlags"# NoTrapSignals# DontZap# DontZoom# DisableVidModeExtension# AllowNonLocalXvidtune# DisableModInDev# AllowNonLocalModInDxevEndSection
"ServerFlags"部分设置一些X服务器的运行参数,对应于XF86Setup中的Other选项中所设置的内容,一般不需改变。
NoTrapSignals选项使得X服务器程序不去处理发送到X服务器的各个信号, 正常情况下不设置这个选项,X服务器应该接收并处理这些信号,当接收到某些信号时就释放X服务器占用的资源,切换显示模式并退出X服务器的执行。因此打开这个选项就使得发送到X服务器的信号没有得到处理,在错误不严重的情况下,X程序仍将继续执行而不退出。因此可以用于调试X服务器,观察X的出错原因及其影响。
DontZap选项用于屏蔽Crtl-Alt-BackSpace热键,通常不设置这个选项时,使用者能够使用这个组合热键退出X服务器。当要将XFree86系统用作公用X终端时,最好使用这个选项屏蔽退出热键,让用户使用正常的退出方式退出登录会话。
DontZoom这个选项用于屏蔽<Crtl><Alt><小键盘 “+” >或<小键盘 “-” >两个用于动态切换分辨率模式的组合键,当然X服务器必须同时设置了多个分辨率模式,这两个组合键才有意义。
xvidtune能实时改变X服务器的显示模式,例如调整显示区域位于显示器中的位置等。然而一旦针对某个显示器的显示模式调整正确之后,就没有必要动态改变了,因此可以使用DisableVidModeExtension选项屏蔽xvidtune实时改变显示模式的能力,以保证显示器的安全。一般只有本服务器上的xvidtune可以完成这个操作,在当前X服务器上运行远程计算机上的xvidtune不允许改变本服务器的状态。但是,也可以通过设置AllowNonLocalXvidtune选项, 使得非本服务器上的xvidtune也有能力和本地的X服务器进行通信。第二个选项必须在第一个没有设置的条件下才能设置。为了安全的原因,不应该允许远程系统上的xvidtune获得本服务器的硬件设置信息,不要设置这个选项。
使用DisableModInDev选项,可以屏蔽客户程序对输入设备(鼠标或键盘)的动态改变。 而AllowNonLocalModInDxev选项可以许可非本地的程序(xset)能动态改变键盘或鼠标的设置。同样,这两个选项是冲突的。
- 键盘设置
Section "Keyboard" Protocol "Standard"# Protocol "Xqueue"AutoRepeat 500 5# ServerNumLock# Xleds 1 2 3 LeftAlt Meta RightAlt ModeShift RightCtl Compose ScrollLock ModeLock# XkbDisable XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc104" XkbLayout "us"EndSection
"Keyboard"用于定义键盘的参数,指定了键盘使用的协议、重复率以及对一些功能键的重映射。通常在XF86Setup下就可以设置这些选项,而不必手工修改这些设置。
"Standard"和"Xqueue"是两种不同的键盘协议,一般应该使用Standard协议,Xqueue是一种同时支持键盘和鼠标的硬件使用的协议,在个人计算机平台上很少使用。
"AutoRepeat"用于定义键盘的重复速度,"ServerNumLock"让X服务器处理NumLock的状态,否则是由系统的键盘驱动程序处理这个状态。有些X客户程序不能从系统键盘驱动程序中获得小键盘的情况,此时就需要设置这个选项。”Xleds”允许X程序,如xset,能够改变键盘上三个LED状态灯NumLock、CapsLock和ScrollLocal的状态。
下面的"LeftAlt"等设置,用于将个人计算机键盘上的键重新映射为一些传统Unix工作站的键盘上使用的键,如Meta、Compose等,由于传统X程序大多数是在工作站上开发的,因此这些程序需要这些特殊的功能键来完成操作,就需要映射这些键的定义以保证兼容性。
"XkbDisable"选项可以用于屏蔽X服务器对键盘的扩展能力, 通常不应该屏蔽这个能力,而不设置这个参数。这样就可以在设置文件中使用下面的设置选项重新定义键盘的类型、排列方式、符号类型、型号、编码等等。当然一般情况下可以不重新定义这些参数,缺省设置为101键PC键盘,适用于绝大多数的情况。
- 鼠标设置
Section "Pointer" Protocol "Sysmouse" Device “/dev/sysmouse”# Protocol "Microsoft"# Device "/dev/ttyd0"# BaudRate 1200# SampleRate 150# Emulate3Buttons# Emulate3Timeout 50# ChordMiddleEndSection
"Pointer"部分用于定义鼠标的参数,最重要的内容是定义鼠标的类型和使用的设备文件。对于使用moused来管理鼠标的情况,鼠标配置相当容易,首先在控制台下设置好鼠标,然后使用/dev/sysmouse作设备文件,Sysmouse作为鼠标类型即可。如果不打算使用moused来管理鼠标,而想直接使用鼠标设备,就需要正确指定鼠标类型及其设备文件。例如最常见的MS两键串口鼠标使用/dev/ttyd0(或ttyd1串口),使用Microsoft鼠标类型,等等。
注意必须保证系统内核识别出所使用的鼠标设备(或者串口设备)。
此外,BaudRate与SampleRate参数定义鼠标驱动程序与设备通信的波特率和采样率,Emulate3Buttons和Emulate3Timeout让两键鼠标能模拟三键鼠标, 然而伪设备Sysmouse的模拟三键能力的设置需要在moused的启动参数中设置,这里的设置是无效的。ChordMiddle与上面参数意义相反,定义按下三键鼠标的中间键,等价于同时按下左右两键。
- 显示器设置
Section "Monitor" Identifier "Hyundai DeluxScan 15G+" VendorName "Unknown" ModelName "Unknown" HorizSync 30-70 VertRefresh 50-150# ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace# Mode "1024x768i"# DotClock 45# HTimings 1024 1048 1208
- 最新文章
- FreeBSD连载(53):中文X服务器[01-03]
- FreeBSD连载(52):外挂式中文显示与输入软件[01-03]
- FreeBSD连载(51):中文X应用软件[01-03]
- FreeBSD连载(50):定制X Window的基本方法[01-03]
- FreeBSD连载(47):使用xf86config配置X服..[01-03]
- FreeBSD连载(44):X Free86的硬件要求[01-03]
- 相关文章
- FreeBSD连载(53):中文X服务器[01-03]
- FreeBSD连载(52):外挂式中文显示与输入软件[01-03]
- FreeBSD连载(51):中文X应用软件[01-03]
- FreeBSD连载(50):定制X Window的基本方法[01-03]
- FreeBSD连载(47):使用xf86config配置X服..[01-03]
- FreeBSD连载(44):X Free86的硬件要求[01-03]
