电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

轻松切换X窗口管理器


发布日期:2021/1/8
 

在Linux下使用XWindow当你也象Lanche一样在系统中安装了七八个窗口管理器时是否也为选择启动哪一个管理器而伤脑筋呢?因为还没有在启动XWindow时可以选择使用哪一个窗口管理器的好工具而且只有极少数的窗口管理器提供直接切换到其它界面的功能比如在mlvwm中可能通过菜单操作来直接启动进入icewm而反之在icewm中却不能直接切换回mlvwm虽然许多Linux发行套件都带有的KDE和Gnome这两个杰出的桌面操作环境可以利用swithdesk工具来实现切换但在切换后仍须重启动X会话才能进入新的桌面环境

要在启动XWindow时可以选择使用哪一个窗口管理器其实最简单的做法就是修改用户主目录下的xinitrc文件利用它来控制启动哪一个窗口管理器这样做既容易又不会影响到其它X资源文件或系统的其它用户可是每次启动不同的窗口管理器时都要手动修改xinitrc文件是不太可取的为了一劳永逸Lanche就写了一个叫做xwin的脚本通过运行这个脚本就可以在每次运行XWindow时任意选择想要启动的Window Manager了

xwin脚本的清单附后在此先作一个简要说明

清单中的行号只是用于阅读在真正的脚本中是没有行号的行在首次运行本脚本时备份你的xinitrc文件行的Functions段有两个函数writerc( )函数将<< RCFILE”和“RCFILE”之间的HERE文本写入$HOME/.xinitrc,它是用于运行位于$HOME/Desktop/Autostart的启动组程序的语句,并非是必须的;getchose( )函数则是显示选择菜单;065-144行判断用户输入的选择动态地修改$HOME/.xinitrc文件然后启动相应的窗口管理器,如果选择了系统中还没有安装的窗口管理器则会给出错误提示。tW.WinGwit.cOm

小技巧:利用此脚本,你还可以同时在一台机子的七号及八号虚拟控制台上运行两个完全不同的X-Window Manager。

xwin脚本清单:

001 #!/bin/sh

002 #

003 # xwin This script display a text menu and allow you to select

004 # which X-Window Manager you want to use

005 # Author: Lanche , < >

006 #

007 # Backcup your $HOME/.xinirtc file while run this

008 # script first time

009 #

010 if [ -f $HOME/.xinitrc~ ];then

011 echo

012 else

013 cp $HOME/.xinitrc $HOME/.xinitrc~

014 fi

015 #

016 # Functions

017 #

018 writerc( ) {

019 tee $HOME/.xinitrc << RCFILE

020 #!/bin/sh

021 #

022 # This file writed by the xwin script

023 #

024 # Start-up items from ~/Desktop/Autostart

025 #

026 for i in \$(ls \$HOME/Desktop/Autostart/); do

027 if test -x \$HOME/Desktop/Autostart/\$i; then

028 \$HOME/Desktop/Autostart/\$i &

030 fi

031 done

032 #

033 # And launch window manager

034 #

035 RCFILE

036 }

037 #

038 getchose( ) {

039 clear

040 echo

041 echo

042 echo

043 echo

044 echo

045 echo

046 echo ' ################################################'

047 echo ' # #'

048 echo ' # 你想使用哪一个窗口管理器? #'

049 echo ' # #'

050 echo ' # #'

051 echo ' # 1 --- kde #'

052 echo ' # 2 --- xfce #'

053 echo ' # 3 --- icewm #'

054 echo ' # 4 --- mlvwm #'

055 echo ' # 5 --- Fvwm95 #'

056 echo ' # 6 --- AfterStep #'

057 echo ' # #'

058 echo ' # #'

059 echo ' ################################################'

060 echo

061 echo -n ' 请选择:'

062 }

063 # End of Functions

064 #

065 getchose

066 read CHOSE

067 #

068 #Start the selected X-window manager

069 #

070 case $CHOSE in

071 1)

072 echo 'You chosed kde'

073 if [ -f `which kde` ];then

074 writerc

075 echo 'startkde' >> $HOME/.xinitrc

076 echo 'Starting kde...'

077 startx

078 else

079 echo 'KDE is not installed on your system!'

080 fi

081 ;;

082 2)

083 echo 'You chosed xfce'

084 if [ -f `which xfce` ];then

085 writerc

086 echo 'exec xfwm' >> $HOME/xinitrc

echo Starting xfce

startx

else

echo XFCE is not installed on your system!

fi

;;

)

echo You chosed icewm

if [ f `which icewm` ];then

writerc

echo xsetbg onroot /root/walljpg & >> $HOME/xinitrc

echo exec icewm >> $HOME/xinitrc

echo Starting icewm

startx

else

echo Icewm is not installed on your system!

fi

;;

)

echo You chosed mlvwm

if [ f `which mlvwm` ];then

writerc

echo cd /usr/XR/lib/X/mlvwm >> $HOME/xinitrc

echo xsetbg onroot /usr/XR/lib/X/mlvwm/macjpg &>> $HOME/xinitrc

echo exec mlvwm >> $HOME/xinitrc

echo Starting mlvwm

startx

else

echo Mlvwm is not installed on your system!

fi

;;

)

echo You chosed fvwm

if [ f `which fvwm` ];then

writerc

echo exec fvwm >> $HOME/xinitrc

echo Starting fvwm

startx

else

echo fvwm is not installed on your system!

fi

;;

)

echo You chosed AfterStep

if [ f `which afterstep` ];then

writerc

echo exec afterstep >> $HOME/xinitrc

echo Starting AfterStep

startx

else

echo AfterStep is not installed on your system!

fi

;;

*)

echo No one was chosed

esac

#

exit

#

# End of the script

上一篇:grub的使用

下一篇:外键约束和参绍约束的实例脚本