发信人: albin (阿乐斌), 信区: LINUX 标 题: X窗口管理器启动文件说明(Re:mandrake为何不起kde) 发信站: 碧海青天 (Wed May 26 17:12:20 1999), 转信 X窗口管理器启动文件说明 作者: 何斌武, 大连理工大学网络中心 ------------------------------------------------------ LINUX通常是通常执行/etc/X11/xinit/xintrc确定启动那个 窗口管理器的(fvwm,fvwm95,kde等),相关文件说明如下: (事实上下面的说明适用于所有的X平台),但各个Distribution (Slackware/Redhat/Debian)及不同版本的文件内容可能有所 差别,但其道理是相同的,希望下面的说明对大家有所帮助. 1.File /etc/X11/xinit/xinitrc #!/bin/sh # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ # #以下内容读取有关x配置文件的内容,设置有关资源变量 # #读取用户自定义变量 #功能说明: # 一般情况下x应用程序有很多种选项,如字体,背景等,如果不使用资源文件 # 其启动命令行相当长,如: # %xterm -fn -misc-fixed-bold-r-normal--15-140-75-75-c-iso8859-1 \ # -geometry 90x40 -bg yellow -fg navyblue & # 使用资源文件可以使应用程序启动时自己使用所定义的资源变量 # 如对上所示xterm的资源文件定义内容为: # XTerm*font: -misc-fixed-bold-r-normal--15-140-75-75-c-iso8859-1 # XTerm*Backgrould: yellow # XTerm*Foregrould: navyblue # XTerm*VT100.geometry: 90x40 # # 这样直接执行 %xterm &就可以了. # 资源文件的加载: xrdb -merge ResourceFileName userresources=$HOME/.Xresources # #使用xmodmap定义文件指定对键盘和mouse的解释 #具体说明请参老xmodmap之文档 usermodmap=$HOME/.Xmodmap # #系统资源文件及xmodmap定义文件 # sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi # #根据系统所安装的package内容确定相应的浏览器 # if [ -z "$BROWSER" ] ; then # we need to find a browser on this system BROWSER=`which netscape` if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then # not found yet BROWSER= fi fi if [ -z "$BROWSER" ] ; then # we need to find a browser on this system BROWSER=`which lynx` if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then # not found yet BROWSER= else BROWSER="xterm -font 9x15 -e lynx" fi fi fi if [ -z "$BROWSER" ] ; then # we need to find a browser on this system BROWSER=`which arena` if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then # not found yet BROWSER= fi fi export BROWSER # start some nice programs #如果存在$HOME/.Xclients(用户自定义X clients文件,通常你可以修改 #此文件,选择启动不同的窗口管理器,如kde,fvwm95等,此文件应具有可执行 #权限 if [ -f $HOME/.Xclients ]; then exec $HOME/.Xclients # #如果不存在$HOME/.Xclients文件,则使用系统默认的Xclients文件 #/etc/X11/xinit/Xclients # elif [ -f /etc/X11/xinit/Xclients ]; then exec /etc/X11/xinit/Xclients # #如果以上两个文件均不存在,执行如下程序 # else # #在启动窗口管理器之前先执行下面这些程序,这些程序必须以后台方式 #运行,否则只有等前一个窗口退出才能继续执行后面的程序 # xclock -geometry 50x50-1+1 & xterm -geometry 80x50+494+51 & xterm -geometry 80x20+494-0 & if [ -f /usr/X11R6/bin/arena -a -f /usr/doc/HTML/index.html ]; then arena /usr/doc/HTML/index.html & fi # #默认情况下启动fvwm,如果不存在文件/usr/X11R6/bin/fvwm则使用 #twm (the Tab Window Manager,MIT X发行). #通常窗口管理器为最后一个执行的程序,并且是前台执行的,这一点在 #$HOME/.Xclients和/etc/X11/xinit/Xclients文件中相同, if [ -f /usr/X11R6/bin/fvwm ]; then exec fvwm else exec twm fi fi 2. /etc/X11/xinit/Xclients #!/bin/bash ######################################################################## # -*- sh -*- # # # # ~/.Xclients: used by startx (xinit) to start up a window manager and # # any other clients you always want to start an X session with. # # # # feel free to edit this file to suit your needs. # # 通常上面的分析,我们知道如果存在$HOME/.Xclients文件,系统不会执行此文件# # 只有在不存在$HOME/.Xclients文件时才会执行 ######################################################################## # these files are left sitting around by TheNextLevel. rm -f $HOME/Xrootenv.0 rm -f /tmp/fvwmrc* 2>/dev/null # First thing - check the user preferences # 如果存在文件$HOME/.wm_style,读取用户定义的Window Manager Style, # 变量,并启动相应的窗口管理器 # Note: 因为很少使用此文件,大家可以改一下看看有什么结果,此文件的内 # 容可以通过下面case语句中的可选项得知,如出现了Afterstep|AfterStep, # 则你可以使用Afterstep或AfterStep. if [ -f $HOME/.wm_style ] ; then WMSTYLE=`cat $HOME/.wm_style` case "$WMSTYLE" in Afterstep | AfterStep) exec /usr/X11R6/bin/RunWM --AfterStep ;; WindowMaker | Windowmaker | WMaker | wmaker) exec /usr/X11R6/bin/RunWM --WindowMaker ;; Fvwm95 | fvwm95) exec /usr/X11R6/bin/RunWM --Fvwm95 ;; Mwm | MWM | Lesstif) exec /usr/X11R6/bin/RunWM --FvwmMWM ;; esac fi # Default: Fvwm95 # 默认情况下运行Fvwm95 # /usr/X11R6/bin/RunWM --Fvwm95运行成功? 如果运行失败则运行{}中的内容 # /usr/X11R6/bin/RunWM --Fvwm95 || { # gosh, neither fvwm95 nor fvwm2 is available; # let's try regular fvwm (AnotherLevel doesn't work with fvwm1). # 注意除最后一条命令外,其他程序必须是后台执行的 if [ -n "$(type -path fvwm)" ]; then # if this works, we stop here exec fvwm fi # wow, fvwm isn't here either ... # use twm as a last resort. xterm & exec twm } 3. $HOME/.Xclients文件 #!/bin/bash #此文件启动KDE, 原始文件:/opt/kde/etc/skel/.Xclients # # kdesetup installs .kde and Desktop directories, if absent. # Only run kdesetup if it exists (for compatibility of this .Xclients # script with older versions of KDE) # 如果KDE启动不正常,请加入 # export KDEDIR=/opt/kde if [ -f $KDEDIR/bin/kdesetup ] ; then $KDEDIR/bin/kdesetup fi # clean up old kde /tmp files that belong to the user for file in /tmp/kfm_* /tmp/kio* ; do if [ -O $file ] ; then rm -fr $file fi done # add any local customizations here, before the startkde script runs $KDEDIR/bin/startkde -- ※ 修改:.albin 于 May 26 17:20:11 修改本文.[FROM: helius.dlut.edu.] ※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: helius.dlut.edu.]