在Linux中方便地使用不同X-Windows視窗管理器(轉)

ba發表於2007-08-12
在Linux中方便地使用不同X-Windows視窗管理器(轉)[@more@]   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 中執行透過。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950502/,如需轉載,請註明出處,否則將追究法律責任。

相關文章