分类: LINUX
2006-06-30 15:00:41
QUOTE: |
1、修改/etc/X11/xinit/xinitrc 2、修改/etc/X11/Xsession 3、在/etc/X11/Xsession.d目录下增加一个自定义的脚本 4、修改$HOME/.xsession 5、修改$HOME/.xinitrc 6、修改/etc/X11/xdm/Xsession …… |
QUOTE: |
#!/bin/sh # # /etc/X11/Xsession # # global Xsession file -- used by display managers and xinit (startx) # $Id: Xsession 2186 2005-02-11 07:11:05Z branden $ set -e PROGNAME=Xsession message () { # pretty-print messages of arbitrary length; use xmessage if it # is available and $DISPLAY is set MESSAGE="$PROGNAME: $*" echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2 if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - fi } message_nonl () { # pretty-print messages of arbitrary length (no trailing newline); use # xmessage if it is available and $DISPLAY is set MESSAGE="$PROGNAME: $*" echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2; if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - fi } errormsg () { # exit script with error message "$*" exit 1 } internal_errormsg () { # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message # One big call to message() for the sake of xmessage; if we had two then # the user would have dismissed the error we want reported before seeing the # request to report it. errormsg "$*" \ "Please report the installed version of the \"xfree86-common\"" \ "package and the complete text of this error message to" \ "<>." } # initialize variables for use by all session scripts OPTIONFILE=/etc/X11/Xsession.options SYSRESOURCES=/etc/X11/Xresources USRRESOURCES=$HOME/.Xresources SYSSESSIONDIR=/etc/X11/Xsession.d USERXSESSION=$HOME/.xsession ALTUSERXSESSION=$HOME/.Xsession ERRFILE=$HOME/.xsession-errors # attempt to create an error file; abort if we cannot if touch "$ERRFILE" 2> /dev/null && [ -w "$ERRFILE" ] && [ ! -L "$ERRFILE" ]; then chmod 600 "$ERRFILE" elif ERRFILE=$(tempfile 2> /dev/null); then if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \ "\"$ERRFILE\"; look for session log/errors in" \ "\"$TMPDIR/xsession-$USER\"." fi else errormsg "unable to create X session log/error file; aborting." fi exec >>"$ERRFILE" 2>&1 echo "$PROGNAME: X session started for $LOGNAME at $(date)" # sanity check; is our session script directory present? if [ ! -d "$SYSSESSIONDIR" ]; then errormsg "no \"$SYSSESSIONDIR\" directory found; aborting." fi # Attempt to create a file of non-zero length in /tmp; a full filesystem can # cause mysterious X session failures. We do not use touch, :, or test -w # because they won't actually create a file with contents. We also let standard # error from tempfile and echo go to the error file to aid the user in # determining what went wrong. WRITE_TEST=$(tempfile) if ! echo "*" >>"$WRITE_TEST"; then message "warning: unable to write to ${WRITE_TEST%/*}; X session may exit" \ "with an error" fi rm -f "$WRITE_TEST" # Use run-parts to source every file in the session directory; we source # instead of executing so that the variables and functions defined above # are available to the scripts, and so that they can pass variables to each # other. SESSIONFILES=$(run-parts --list $SYSSESSIONDIR) if [ -n "$SESSIONFILES" ]; then for SESSIONFILE in $SESSIONFILES; do . $SESSIONFILE done fi exit 0 |
QUOTE: |
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR) if [ -n "$SESSIONFILES" ]; then for SESSIONFILE in $SESSIONFILES; do . $SESSIONFILE done fi |
QUOTE: |
USERXSESSION=$HOME/.xsession ALTUSERXSESSION=$HOME/.Xsession |
QUOTE: |
# $Id: 50xfree86-common_determine-startup 1437 2004-05-23 03:18:32Z branden $ # This file is sourced by Xsession(5), not executed. # If no X session startup program was passed to the Xsession script as an # argument (e.g., by the display manager), or if that program was not # executable, fall back to looking for a user's custom X session script, if # allowed by the options file. if [ -z "$STARTUP" ]; then if grep -qs ^allow-user-xsession "$OPTIONFILE"; then for STARTUPFILE in "$USERXSESSION" "$ALTUSERXSESSION"; do if [ -e "$STARTUPFILE" ]; then if [ -x "$STARTUPFILE" ]; then STARTUP="$STARTUPFILE" else STARTUP="sh $STARTUPFILE" fi break fi done fi fi # If there is still nothing to use for a startup program, try the system # default session manager, window manager, and terminal emulator. if [ -z "$STARTUP" ]; then if [ -x /usr/bin/x-session-manager ]; then STARTUP=x-session-manager elif [ -x /usr/bin/x-window-manager ]; then STARTUP=x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then STARTUP=x-terminal-emulator fi fi # If we still have not found a startup program, give up. if [ -z "$STARTUP" ]; then ERRMSG="unable to start X session ---" if grep -qs ^allow-user-xsession "$OPTIONFILE"; then ERRMSG="$ERRMSG no \"$USERXSESSION\" file, no \"$ALTUSERXSESSION\" file," fi errormsg "$ERRMSG no session managers, no window managers, and no terminal" \ "emulators found; aborting." fi # vim:set ai et sts=2 sw=2 tw=80: |
QUOTE: |
for STARTUPFILE in "$USERXSESSION" "$ALTUSERXSESSION"; do if [ -e "$STARTUPFILE" ]; then if [ -x "$STARTUPFILE" ]; then STARTUP="$STARTUPFILE" else STARTUP="sh $STARTUPFILE" fi break fi done |
QUOTE: |
##!/bin/sh ## $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $ # ## /etc/X11/xinit/xinitrc ## ## global xinitrc file, used by all X sessions started by xinit (startx) # ## invoke global X session script . /etc/X11/Xsession |
QUOTE: |
#!/bin/sh # # $Xorg: Xsession,v 1.4 2000/08/17 19:54:17 cpqbld Exp $ # # # # # $XFree86: xc/programs/xdm/config/Xsession,v 1.3 2001/01/17 23:45:24 dawes Exp $ # invoke global X session script . /etc/X11/Xsession |
QUOTE: |
X Xsession.d cursors gdm rstart xinit XF86Config-4 Xsession.options default-display-manager lbxproxy sysconfig xkb Xresources Xwrapper.config fonts proxymngr twm xserver Xsession app-defaults fs rgb.txt xdm xsm |
QUOTE: |
export LC_CTYPE=zh_CN.GBK export XMODIFIERS="@im=fcitx" export XIM=fcitx export XIM_PROGRAM=fcitx fcitx |
QUOTE: |
1、加到/etc/X11/Xsession。这种方法对所有启动方法都管理 2、在/etc/X11/Xsession.d目录里自己写一个脚本。这种方法也对所有启动方法都管理 3、在$HOME目录下生成.xsession或.Xsession脚本。这种方法也对当前登录用户有效 4、加到/etc/X11/xinit/xinitrc脚本里。这个方法只对xinit方式(即命令行输入startx)管用。 5、加到/etc/X11/xdm/xsession脚本里,只对用xdm管理界面登录的方式管用。 |