⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x窗口管理器启动文件说明.htm

📁 台大计中UNIX讲义
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.linuxforum.net/books/jy/G.927701634.A -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><PRE>发信人: 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 &amp;
# 使用资源文件可以使应用程序启动时自己使用所定义的资源变量
# 如对上所示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 &amp;就可以了.
# 资源文件的加载:       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 &amp;
       xterm -geometry 80x50+494+51 &amp;
       xterm -geometry 80x20+494-0 &amp;
       if [ -f /usr/X11R6/bin/arena -a -f /usr/doc/HTML/index.html ]; then
               arena /usr/doc/HTML/index.html &amp;  
       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&gt;/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 &amp;
    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.]
</PRE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -