在初始化过程中,首先fvwm会搜索配置文件,及其他的东西。Fvwm首先使用该命令搜索配置文件
这将在$FVWM_USERDIR和$FVWM_DATADIR变量指定的目录中查找文件配置,如“Read”中所述的。如果读取失败,FVWM将执行一些向后兼容性的操作来读取配置文件,以下是在默认安装中配置文件的查找顺序,但是仅使用第一个找到的文件:
/usr/local/share/fvwm/config
$HOME/.fvwm2rc
/usr/local/share/fvwm/.fvwm2rc
/usr/local/share/fvwm/system.fvwm2rc
/etc/system.fvwm2rc
最后五个已经不再推荐使用了。
如果没有找到配置文件,则在根窗口上的鼠标左键、帮助、F1键会显示用于创建启动配置文件的菜单和表单。
Fvwm设置两个由其子代继承的环境变量:$DISPLAY,描述了运行fvwm的显示器。$DISPLAY可能是unix:0.0或者0.0,当通过ssh传递给另一台机器时,可能无法正常工作,所以$HOSTDISPLAY被设置为网络就绪的显示描述。 $HOSTDISPLAY总是使用TCP/IP传输协议(即使是本地连接),所以$DISPLAY应该用于本地连接,因为它使用更快的Unix域套接字。
如果你想用fvwm启动一些应用程序或模块,你可以简单的在配置文件中试用
或者
,但是不推荐这么做,除非你知道这么做的含义。读完整个配置文件后,再启动应用程序或模块通常是很重要的,因为它包含可能影响窗口外观和功能的样式或模块配置。
在fvwm启动时,启动应用程序或模块的标准方法是将它们添加到初始化函数(通常为StartFunction或InitFunction),这样它们只有在fvwm完成读取、执行配置文件后才会启动。
Fvwm有三个特殊的初始化函数:
- StartFunction,在启动和重新启动时执行;
- InitFunction和RestartFunction,它们执行在StartFunction后面,分别在启动和从新启动时执行。
这些函数可以使用AddToFunc命令(稍后介绍)在用户的配置文件中进行自定义,以启动相应的模块、xterms、其他的希望由fvwm启动的任何内容。
Fvwm还有一个特殊的退出函数:ExitFunction,在退出之前退出或重启时执行。它可以用来明确杀死模块,或者执行其他操作。
如果fvwm在Session Manager下运行,则会执行函数SessionInitFunction和SessionRestartFunction,而不执行InitFunction和RestartFunction。这有助于定义一个良好的用户配置文件,来处理有没有Session Manager的情况,也可以用于决定在有无Session Manager的时候是否加载某些模块。通常在“Session*”函数中启动xterm或其他应用程序是一个坏主意。同样的,应该使用SessionExitFunction来代替ExitFunction。
AddToFunc StartFunction
+ I Module FvwmPager * *
+ I Module FvwmButtons
AddToFunc InitFunction
+ I Module FvwmBanner
+ I Module FvwmIconMan
+ I Exec xsetroot -solid cyan
+ I Exec xterm
+ I Exec netscape
AddToFunc RestartFunction
+ I Module FvwmIconMan
AddToFunc SessionInitFunction
+ I Module FvwmBanner
AddToFunc SessionRestartFunction
+ I Nop
如果某些内容为空,则不需要定义所有特殊函数。另外请注意,所有这些特殊功能现在可以使用StartFunction和ExitFunction进行模拟,如下所示:
AddToFunc StartFunction
+ I Test (Init) Module FvwmBanner
+ I Module FvwmPager * *
+ I Test (Restart) Beep
AddToFunc ExitFunction
+ I Test (Quit) Echo Bye-bye
+ I KillModule MyBuggyModule
+ I Test (ToRestart) Beep