X Window 系統(tǒng)使用指南--全部放在一起--xdm
第20章 全部放在一起 -- xdm 現(xiàn)在我們已涵蓋了你需要用到X的所有個(gè)別的項(xiàng)目,你知道如何啟動(dòng)系統(tǒng), 如何設(shè)定一個(gè)視窗管理器的執(zhí)行,如何執(zhí)行應(yīng)用程式,如何從不同的角度定制 系統(tǒng),最後,如何退出系統(tǒng)。
本章中,我們把這些分開(kāi)的部份放在一起,且描述一個(gè)完整的檔案設(shè)定, 用來(lái)定制涵蓋所有的□例功能系統(tǒng)機(jī)器環(huán)境。在本章我們將看到我們所要介紹 給你的最後一個(gè)X的工具:顯示管理器(display manager) -- xdm,它提供一 個(gè)精巧和清楚的方法在你的機(jī)器上啟動(dòng)X。
20.1 我們需要做些什麼
當(dāng)我們啟動(dòng)之後,我們需要安排螢?zāi)唬屢恍┪覀冊(cè)谡麄€(gè)執(zhí)行期間中都會(huì) 使用的應(yīng)用程式適得其所,讓一些偶然用到的則以表徵圖為開(kāi)始時(shí)的表示方式。 我們需要執(zhí)行視窗管理器,對(duì)某些種類的功能做一些設(shè)定。詳細(xì)來(lái)說(shuō),我們需 要下列的程式:
.一個(gè)xterm 的主控臺(tái),在螢?zāi)蛔笊辖恰?
.uwm 在背景下執(zhí)行。
.一個(gè)我們的(正常)編輯器的全螢?zāi)粁term 視窗,以表徵圖啟始。
.在右上角一個(gè)(較一般為小)的時(shí)鐘。
.xbiff 在時(shí)鐘之下。
.一個(gè)計(jì)算器在右下角。
.一個(gè)用到我們所有最小的字型的表徵圖化的xterm ,它的高度為screen高。
.在xbiff 之下,排列我們使用遠(yuǎn)方機(jī)器的頻率圖。
除了程式之外的項(xiàng)目:
.設(shè)定背景視窗為亮灰色。
.啟動(dòng)鍵盤(pán)滴答(key-click) 的功能。
.從我們常用的網(wǎng)路主機(jī)存取到我們的server。
.載入我們對(duì)所有clIEnt用到的server設(shè)定的resource,在16章我們定義 的$HOME/.Xresources 檔案中,根視窗RESOURCE_MANAGER性質(zhì)之上。
.啟動(dòng)一個(gè)screen saver。
并且我們需要uwm 有選單讓我們能夠:
.容易地存取在網(wǎng)路上其它的主機(jī)。
.變更一些鍵盤(pán)和滑鼠的設(shè)定,且設(shè)定背景視窗的顏色。
.啟動(dòng)那些我們偶而會(huì)用到的應(yīng)用程式。
.啟動(dòng)一些被選定的示□程式。
對(duì)這些我們自己的設(shè)定,在我們網(wǎng)路上其它的使用者需要不同的初始設(shè)定, 所以我們需要安排每一個(gè)使用者依他們自己的喜好設(shè)定,理想上,使用者應(yīng)能 自行設(shè)定而毋需藉系統(tǒng)管理者的幫助,下一節(jié)我們來(lái)看程式xdm 如何能幫助我 們達(dá)成這些目的。
20.2 xdm -- X顯示管理器(X Display Manager)的概觀
xdm 管理一或多個(gè)顯示器,xdm 可在同一機(jī)器或遠(yuǎn)方的機(jī)器上執(zhí)行。它可 以做到所有xinit 能做到的,而且更多。它所隱含的概念為它應(yīng)控制當(dāng)你在X 工作時(shí)的完整周期 (session),意即從你進(jìn)入直到結(jié)束視窗系統(tǒng)的周期。(用 xinit ,有效周期為當(dāng)你執(zhí)行xinit 開(kāi)始,到你結(jié)束(logout)最初的xterm 視窗和關(guān)閉server。)
xdm 較這更進(jìn)一步:你可以用它執(zhí)行一個(gè)不確定的周期。當(dāng)一個(gè)結(jié)束,下 一個(gè)便準(zhǔn)備開(kāi)始。實(shí)際上,如果你有需要,它讓你不變地指定一個(gè)顯示器。
xdm 完全取代xinit 。從現(xiàn)在起你可忘掉xinit ,而且不再需要使用它, 我們?cè)谧畛跏褂脁init 的原因?yàn)樗^易觀察和了解系統(tǒng)的運(yùn)作。
xdm 是一個(gè)非常靈活的程式,你幾乎可用它建構(gòu)任何你所需要的,在進(jìn)一 步深入之前,讓我們觀察一個(gè)□例周期的預(yù)設(shè)行為,然後我們來(lái)看一看你如 何改進(jìn)當(dāng)一個(gè)使用者進(jìn)入X系統(tǒng)所看到的初始介面。
20.2.1 一個(gè)用xdm 的□例周期
我們將使用xdm 來(lái)設(shè)定在我們機(jī)器上執(zhí)行的X。你的機(jī)器已經(jīng)啟動(dòng),但尚 未有視窗系統(tǒng)在其上執(zhí)行。用下列的命令啟始xdm
xdm
xdm 開(kāi)始執(zhí)行,你幾乎立刻又看到你的shell 提示。然後螢?zāi)槐尘白兏鼮? 通常灰色形式,且你看到一個(gè)大的X游標(biāo),所以你知道server已經(jīng)啟始。
接下來(lái)是一長(zhǎng)段修止?fàn)顟B(tài) -- 大約接續(xù)15秒或更久 -- 而後突然間一個(gè)帶 著歡迎標(biāo)題的視窗出現(xiàn)了,要求你的登錄名稱(login name)和密碼(passWord), 如圖20-1(這是xdm 的authentication widget )。輸入你的使用者名稱和密 碼,又過(guò)了一會(huì)兒,你可以看到一個(gè)xterm 視窗在左上角出現(xiàn),就如同圖5-3 一般,從現(xiàn)在起,你工作的方式和以前相同 -- 啟動(dòng)你的視窗管理器,執(zhí)行應(yīng) 用程式等等。
┌——————————————————————┐ │ FIG 20.1 P.251 │ │ │ │ 圖20-1 xdm 的 authentication widget │ └——————————————————————┘
當(dāng)你需要結(jié)束時(shí),你也可用像以前相同的方式結(jié)束:logout最初始的xterm 視窗。但這里xdm 和xinit 有不相同的地方,代之關(guān)掉server的是,回到非X 的環(huán)境,螢?zāi)换氐阶畛跏蓟疑谋尘埃^(guò)一下子之後,你又再度看到X的登錄 視窗。事實(shí)上,xdm 是執(zhí)行一個(gè)循環(huán)的周期。
注意:就像許多的Unix程式,最大的登錄名稱長(zhǎng)度為8 個(gè)字元 -- 如果超 過(guò)這個(gè)長(zhǎng)度,login 將會(huì)失敗。(如果你的實(shí)際login 程式允許你使用較長(zhǎng)的 名稱,這種限制也許讓你感到奇怪。)
關(guān)閉xdm
有時(shí)你可能需要完全地關(guān)閉X。為了做到這點(diǎn),你需要關(guān)閉xdm 。
在MIT 版中的server,會(huì)依循如果收到Unix訊號(hào)SIGTERM ,便會(huì)執(zhí)行中止 程序。xdm 利用到這點(diǎn):如果你送給它一個(gè)SIGTERM ,它將中止所有它所控制 的server後離開(kāi)。這就是你中止系統(tǒng)的方法。
欲實(shí)際地中止xdm ,可以在一個(gè)xterm 視窗(在你的機(jī)器上)用ps來(lái)找出 xdm 的process-id,而後用kill送給它SIGTERM (你將看到數(shù)個(gè)xdm 處理的執(zhí) 行:那個(gè)最年輕的便是你要的,也就是說(shuō),最低的process-id)。例如,在我 們的機(jī)器上執(zhí)行中止的動(dòng)作:
venus% ps ax 1 grep xdm 1997 ? IW 0:00 xdm 1998 ? IW 0:00 xdm 2000 ? IW 0:00 xdm 2078 p0 S 0:00 grep xdm venus% kill -TERM 1997
你所有的應(yīng)用程式將被強(qiáng)迫中止,server也隨之關(guān)閉。
注意:當(dāng)相關(guān)於X的每一件事都結(jié)束後,你的螢?zāi)豢赡苤伙@示通常X背景 的灰色形式,沒(méi)有任何的shell 提示或任何事。不要被愚弄了:你的shell 已 準(zhǔn)備好接受你的命令 -- 按下RETURN鍵你將會(huì)看到。(因?yàn)樵谀阋越徽勈较? xdm 命令之後,shell 已將提示號(hào)送出,所以不再重覆 -- 除非你按下RETURN)。
20.3 有關(guān)xdm 的更多
我們?cè)谇八鰹閤dm 的預(yù)設(shè)模式的操作,所以看起來(lái)并沒(méi)有比xinit 提供 得更多,如果你使用一個(gè)正常的工作站或顯示器,一些外貌將不是很有趣。無(wú) 論如何,X終端機(jī)(x-terminal)是一個(gè)日漸增加的大眾化設(shè)備,而xdm 可大量 地簡(jiǎn)化管理類似的系統(tǒng)。X終端機(jī)通常沒(méi)有它自己的檔案系統(tǒng),且不能支援一 般目的的程式,必需在網(wǎng)路的某處執(zhí)行包含視窗管理器和顯示管理器的控制終 端機(jī)軟體,xdm 正是符合此需要的軟體。
xdm 在下列這些場(chǎng)合較xinit 為優(yōu):
.它可控制數(shù)個(gè)server,也暗示說(shuō),其中有一些為遠(yuǎn)方的server,也許是 在X終端機(jī)或相當(dāng)小的工作站上。
.它提供密碼來(lái)存取系統(tǒng),同樣地,在X終端機(jī)上非常有用(但在一個(gè)你 已經(jīng)login 的工作站會(huì)有一點(diǎn)困擾。)
.它提供無(wú)限期的X的周期。你可以建構(gòu)顯示器經(jīng)常性地以X操作,所以 使用者毋需擔(dān)心如何啟始系統(tǒng)。
.它具有高度的建構(gòu)性,系統(tǒng)管理者可以設(shè)定依機(jī)器特性的啟始和結(jié)束程 序,掌握這些項(xiàng)目以供記帳(accounting),授權(quán)(authorization) ,檔 案系統(tǒng)等之用,且能讓每一個(gè)個(gè)別的使用者全□圍性地修定他們所需的 自己的環(huán)境。
.從使用者的觀點(diǎn),它提供一個(gè)乾凈而簡(jiǎn)單的方法來(lái)啟動(dòng)系統(tǒng)。
所以大體上,xdm 主要是一個(gè)系統(tǒng)管理工具,但它也提供讓一個(gè)普通使用 者定制他所希望的一致和一貫地系統(tǒng)架構(gòu)。
xdm 的指南頁(yè)包含了大量的有關(guān)如何使用系統(tǒng)的教學(xué)資訊和指引,在此我 們不再重覆,我們將在以下的章節(jié)說(shuō)明如何正確地建構(gòu)xdm 以提供在本章一開(kāi) 頭所描述的環(huán)境。
xdm 真的非常有彈性,且你可以用許多不同的方式選擇設(shè)定,我們將使用 最簡(jiǎn)單的處理,并試著大致和指南頁(yè)的描述保持一致,偶而我們?cè)谝恍n 案中使用不同的名稱,用以強(qiáng)調(diào)此名稱并非硬性的規(guī)定。
在我們工作的周期中,請(qǐng)對(duì)我們事實(shí)上在扮演兩個(gè)不同的角色保持概念: 第一是系統(tǒng)管理者,對(duì)於使用系統(tǒng)的任何人來(lái)設(shè)定xdm ,第二是一般的使用者 ,為我們自己的需求設(shè)定xdm 。
20.3.1 系統(tǒng)管理者對(duì)xdm 的建構(gòu)
預(yù)設(shè)xdm 先查看檔案
/usr/lib/X11/xdm/xdm-config
如果它存在,會(huì)把它當(dāng)成多設(shè)定幾個(gè)其它參數(shù)的resource檔案。我們將使用它, 因?yàn)樗珊?jiǎn)化我們的工作。
指南頁(yè)會(huì)列出所有你能藉xdm-config檔案設(shè)定的參數(shù),但我們較有興趣的有:
.包含一個(gè)server的目錄的檔案名稱。
.當(dāng)任何錯(cuò)誤發(fā)生時(shí),xdm 用來(lái)記錄的檔案名稱。
.包含和啟始系統(tǒng)有關(guān)的檔案系統(tǒng)名稱。
.當(dāng)server啟動(dòng)後執(zhí)行程式的名稱,這個(gè)程式定義了你的”周期” -- 當(dāng) 這個(gè)程式中止時(shí),xdm 視其意義為你的周期已結(jié)束,且回到它login 時(shí) 的順序,預(yù)設(shè)這個(gè)程式為xterm ,就和使用xinit 一樣,你的周期持續(xù) 直到你logout你初始的xterm 。
這是我們已在系統(tǒng)上定義的設(shè)定:
DisplayManager.severs: /usr/lib/X11/xdm/our-server DisplayManager.errorLogFile: /usr/lib/X11/xdm/errors DisplayManager*resources: /usr/lib/X11/xdm/our-resources DisplayManager*session: /usr/lib/X11/xdm/our-session
(我們已選擇保持所有xdm 相關(guān)的檔案在目錄/usr/lib/X11/xdm,這只是代表 名稱,你可以用任何你喜歡的目錄。)
所以你可以看到我們使用xdm-config,實(shí)際上是一個(gè)兩步驟的處理方法, 首先我們定義在xdm-config中的一些檔案名稱,接著我們來(lái)設(shè)定方才命名的檔 案。現(xiàn)在我們來(lái)看一下我們?cè)趚dm-config中定義的每一個(gè)resource。
xdm 的server的名單
這個(gè)被DisplayManager.servers設(shè)定的檔案的resources 包含了一個(gè)xdm 能管理的server的名單。每一列中包含了server的名稱(也就是顯示器), server的型態(tài)(type),和型態(tài)有關(guān)的項(xiàng)目。
型態(tài)指出了顯示器是本地的或遠(yuǎn)方的。和是否為無(wú)限或單一的周期(詳見(jiàn) xdm 指南頁(yè))。我們將使用型態(tài)localTransient -- 單一周期在本地顯示器上 -- 因?yàn)橐源朔绞剑绻l(fā)生任何錯(cuò)誤,我們不致於陷入無(wú)窮回圈中。稍後, 當(dāng)我們每件事都設(shè)定好且執(zhí)行無(wú)誤的話,我們會(huì)將型態(tài)改為本地而循環(huán)的周期。
對(duì)本地的顯示器而言,和型態(tài)相關(guān)的訊息是在此顯示器上執(zhí)行的server程 式的名稱及其任何所需的引數(shù)。對(duì)遠(yuǎn)方的顯示器,此訊息可被忽略,但你仍需 輸入一個(gè)假的(dummy) 程式名稱。
所以,在我們所建立的檔案/usr/lib/xdm/our-servers包含這一行:
:0 localTransient /usr/bin/X11/X :0
(如果我們喜歡執(zhí)行循環(huán)周期,此檔案便不再需要 -- 預(yù)設(shè)設(shè)定會(huì)做到我們所 需要的 -- 所以我們?cè)诮?gòu)檔中不需定義DisplayManagers.servers resource。)
xdm 的錯(cuò)誤登錄檔案
此檔案從xdm 和xdm 的周期程式接收所有錯(cuò)誤的訊息,且如果你的xdm 設(shè) 定工作發(fā)生問(wèn)題的話,這是第一個(gè)需要查看的地方。
當(dāng)你開(kāi)始設(shè)定你的系統(tǒng),對(duì)此檔案設(shè)定任何人均可寫(xiě)入,否則,有問(wèn)題的 程式可能因沒(méi)有寫(xiě)入許可而無(wú)法在檔案中記錄。
啟始時(shí)的resource檔案
此檔案包含一個(gè)resource的名單,在Authentication Widget 啟始之前被 xrdb載入。因此,你能用它來(lái)為那些widget設(shè)定resource。(你當(dāng)然也能放置 任何其它的resource規(guī)格,但通常周期程式的使用者設(shè)定載入時(shí)會(huì)凌駕其上, 所以通常不把其它的規(guī)格放在這里。)
authentication widget resource的預(yù)設(shè)設(shè)定在某些情況是很細(xì)的,但為 了舉例,我們只設(shè)定和bunner不同的標(biāo)題,我們建立我們的檔案
/usr/bin/X11/xdm/our-resources 包含一行:
xlogin.Login.greeting:X-Window on the Plants network
xdm 的'Session(周期)'程式
你可以指定任何程式為你周期中所需的程式,可是當(dāng)周期結(jié)束,你通常選 擇一個(gè)程式讓你能啟始其它的程式,你能依賴xdm 的預(yù)設(shè)設(shè)定執(zhí)行xterm ,但 這種方式每當(dāng)xterm 執(zhí)行時(shí)你仍必需手動(dòng)所有你的設(shè)定。我們需要定義我們的 周期程式來(lái)做所有我們的設(shè)定,且保持活動(dòng)(active)的狀態(tài)直到我們結(jié)束它為 止,但記住,我們希望使用者如果需要能定義他們自己的周期程式,所以我們 將使用兩階段的處理,如果是系統(tǒng)管理者,我們將設(shè)定一個(gè)一般性目的,基礎(chǔ) 的,周期程式來(lái)召換一個(gè)使用者自己的程式(如果它存在),但其它方面將執(zhí) 行一個(gè)合理預(yù)設(shè)。當(dāng)個(gè)別的使用者,我們將定義我們自己的設(shè)定周期,它將被 xdm 的一般目的程式執(zhí)行(我們?cè)诹硗庖还?jié)討論它)。
我們的基本的site-wide 周期程式非常簡(jiǎn)單,如果使用者有設(shè)定檔案 $HOME/.Xsession 的常規(guī)我們便使用之,否則,我們將執(zhí)行合理的預(yù)設(shè) -- 啟 動(dòng)uwm 而後傳遞控制到一個(gè)xterm(xterm為我們指定在螢?zāi)蛔笊戏降哪且粋€(gè)) 。但在做之前,我們先檢查是否使用者設(shè)定了檔案$HOME/.Xresources(其它的 常規(guī)),如果有的話,我們用xrdb載入它。一個(gè)完整的程式名單如圖20-2。
┌——————————————————————┐ │ FIG 20.2 P.257 │ │ │ │ 圖20-2 程式/usr/lib/X11/xdm/our-session │ └——————————————————————┘
20.3.2 我們自己對(duì)於xdm 的建構(gòu)
現(xiàn)在我們改變角色:我們不再是系統(tǒng)管理者,而是一個(gè)使用者。我們可以 依賴系統(tǒng)管理者已定義之預(yù)設(shè)周期,但我們比較喜歡定義自己的周期,所以我 們要獲取那些說(shuō)明我們所需的起始設(shè)定。
我們的實(shí)例.Xsession
我們已建立我們自己的$HOME/.Xsession,如圖20-3,且此螢?zāi)怀跏嫉慕?gòu) 在它執(zhí)行之後會(huì)如圖20-4。此程式的操作十分直接,但當(dāng)你自行設(shè)定時(shí)有一些 要點(diǎn)需要注意,且當(dāng)你建立site-wide 周期程式也是一樣。我們假設(shè)你的周期 程式是一個(gè)shell :雖非必定,但通常都是(除非你要寫(xiě)一個(gè)xetrm 的復(fù)雜的 代替品)。
┌——————————————————————┐ │ FIG 20.3 P.258 │ │ │ │ 圖20-3 $HOME/.Xsession 程式 │ └——————————————————————┘
┌——————————————————————┐ │ FIG 20.4 P.259 │ │ │ │ 圖20-4 我們初始化後的螢?zāi)?│ └——————————————————————┘
.檔案中的命令依序排列,所以最後一行所執(zhí)行的是一個(gè)程式,它可以持 續(xù)整個(gè)你的周期。(因?yàn)椋?dāng)此程式結(jié)束,則周期程式結(jié)束,且每一件 事也均將結(jié)束)。
.除了在背景中最後的命令所有的命令均被執(zhí)行,也就是說(shuō),在命令列最 後加一個(gè)ampersand(&) 號(hào)。如果你不這樣做,此周期將從不獲取過(guò)去 的任何不確定地執(zhí)行的程式。例如:在我們的實(shí)例程式,如果我們?cè)趗wm 那一行省略'&' 號(hào),uwm 會(huì)啟動(dòng),但在uwm 結(jié)束時(shí),它的下一行將不會(huì) 繼續(xù)執(zhí)行,絕不!
.最後的命令必為exec的命令,所以它繼續(xù)執(zhí)行且保持你的周期繼續(xù)活動(dòng)。 (如果你像其它命令一樣在背景中執(zhí)行它,它會(huì)好好的執(zhí)行,但此周期 程式執(zhí)行至檔案結(jié)束將會(huì)中斷,而結(jié)束周期。如果你不用exec,且省略 '&' 號(hào),則它會(huì)執(zhí)行且此周期將完美地持續(xù)工作,你只是較你所需的多 執(zhí)行了一個(gè)處理,就如同你仍有最後的程式(last program)和周期程式 本身。)
.對(duì)所有的程式建立視窗時(shí)設(shè)定geometry規(guī)格 -- 否則當(dāng)它們啟動(dòng)時(shí)你將 以”手動(dòng)”方式指定它們的位置。
.在檔案中最後一行的程式通常用來(lái)啟動(dòng)xterm ,因?yàn)樗x了你周期的 生命期,在你執(zhí)行X時(shí)此視窗總是存在,所以你通常設(shè)定兩個(gè)特別的選 項(xiàng):
1 .使用-C選項(xiàng)使得xterm 為一個(gè)”主控臺(tái)”,所以系統(tǒng)訊息會(huì)在它的 視窗顯示。
2 .設(shè)定-ls 選項(xiàng)使它的shell 為login shell 。如此使得shell 讀入 你的.login或.profile,所以你的環(huán)境變數(shù)會(huì)適當(dāng)?shù)卦O(shè)定。(如果 你不這樣做,你只有一點(diǎn)兒定義:DISPLAY,HOME,USER,PATH和SHELL.)
3 .此周期程式檔案必需有執(zhí)行許可。使用上述site-wide 周期程式, 這對(duì)使用者周期script不是絕對(duì)需要,它實(shí)際是對(duì)site-wide 程式 本身。(如果那不能執(zhí)行,你只能獲得xdm 的預(yù)設(shè)設(shè)定。)
在裝設(shè)你的.Xsession 和依賴它啟始你的視窗周期之前,最好能夠從一個(gè) xterm 視窗啟動(dòng)你的.Xsession 以嚴(yán)格測(cè)試它。
20.4 我們自己的uwm 建構(gòu)
我們需要設(shè)定四個(gè)uwm 選單:一是連接到其它的主機(jī),二是執(zhí)行一些X的 應(yīng)用程式,三是設(shè)定一些鍵盤(pán)和滑鼠參數(shù)(有點(diǎn)兒像預(yù)設(shè)的Preference選單), 四是執(zhí)行展示程式。
對(duì)我們的”主機(jī)”選單,我們現(xiàn)在希望只要藉著從選單中選取主機(jī)名稱便 可在任何主機(jī)上啟動(dòng)xterm 。我們常常需在mars上做一些系統(tǒng)管理,所以我們 將設(shè)定選擇在其上為超級(jí)使用者(super user),我們將在左下角建立一個(gè)超級(jí) 使用者視窗,但對(duì)一般的xterm ,我們省略geometry規(guī)格,所以當(dāng)它建立時(shí), 我們可以明確地定位它。我們將以META-SHIFT-LEFT 系結(jié) (bind) 此選單。所 以在我們的$HOME/.uwmrc中我們包含了此列。如圖20 - 5.
┌——————————————————————┐ │ FIG 20.5 P.260 │ │ │ │ 圖20-5 在$HOME/.uwmrc的主機(jī)選單 │ └——————————————————————┘
其它三個(gè)選單我們不常用,所以我們均以META-SHIFT-MIDDLE 系結(jié)它們, 這沒(méi)什麼特別,但注意Misc. 不包含一個(gè)內(nèi)建的混雜的uwm 和shell 命令。這 些對(duì)應(yīng)到.uwmrc的項(xiàng)目如圖20 - 6。
┌——————————————————————┐ │ FIG 20.6 P.261 │ │ │ │ 圖20-6 在$HOME/.uwmrc中其它的選單 │ └——————————————————————┘
uwmrc 剩馀的部份 (見(jiàn)圖20 - 7),我們用以設(shè)定定制系結(jié)和一般視窗建構(gòu) 操作的參數(shù)。注意下列幾點(diǎn):
.我們選擇一個(gè)較預(yù)設(shè)稍大的字型 (用'menufont=fixed'),降低選單選項(xiàng) 中的空白空間 (用'vmenupad=1'),所以選單不會(huì)很大。(menufont 可能 未在指南頁(yè)中描述)
.我們?cè)O(shè)定所有的選單,系結(jié)和變數(shù)可被重設(shè)(用resetmenus等等),這 清除了uwm 的建構(gòu),所以我們不用混雜的預(yù)設(shè)建構(gòu)和我們自己的建構(gòu)做 結(jié)束。
.如果可能,我們較愿意使用滑鼠的UP事件函數(shù)而非DOWN:這種方式你能 藉著在松開(kāi)按鈕之前按下其它的按鈕,來(lái)改變你的主意或中止操作。 (但你不能將move操作系結(jié)到一個(gè)UP事件。)
.我們已包含一些定義uwm 選單的功能 -- 一個(gè)是殺掉應(yīng)用程式視窗,另 一個(gè)是重新啟始uwm 。它們不是必要的,但當(dāng)你對(duì)系統(tǒng)很有經(jīng)驗(yàn)時(shí)會(huì)很 有用。
┌——————————————————————┐ │ FIG 20.7 P.262 │ │ │ │ 圖20-7 在$HOME/.uwmrc中系結(jié)和參數(shù)的設(shè)定 │ └——————————————————————┘
20.5 結(jié)論
你已涵蓋了core版中所有使用者層次的程式和如何使用它們。
你現(xiàn)在能夠自行設(shè)定和修訂成你所需的系統(tǒng)。大部份的修訂局限於你的家 目錄(home Directory)中的三個(gè)檔案 -- .Xsession, .Xresources和.Uwmrc -- 所以它很容易控制你的環(huán)境,且可在你的系統(tǒng)管理者所設(shè)定的任何設(shè)計(jì)下 執(zhí)行。
我們涵蓋了一大堆的材料,且有許多的新觀念包含進(jìn)來(lái),所以你尚未能完 全吸收它,這不是我們所預(yù)期的,現(xiàn)在因?yàn)槟阋延眠^(guò)系統(tǒng)一段期間,所以回頭 重讀系統(tǒng)的觀念概觀,你將發(fā)現(xiàn)你了解更多,且你可看到在系統(tǒng)表面之後的動(dòng) 機(jī)。
當(dāng)你使用系統(tǒng)越多次,你將發(fā)現(xiàn)有一些面貌是你不喜歡的,但這些系統(tǒng)并 沒(méi)有。有一些工具和視窗相關(guān)程式可簡(jiǎn)化你的工作,且有一些應(yīng)用程式對(duì)X提 供介面有大利益,但不包含在此版本中,別失望! -- 看contrib 版軟體來(lái)取 代它。現(xiàn)在你知道基本系統(tǒng)的限制和能力,看一看其他的人利用它們做了什麼 ,這也是你可能需要系統(tǒng)做的。
本書(shū)的目的是讓你有一個(gè)開(kāi)始 -- 它并無(wú)意當(dāng)一本完整的參考手冊(cè)。在某 些地方我們忽略了一些程式不常用的細(xì)節(jié)和那些對(duì)初學(xué)者易產(chǎn)生混淆和較復(fù)雜 的部份。但現(xiàn)在你能回頭重讀系統(tǒng)提供的文件,指南頁(yè)和其它的資料是非常龐 大的,如果你知道你要做什麼和只是要某一點(diǎn)復(fù)習(xí)一下你的記憶,或找出某些 事如何正確的執(zhí)行,你將在其中的某處找到它們。現(xiàn)在你已會(huì)使用系統(tǒng)和中止 系統(tǒng),你能明白參考手冊(cè)的意義,為了幫助你找出你自己貫通文件的方法,我 們有一個(gè)附錄包含了在這個(gè)版本中的資料名單,告訴你在何處找到它們,和如 何更進(jìn)一步的去探討系統(tǒng)。
所以,現(xiàn)在我們只剩下一句話給您:祝一切順利!
