在Linux中方便地使用不同X-Windows窗口管理器
2024-07-21 02:37:48
供稿:網友
安徽省淮北市社保局計算中心
沙順義
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 中運行通過。