QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 900|回复: 4

怎样在gdm中添加新的会话,问题还是不能解决。。。

[复制链接]
发表于 2003-12-5 22:34:14 | 显示全部楼层 |阅读模式
已经参考了下贴做了设置:
http://www.linuxfans.org/nuke/mo ... 5&highlight=gdm
但是在gdm管理器中还是不能看见新的选项,始终只有gnome,默认两项。
/etc/X11/gdm/Sessions 的目录中有如下文件和内容:fvwm  gnome  xfce

fvwm:
...........................................................
#!/bin/bash
exec /etc/X11/xdm/Xsession fvwm2
............................................................

xfce:
#!/bin/sh
                                                                              
exec /etc/X11/xdm/Xession xfce4
............................................................
gnome:

#!/bin/bash
exec /etc/X11/xdm/Xsession gnome



另/etc/X11/xdm/Xsession的内容如下:
#!/bin/bash
# Copyright (c) 1999-2002 Red Hat, Inc.

# redirect errors to a file in user's home directory if we can
if [ -z "$GDMSESSION" ]; then
    # GDM redirect output itself in a smarter fashion
    errfile="$HOME/.xsession-errors"
    if cp /dev/null "$errfile" 2> /dev/null ; then
        chmod 600 "$errfile"
        exec > "$errfile" 2>&1
    else
        errfile=`mktemp -q /tmp/xses-$USER.XXXXXX`
        if [ $? -eq 0 ]; then
            exec > "$errfile" 2>&1
        fi
    fi
fi

if ! printenv PATH | grep -q /usr/X11R6/bin
then
        PATH="${PATH}":/usr/X11R6/bin
fi

xsetroot -solid '#20305A'

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
userxkbmap=$HOME/.Xkbmap

sysresources=/etc/X11/Xresources
sysmodmap=/etc/X11/Xmodmap
sysxkbmap=/etc/X11/Xkbmap

# merge in defaults
if [ -f "$sysresources" ]; then
    xrdb -merge "$sysresources"
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

# merge in keymaps
if [ -f "$sysxkbmap" ]; then
    setxkbmap $(cat "$sysxkbmap")
    XKB_IN_USE=yes
fi

if [ -f "$userxkbmap" ]; then
    setxkbmap $(cat "$userxkbmap")
    XKB_IN_USE=yes
fi

if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
    if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
       xkbsymbols=`sed -n -e 's/^[     ]*XkbSymbols[   ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
       if [ -n "$xkbsymbols" ]; then
           setxkbmap -symbols "$xkbsymbols"
           XKB_IN_USE=yes
       fi
    fi
fi

# xkb and xmodmap don't play nice together
if [ -z "$XKB_IN_USE" ]; then
    if [ -f "$sysmodmap" ]; then
       xmodmap "$sysmodmap"
    fi

    if [ -f "$usermodmap" ]; then
       xmodmap "$usermodmap"
    fi
fi

unset XKB_IN_USE

# run all system xinitrc shell scripts.
for i in /etc/X11/xinit/xinitrc.d/* ; do
    if [ -x "$i" ]; then
       . "$i"
    fi
done

# is ssh-agent available?
SSHAGENT=
[ -x /usr/bin/ssh-agent ] && SSHAGENT="/usr/bin/ssh-agent"

# now, we see if xdm/gdm/kdm has asked for a specific environment
case $# in
1)
    if [ -x "/usr/share/apps/switchdesk/Xclients.$1" ]; then
       exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.$1";
    fi;

    case "$1" in
    failsafe)
       exec -l $SHELL -c "xterm -geometry 80x24-0-0"
       ;;
    gnome)
       exec -l $SHELL -c "$SSHAGENT gnome-session"
       ;;
   
   fvwm2)
       exec -l $SHELL -c "$SSHAGENT        /usr/share/apps/switchdesk/Xclients.fvwm"
       ;;
    xfce4)
       exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.xfce"
       ;;

    kde|kde1|kde2)
       exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.kde"
       ;;
    twm)
        # fall back to twm
       exec -l $SHELL -c "$SSHAGENT /usr/share/apps/switchdesk/Xclients.twm"
       ;;
    *)
       # GDM provies either a command line as the first argument or
       # provides 'failsafe', 'default' or 'custom'.  KDM will do the
       # same at some point
       if [ -n "$GDMSESSION" -a "$1" != "default" -a "$1" != "custom" ]; then
            exec -l $SHELL -c "$SSHAGENT $1"
       fi
       ;;
    esac
esac

# otherwise, take default action
if [ -x "$HOME/.xsession" ]; then
    exec -l $SHELL -c "$SSHAGENT $HOME/.xsession"
elif [ -x "$HOME/.Xclients" ]; then
    exec -l $SHELL -c "$SSHAGENT $HOME/.Xclients"
elif [ -x /etc/X11/xinit/Xclients ]; then
    exec -l $SHELL -c "$SSHAGENT /etc/X11/xinit/Xclients"
else
    # should never get here; failsafe fallback
    exec -l $SHELL -c "xsm"
fi

红色部分为自己增加,不知对不对..
发表于 2003-12-5 22:52:36 | 显示全部楼层
gnome 多少版本?
我写的这个是用 redhat 自带的 gnome,对 gnome2。4 不适用:(
//
/usr/share/apps/switchdesk/Xclients.fvwm
你的 /usr/share/apps/switchdesk/ 目录
下是否创建了 Xclients.fvwm 文件呢?
//
如果还没有能成功,将你 ~/.xsession-errors 文件 cat 出来看看?
回复

使用道具 举报

发表于 2003-12-6 00:37:44 | 显示全部楼层
如果用的是fedora core或者升级过gdm,那么原来的方法就不行了。
正确的方法是:
在/usr/share/xsessions/加上要选择的创口管理器,里面有一个叫GNOME的文件,实际上叫gnome.desktop,只要仿照这它再创建几个类似的文件就行了。
还有一个办法,就是在$HOME目录里创建一个叫“.xsession”的可执行脚本文件,在里面写上窗口管理器的启动命令,这样只要用这个名字登陆,gdm就会使用你要的那个wm。
回复

使用道具 举报

发表于 2003-12-6 00:53:06 | 显示全部楼层
对升级过的 gnome 我用的是 echo "exec /usr/local/bin/fluxbox" > ~/.xprofile
回复

使用道具 举报

 楼主| 发表于 2003-12-6 08:33:59 | 显示全部楼层
[quote:2e90971f68="Ivn"]gnome 多少版本?
我写的这个是用 redhat 自带的 gnome,对 gnome2。4 不适用:(
//
/usr/share/apps/switchdesk/Xclients.fvwm
你的 /usr/share/apps/switchdesk/ 目录
下是否创建了 Xclients.fvwm 文件呢?
//
如果还没有能成功,将你 ~/.xsession-errors 文件 cat 出来看看?[/quote]

fedora core+gnome2.4,也存在/usr/share/apps/switchdesk/Xclients.fvwm

多谢各位,我再试试cobranail的方法!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 19:04 , Processed in 0.046544 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表