设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> Linux专题 >> Linux应用技巧 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
在Linux系统下面架设Sen…
在Linux操作系统下如何开…
教你用APF和BFD来加强Li…
利用FAM和IMON在Linux下…
教你在Linux操作系统下制…
用Wine在Linux上执行Win…
教你在Linux里实现Inter…
用Ndiswrapper在Linux中…
Windows 打印选项在Linu…
在Linux桌面环境下运行P…
  教你在Linux系统轻松切换X窗口管理器         
教你在Linux系统轻松切换X窗口管理器
 

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

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

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

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

小技巧:利用此脚本,你还可以同时在一台机子的七号及八号虚拟控制台上运行两个完全不同的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 , < lanche@163.com >

  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

  087 echo 'Starting xfce...'

  088 startx

  089 else

  090 echo 'XFCE is not installed on your system!'

  091 fi

  092 ;;

  093 3)

  094 echo 'You chosed icewm'

  095 if [ -f `which icewm` ];then

  096 writerc

  097 echo 'xsetbg -onroot /root/wall.jpg &' >> $HOME/.xinitrc

  098 echo 'exec icewm' >> $HOME/.xinitrc

  099 echo 'Starting icewm...'

  100 startx

  101 else

  102 echo 'Icewm is not installed on your system!'

  103 fi

  104 ;;

  105 4)

  106 echo 'You chosed mlvwm'

  107 if [ -f `which mlvwm` ];then

  108 writerc

  109 echo 'cd /usr/X11R6/lib/X11/mlvwm' >> $HOME/.xinitrc

  110 echo 'xsetbg -onroot /usr/X11R6/lib/X11/mlvwm/mac.jpg &'>> $HOME/.xinitrc

  111 echo 'exec mlvwm' >> $HOME/.xinitrc

  112 echo 'Starting mlvwm...'

  113 startx

  114 else

  115 echo 'Mlvwm is not installed on your system!'

  116 fi

  117 ;;

  118 5)

  119 echo 'You chosed fvwm95'

  120 if [ -f `which fvwm95` ];then

  121 writerc

  122 echo 'exec fvwm95' >> $HOME/.xinitrc

  123 echo 'Starting fvwm95...'

  124 startx

  125 else

  126 echo 'fvwm95 is not installed on your system!'

  127 fi

  128 ;;

  129 6)

  130 echo 'You chosed AfterStep'

  131 if [ -f `which afterstep` ];then

  132 writerc

  133 echo 'exec afterstep' >> $HOME/.xinitrc

  134 echo 'Starting AfterStep...'

  135 startx

  136 else

  137 echo 'AfterStep is not installed on your system!'

  138 fi

  139 ;;

  140 *)

  141 echo 'No one was chosed.'

  142 esac

  143 #

  144 exit 0

  145 #

  146 # End of the script

  
Linux联盟收集整理

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-3-31 2:14:29
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持