分页: 1 / 1

[问题]一个关于.xinitrc的问题(startx 的问题)

发表于 : 2007-09-12 12:01
chasye
以下是本人的.xinitrc(没有安装gdm)
#!/bin/sh
MSLUGX()
{
gngeo mslugx -f
}

ICEWM()
{
cat ~/.icewm/gtkrc-2.0 > ~/.gtkrc-2.0
xrandr -s 0 &
scim -d &
/usr/bin/icewm-session
}

XFCE()
{
if [ -e ~/.gtkrc-2.0 ]; then
echo "" > ~/.gtkrc-2.0
fi
. /etc/X11/Xsession
}

export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN:zh_TW:zh:en_US:en"
#sleep 3 && mpg123 /home/chao/.local/sound/startup.mp3 &

XFCE
#ICEWM
#MSLUGX

exit 0
#end

不过这样问题就出来了,每次要进入不同的桌面(模式)都是通过改.xinitrc,非常麻烦,不知道可不可以在startx 时直接传个参数过去,让它选择呢?

发表于 : 2007-09-12 18:33
bones7456
同问。

发表于 : 2007-09-12 18:52
雕啸长空
搞参数多麻烦,还不如做好几个对应的xinitrc,再建对应WM的启动脚本,里面直接copy盖掉当前的...不需要什么技术含量........

PS:不要鄙视菜鸟......

代码: 全选

#!/bin/bash
cp /xxx/xinitrc_kde  ~/.xinitrc && startx

代码: 全选

#!/bin/bash
cp /xxx/xinitrc_gnome  ~/.xinitrc && startx

代码: 全选

#!/bin/bash
cp /xxx/xinitrc_xfce  ~/.xinitrc && startx

发表于 : 2007-09-12 20:01
雕啸长空
装了个fluxbox,试了个更土的办法:

代码: 全选

startx startkde  <--启动kde
startx fluxbox    <--启动fluxbox

代码: 全选

fideas@zerone ~ $ cat .xinitrc
source /home/fideas/env/envset &&
exec  $@

代码: 全选

fideas@zerone ~ $ cat env/envset
export LANG="en_US.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export XMODIFIER="@im=fcitx"
export XMODIFIERS="@im=fcitx"
fcitx &
自己写个条件判断,简化后面那个恶心的参数?

发表于 : 2007-09-12 21:26
jarryson
这个想法我也想过。因为我用slim代替gdm。因为不用gnome所以没有必要用gdm。

slim是通过.xinitrc来启动x的。但是没有办法更改wm。

exec /bin/bash -login ~/.xinitrc %session

这个是slim里面启动的脚本。应该是可以通过定义%session来启动session的。可惜我还是不会

发表于 : 2007-09-13 15:44
chasye
以下是本人刚写的脚本,与上面的脚本一起用的, 以后算是不用手动改了
#!/bin/sh
FILE=~/.xinitrc

case $1 in
xfce)
perl -pi -e 's/^ICEWM$/#ICEWM/' $FILE
perl -pi -e 's/^MSLUGX$/#MSLUGX/' $FILE
perl -pi -e 's/#XFCE/XFCE/' $FILE
;;
icewm)
perl -pi -e 's/^XFCE$/#XFCE/' $FILE
perl -pi -e 's/^MSLUGX$/#MSLUGX/' $FILE
perl -pi -e 's/#ICEWM/ICEWM/' $FILE
;;
game)
perl -pi -e 's/^ICEWM$/#ICEWM/' $FILE
perl -pi -e 's/^XFCE$/#XFCE/' $FILE
perl -pi -e 's/#MSLUGX/MSLUGX/' $FILE
;;
*) echo "Unknown Option"
exit 0
;;
esac
startx
exit 0