配置文件XF86Config-FreeBSD 技术文摘
有一些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服务器对键盘的扩展能力, 通常不应该屏蔽这个能力,而不设置这个参数。这

