在Linux中方便地使用不同X-Windows窗口管理器

王朝system·作者佚名  2006-11-24
宽屏版  字体: |||超大  

X Windows 是 Linux 和许多其它 Unix 系统使用的、与 Microsoft Windows类似的图形窗口系统,在许多发行的 Linux 版本中包括的 X11 是 X Windows 的一个版本,主要支持各种 intel x86 平台的unix系统,与 Microsoft Windows 不同的是它被设计成网络化的客户机/服务器程序,窗口管理器只是一种运行在 X11服务器上的客户程序,因此,可以有许多风格各异的窗口管理器,用户能够根据自己的喜好任意选择一种来管理自己的屏幕窗口和程序。在 RedHat Linux 5.1中自带了 fvwm2(默认)、frwm、twm、motif等窗口管理器,笔者又安装了流行的 kde和独特的 enlighte,经常根据具体需要启动不同的管理器,但是,选择的灵活性也带来了操作上的不便,启动各种管理器要用不同的方法,有时还需要改动配置文件,十分麻烦,为了能够方便的使用各种窗口管理器,我修改了系统默认的 X 窗口管理器启动程序 startx,利用命令行参数方便地启动不同的窗口管理器,具体方法如下:

编辑 /usr/X11/bin/startx,在下面语句:

whoseargs="client"

while [ "x$1" != "x" ]; do

case "$1" in

/''*|\.*) if [ "$whoseargs" = "client" ]; then

clientargs="$1"

else

serverargs="$1"

fi ;;

--) whoseargs="server" ;;

*) if [ "$whoseargs" = "client" ]; then

clientargs="$clientargs $1"

else

serverargs="$serverargs $1"

fi ;;

esac

shift

done

xinit $clientargs -- $serverargs

之前的任一空处(不要写在控制语句块内和程序开头)插入以下语句:

case "$1" in

"kde") if [ -r "/etc/X11/xinit/Xclients.kde" ]; then

cp /etc/X11/xinit/Xclients.kde $HOME/.Xclients

fi ;;

"mwm") if [ -r "/etc/X11/mwm/Xclients" ]; then

cp /etc/X11/mwm/Xclients $HOME/.Xclients

fi ;;

"twm") if [ -r "/etc/X11/twm/Xclients" ]; then

cp /etc/X11/twm/Xclients $HOME/.Xclients

fi ;;

*) if [ -r "/etc/X11/xinit/Xclients" ]; then

cp /etc/X11/xinit/Xclients $HOME/.Xclients

fi ;;

esac

上面用到的 /etc/X11/twm/Xclients 程序是笔者为启动 twm 编写的,内容如下:

#!/bin/bash

xpmroot /usr/X11R6/include/X11/pixmaps/rhpenguin.xpm

xterm -title "Hello,welcome to twm!" &

exec twm

仿照这个 Xclients 程序可以编写未提供 Xclients 的其它窗口管理器的Xclients 程序。

根据具体情况修改、增加 case 选项即可满足不同需要。

修改后程序的运行方法为:startx [ kde | mwm | twm ],例如:运行startx kde 命令即可启动 kde,运行不带参数的 startx 命令启动系统默认的fvwm95。

---- 以上程序在 RedHat Linux 5.1 中运行通过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有