X Window 系統(tǒng)使用指南--進(jìn)一步介紹uwm和如何定制它
第19章 進(jìn)一步介紹 uwm 和如何定制它 在第6章,你學(xué)到如何使用uwm 來完成基礎(chǔ)的視窗建構(gòu)工作需求,而能以一個(gè) 舒服的方式使用視窗。現(xiàn)在我們繼續(xù)談視窗,集中於兩個(gè)主要的□圍:
1.此程式所提供的一些特別的特色,特別是:
.不使用選單,直接使用滑鼠建構(gòu)視窗。
.我們尚未描述過的一些選單選擇。
.編輯現(xiàn)存表徵圖的標(biāo)題。
2.如何定制uwm ,包含:
.對(duì)任何你所需的命令定義你自己的選單。
.將各種不同的視窗管理器功能系結(jié)到滑鼠按鈕和修飾鍵 (SHIFT, CONTROL 等等)。
19.1 uwm 的新特色
現(xiàn)在我們來討論一些在先前介紹視窗管理器時(shí),為了保持盡量地簡單,而省略 的標(biāo)準(zhǔn)的uwm 功能。
19.1.1 不使用uwm 的選單來管理視窗
直到目前,你仍然依賴著uwm 的選單來建構(gòu)你的視窗 -- 移動(dòng)它們、對(duì)它們重 定大小等等。如果所有的情況都使用選單,是相當(dāng)慢的,所以u(píng)wm 提供你可直 接完成它任何命令的選項(xiàng)。
你可以使用滑鼠按鈕和修飾鍵,來指定你要執(zhí)行的功能,和所要操作的視 窗。你現(xiàn)在應(yīng)該已非常熟悉各種不同的視窗管理器功能和它們?nèi)绾喂ぷ鳎? 我們將很快地說明如何不使用選單來選擇這些功能。
Move:移動(dòng)一個(gè)視窗
1.按下META鍵,保持按住。 2.指標(biāo)位置所在的視窗將被移動(dòng)。 3.用右按鈕,拖拽視窗到新的位置。
Resize:重定一個(gè)視窗的大小 1.按下META鍵,保持按住。 2.指標(biāo)位置所在的視窗將被重定大小。 3.用中按鈕,拖拽視窗的外框到新的大小。
Lower:將一個(gè)視窗送到堆疊的底部 1.按下META鍵,保持按住。 2.將欲被送到堆疊的底部的視窗,碰觸一下左按鈕。
Raise:將一個(gè)視窗升到堆疊的頂端。 1.按下META鍵,保持按住。 2.將欲被送到堆疊的頂端的視窗,碰觸一下右按鈕。
Circulate up:將最底層被遮蔽的視窗升到最上層,你有兩種選擇: 1.按下META鍵,保持按住。 2.在根視窗上,碰觸一下右按鈕。 或 1.同時(shí)按下META和SHIFT 鍵,保持按住。 2.在螢?zāi)簧系娜魏蔚胤?,碰觸一下右按鈕。
Circulate Down:將最上層的視窗移到最底層,作法同Circulate Up,但 改為左按鈕。
Iconify:之前我們?cè)徇^兩種形式的表徵圖化,一種是視窗曾經(jīng)表徵圖 化過(已定義過表徵圖的位置) ,另一種為對(duì) '新' 的視窗表徵圖化 。
表徵圖化一個(gè)新的視窗:
1.按下META鍵,保持按住。 2.將指標(biāo)位置移至欲被表徵圖化的視窗。 3.按下LEFT按鈕,保持按住... 4. ... 拖拽表徵圖的外框到你所需的位置。 5.松開按鈕和META鍵。
注意它和Lower 操作程序的不同點(diǎn),在此你是按下... 拖拽... 松開滑 鼠按鈕,而對(duì)Lower ,你只是碰觸一下按鈕。
表徵圖化一個(gè)曾經(jīng)表徵圖化過的的視窗:
1.同時(shí)按下META和CTRL鍵,保持按住。 2.在你欲表徵圖化的視窗上,碰觸一下左按鈕。
(如果你對(duì)先前并未表徵圖化的視窗作這個(gè)操作,或經(jīng)由resource結(jié)構(gòu) 無法取得表徵圖的位置,表徵圖將出現(xiàn)在指標(biāo)所在的位置)。
De-Iconify:將表徵圖還原為它的視窗 (在視窗原來的位置):
1.按下META鍵,保持按住。 2.在表徵圖上,碰觸一下中按鈕。
如果你覺得這些對(duì)滑鼠按鈕功能的結(jié)合十分笨拙且不易記憶,別擔(dān)心,很 多人都是如此。有更好的法子,剛才那些只是預(yù)設(shè)的設(shè)定,你可以完全由自己 來建構(gòu)。在本章的後半部,我們將告訴你如何做。現(xiàn)在我們先來看一看,在標(biāo) 準(zhǔn)選單的一些功能和它們能做些什麼。
19.1.2 一些更多的選單選擇
這是一些我們?cè)诘冢墩轮袥]有解釋的標(biāo)準(zhǔn)的選單選擇。
Focus:讓你設(shè)定鍵盤的焦點(diǎn)(focus),也就是說,將鍵盤附屬於一個(gè)視窗 ,所以不論螢?zāi)簧系闹笜?biāo)在何處,鍵盤的輸入總是在同一個(gè)視窗。一 般鍵盤的輸入總是指向目前指標(biāo)所在的視窗。
設(shè)定焦點(diǎn)到一個(gè)特定的視窗:選擇focus ,出現(xiàn)手指形游標(biāo),在你所 欲指定的視窗碰觸一下按鈕。
恢復(fù)正常:選擇focus ,在背景視窗上碰觸一下。
Restart:停止uwm ,重新啟動(dòng)它,重新讀入建構(gòu)檔 (下節(jié)說明) 且執(zhí)行它 。在你改變建構(gòu)檔且希望馬上執(zhí)行新的設(shè)定時(shí) (否則將等到你重新啟 動(dòng)一個(gè)新的周期) 使用此選擇。
Freeze:暫停螢?zāi)簧纤械娘@示,當(dāng)你要對(duì)你的螢?zāi)粩z影時(shí)可以使用這個(gè) 選擇。欲重新恢復(fù)顯示,使用 ...
Unfreeze:重新恢復(fù)顯示,所有的視窗會(huì)立即更新。
Exit:中止uwm 。當(dāng)你要?dú)⒌魎wm 時(shí)使用,例如在啟動(dòng)一個(gè)不同的視窗管 理器之前。
Perferences 選單
我們?cè)诘冢墩绿徇^,有兩種方法叫用uwm 的WindowOps選單 -- 在背景視 窗上按下中按鈕,或在按住META和SHIFT 兩個(gè)鍵的情況下,在任何地方碰觸一 下中按鈕。用第二種方法讓你呼叫出第二個(gè)選單,只要將指標(biāo)移到WindowOps 選單的外邊,標(biāo)頭為Preferences 的視窗就會(huì)出現(xiàn)。
在Preference中的選擇,只是一些xset程式中設(shè)定滑鼠和鍵盤的選項(xiàng)而已。
注意:Lock On 和 Lock Off選擇是和記錄有關(guān)的,可能會(huì)導(dǎo)致一個(gè)錯(cuò)誤 的訊息在你的主控臺(tái)視窗印出。
19.1.3 改變現(xiàn)存表徵圖上的標(biāo)題
uwm 的預(yù)設(shè)表徵圖 -- 灰色的盒中有一個(gè)名稱 -- 如果你對(duì)同一個(gè)應(yīng)用程式執(zhí) 行數(shù)次拷貝後會(huì)有缺點(diǎn),例如有三個(gè)xterm 的表徵圖,你無法明確的區(qū)分它們 。為了克服這點(diǎn),uwm 允許你可以編輯表徵圖中的字串為你所需的任何字串。 (這只能在uwm 自己預(yù)設(shè)的表徵圖使用,例如你無法編輯在xclock的特定表徵 圖中的字串)。
欲編輯在一個(gè)表徵圖中的名稱:
1.將指標(biāo)移至所欲編輯的表徵圖。 2.鍵入你所希望的任何文字。 3.你可以去掉文字,不論是先前存在或方才才輸入的,方法如下:
去掉前一個(gè)字元:按DELETE。 去掉整個(gè)名稱:按ctl-U。
19.2 定制uwm
uwm 具有高度的可建構(gòu)性。你可以將整個(gè)□圍的參數(shù)和定義儲(chǔ)存在一個(gè)建構(gòu)檔 中,當(dāng)uwm 啟始時(shí)會(huì)將之讀入。我們前節(jié)曾經(jīng)提過,你可以在中途改變建構(gòu)檔 ,藉著在WindowOps選單中Restart選項(xiàng),告訴uwm 重新讀入它。
uwm 的建構(gòu)檔
預(yù)設(shè)uwm 有兩個(gè)建構(gòu)檔,其中之一為
/usr/lib/X11/uwm/system.uwmrc
通常由系統(tǒng)管理者設(shè)定,且第一個(gè)被讀入。另一個(gè)
$HOME/.uwmrc
是你自己的建構(gòu)檔。兩個(gè)檔案均需要存在,uwm 硬性規(guī)定了預(yù)設(shè)設(shè)定。
注意:如果你用不正確的語法設(shè)定一個(gè)建構(gòu)檔,當(dāng)uwm 讀入時(shí),你會(huì)得到 一個(gè)錯(cuò)誤訊息像:
uwm: /usr/nmm/.uwmrc: 38: syntax error uwm: Bad .uwmrc file...aborting
uwm 將不會(huì)啟動(dòng)。當(dāng)在一個(gè)新的周期啟動(dòng)時(shí),這沒有什麼大問題。然而,如果 你是在中途重新設(shè)定uwm ,你可以結(jié)束但沒有視窗管理器,且沒有xterm ,沒 有編輯視窗來編輯這個(gè)錯(cuò)誤的檔案,無法啟始其它的視窗。如果此種情況發(fā)生 ,你必需從其它的終端機(jī)或機(jī)器關(guān)閉X,或毀壞 (crash)你的系統(tǒng)。
uwm 的命令列選項(xiàng)
如果你不需要系統(tǒng)建構(gòu)檔案,也不需要任何預(yù)設(shè)的設(shè)定,你可以藉著uwm 的命 令列選項(xiàng) -b 抑制它們。
如果你要使用其它的檔案,就像兩個(gè)預(yù)設(shè)的建構(gòu)檔一般,你可以用 -f filename 來指定它。
19.2.1 系結(jié)功能到鍵和按鈕
uwm 讓你定義當(dāng)一個(gè)特定的滑鼠按鈕按下時(shí),有某個(gè)功能會(huì)作用,例如當(dāng)你在 一個(gè)視窗中碰觸一下中按鈕,它將被升到堆疊的頂層。這種系結(jié)結(jié)構(gòu)和Toolkit 轉(zhuǎn)譯并沒有牽連,它完全由uwm 本身來完成。
為了讓這些結(jié)構(gòu)更有用,你可以指定其它的條件來運(yùn)用更多的功能,或許一個(gè) 修飾鍵 (像META) 需被按下,或許作用只發(fā)生在指標(biāo)位於一個(gè)表徵圖上而非應(yīng) 用程式視窗或背景視窗。我們已實(shí)際的看過這些例子:
此功能發(fā)生 ... 只有在這些 ... 只有指標(biāo)在 ... 當(dāng)這個(gè) 於... 修飾鍵被按下, 此種型態(tài)的視窗 滑鼠事件發(fā) 而且... ,而且... 生時(shí)
Resize META 一般視窗 按住中按鈕 且移動(dòng)
WindowOps 沒有 背景視窗 按住中按鈕 選單
WindowOps META 和 沒有關(guān)系 按住中按鈕 選單 SHIFT
你藉著你的 .uwmrc(或其它的建構(gòu)檔)所包含的系結(jié)規(guī)格來指定系結(jié)。規(guī)格 的格式和上面的表格類似,就像:
uwm-function = modifIErs : window context : mouse events ( uwm 功能 = 修飾鍵 : 視窗的環(huán)境 : 滑鼠事件 )
這些元素為:
uwm 功能:uwm 的內(nèi)建功能之一的名稱。例如功能f.move即是你用以移動(dòng)視 窗的功能,f.lower 將視窗降低一層等等。這些功能將於下更完整地描 述。
功能名稱必需跟隨著一個(gè)等號(hào)(=)。
修飾鍵:在運(yùn)用上述功能時(shí),當(dāng)指定的滑鼠事件發(fā)生時(shí),必需被按下的修飾鍵 表列。正確的修飾鍵名稱為:
ctrl(或c),對(duì)CONTROL鍵。
meta(或m或mod1),對(duì)META鍵。
shift(或s),對(duì)SHIFT鍵。
lock(或l),對(duì)CAPSLOCK鍵。
這些名稱必需正確的列出。你可以使用一或二個(gè)修飾鍵,如果你使用兩個(gè) 鍵,用一個(gè) '|'符號(hào)來分開它們。
你可以省略整個(gè)修飾鍵表列 (即此功能對(duì)應(yīng)於滑鼠事件發(fā)生時(shí)并沒有修飾 鍵被按下),但尾端的冒號(hào) ':' 不可省略。
視窗的環(huán)境:限制只有指標(biāo)在螢?zāi)簧现付ㄎ恢玫男蛻B(tài)符合特定條件時(shí),功能 才會(huì)發(fā)生。正確的環(huán)境如下:
window(或w):指標(biāo)必需位於一個(gè)應(yīng)用視窗中。
icon(或i):指標(biāo)必需位於一個(gè)表徵圖中。
root(或r):指標(biāo)必需位於根視窗或背景視窗中。
你可以指定任何數(shù)目的環(huán)境,用 '|' 來區(qū)隔它們。如果你沒有指定,則功能 的發(fā)生與指標(biāo)位置無關(guān)。
滑鼠事件:何種滑鼠事件對(duì)應(yīng)到此功能。指定的事件為一個(gè)按鈕名稱 -- 任何的
left(或l)
middle(或m)
right(或r)
跟隨著一個(gè)動(dòng)作:
down : 當(dāng)按鈕被按下時(shí)會(huì)符合。 up : 當(dāng)按鈕被松開時(shí)會(huì)符合。 delta : 當(dāng)按鈕被按下且移動(dòng)超過一定數(shù)目的像素時(shí)會(huì)符合。
所有的這些你已實(shí)際使用過它們,在本章開頭所描述的一些作用的系結(jié)為:
f.resize = meta : window : middle delta f.iconify = meta : icon : middle up f.raise = meta : window|icon : right down
uwm 的預(yù)設(shè)系結(jié)在檔案 $TOP/clients/uwm/default.uwmrc,見圖19 - 1。
┌————————————————————┐ │ p242-243 fig 19.1 │ │ │ │ 圖19-1 預(yù)設(shè)的 .uwmrc 建構(gòu)檔 │ └————————————————————┘
uwm 的內(nèi)建功能
uwm 的指南頁列出可應(yīng)用的功能。你已經(jīng)從圖19 - 1見過其中大部份,你可以 看出,功能是和WindowOps及Preferences中的選項(xiàng)相關(guān)。
然而,有一個(gè)有關(guān)pushing視窗(f.pushleft, f.pushup等等)的功能集合你 從未見過。pushing的意思為:你朝一個(gè)特定的方向移動(dòng)一個(gè)視窗,移動(dòng)的距離 固定。這和f.move不同的是,後者以交談的方式,指定視窗移動(dòng)的方向和距離。
預(yù)設(shè)f.pushdown系結(jié)到同時(shí)按下CONTROL和META鍵,且按住中按鈕。試它幾 次,你將發(fā)現(xiàn)你的視窗稍微移動(dòng)了一點(diǎn) -- push 功能對(duì)細(xì)部移動(dòng)視窗非常有用。
另一個(gè)功能為f.moveopaque。它也移動(dòng)一個(gè)視窗,但不像f.move,它并不會(huì) 給你一個(gè)指示視窗新的位置的方格,你直接拖拽整個(gè)視窗本身。這可以讓整個(gè)螢 幕清爽些,但比較慢,且一般視窗移動(dòng)時(shí)會(huì)有抖動(dòng)的現(xiàn)像。
19.2.2 定義你自己的選單
f.menu是一個(gè)非常強(qiáng)大的uwm 的功能:它讓你定義你自己的選單。此選單可選 用到uwm 本身的功能,或任何的shell 命令,或一個(gè)特定的動(dòng)作,像是在一個(gè) 剪緩沖區(qū)插入本文。
在你的建構(gòu)檔中定義一個(gè)選單共有兩個(gè)步驟。首先你定義選單上所需的 系結(jié),其次你定義選單本身的內(nèi)容。系結(jié)的部份像我們先前所用過的,但在尾 端增加了一欄選單名稱。例如WindowOps 選單 (藉著在背景視窗中按下中按鈕 來呼叫)的系結(jié)是:
f.menu = : root : middle down : 'WindowOps'
在此,選單名稱既是用以顯示選單出現(xiàn)時(shí)的名稱,也連結(jié)到建構(gòu)檔中的選單內(nèi) 容規(guī)格。
選單內(nèi)容的格式很簡單:對(duì)每一個(gè)選擇項(xiàng),包含了一列當(dāng)選擇項(xiàng)出現(xiàn)在選 單的 '名稱' ,和當(dāng)它被選擇到時(shí)所做的動(dòng)作。讓我們觀察一個(gè)縮水的WindowOps 定義:
menu = 'WindowOps' { New Window : !'xterm &' RefreshScreen : f.refresh Redraw : f.redraw Move : f.move }
從這里,我們可以看到其語法為:
menu = 'menu name' { ... selection lines ... }
選單名稱和系結(jié)所指定的相同。選擇項(xiàng)列包含了選擇項(xiàng)名稱,分隔的冒號(hào),和 負(fù)責(zé)的動(dòng)作。這些動(dòng)作為下列三者之一:
1.一個(gè)uwm 的功能:只用到它們的名稱,在上例為move那一列。
2.一個(gè)shell 命令:命令包含在雙引號(hào)中間 (用shell 的& 語法使其在背 景視窗中執(zhí)行) 且在前面加一個(gè)驚嘆號(hào)。在上例為xterm 那一列。 (如 果你省& ,uwm 將被懸置 (hang) 起來,等待命令的完成,如果此程式 為X的應(yīng)用程式,它需要uwm 來安排它的視窗,這將會(huì)招致麻煩)。
3.一個(gè)本文字串:這將插入到一個(gè) '剪' 的緩沖區(qū),而後你可以像平常一 樣的 '貼' 它。
多種的選單連結(jié)到同一個(gè)鍵系結(jié)
通常你對(duì)一個(gè)特定的鍵/按鈕的組合,只會(huì)系結(jié)到一個(gè)選單,但你可以對(duì)同一個(gè) 系結(jié)有多種選單:如果你在一個(gè)選單中不選擇任何項(xiàng)目且把指標(biāo)移動(dòng)到選單的 邊上,你將得到下一個(gè)選單。你已經(jīng)實(shí)際地看過這種例子:在同時(shí)按下META和 SHIFT 鍵的情況下按下中按鈕,你可以得到WindowOps 選單,然後是Preferences 選單。
系結(jié)多種選單非常的容易,只要在定義每一個(gè)系結(jié)時(shí)當(dāng)作其它的系結(jié)并不 存在,而在定義選單的內(nèi)容時(shí)用標(biāo)準(zhǔn)的方式即可。例如uwm 的預(yù)設(shè)設(shè)定包含了 系結(jié):
f.menu = meta | shift : : middle down : 'WindowOps' f.menu = meta | shift : : middle down : 'Preferences'
注意一個(gè)選單只能定義一次,但你可以用它來做任意多次的系結(jié)。 (查看預(yù)設(shè) 設(shè)定,你將看到WindowOps 選單被定義了一次但使用到兩次)。
指定選單的顏色
你可以指定在一個(gè)選單中所用的色彩。對(duì)選單名稱標(biāo)題、每一個(gè)選擇項(xiàng)、指標(biāo) 所在的高亮度選擇項(xiàng),你都可以指定一個(gè)前景和背景色彩。一個(gè)有色彩的選單 的格式如下:
menu = 'menu name' (head-fg : head-bg : hilite-bg : hilite-fg) { ... selection-name : (item-fg : item-bg) : action ... }
以下為一個(gè)混合的□例,使你的WindowOps 能擁有更多的色彩:
menu = 'WindowOps' (yellow : blue : red : green) { New Window : !'xterm &' RefreshScreen : f.refresh Redraw : (navy : magenta) : f.redraw Move : f.move }
此選單標(biāo)題為藍(lán)底黃字,大多數(shù)的選擇項(xiàng)為白底黑字 (預(yù)設(shè)值),只有 'Move' 選擇項(xiàng)為紫紅色底海藍(lán)色字,而目前指標(biāo)所在的選擇項(xiàng)為綠底紅字。
19.2.3 控制uwm 的參數(shù)變數(shù)
到目前為止,你可以用指定滑鼠和鍵的前後關(guān)系,來改變所指定的功能。在此 有一個(gè)另一種型態(tài)的uwm 的定制:你可以藉此改變?cè)S多內(nèi)建功能操作的作法 ( mode) 和風(fēng)格 (style),例如你可以指定在resize或move操作下,指示視窗新 的位置的九宮格,改變?yōu)橹皇且粋€(gè)外框而已。在指南頁中有列出所有的變數(shù)和 它的意義,在此我們只提一些特別有用的,和解釋一些比較模糊的。
讓預(yù)設(shè)建構(gòu)檔中的設(shè)定無效:uwm 并沒有結(jié)構(gòu)抑制讀取系統(tǒng)和使用者建構(gòu) 檔。(-b 不會(huì)影響 $HOME/.uwmrc)。欲取消早先檔案中的設(shè)定,可以含入uwm 的變數(shù)resetbinding、resetmenus和resetvariables,將會(huì)分別的取消早先定 義的系結(jié)、選單和變數(shù)。 (確定你將這些變數(shù)放在檔案的頂端,否則它將取消 在檔案中所有在它之前的定義)。
限制視窗和表徵圖在螢?zāi)坏摹鯂詢?nèi):X允許你指定你的視窗位於螢?zāi)坏? 任何位置,甚至部份或全部在螢?zāi)恢?,這樣有時(shí)會(huì)引起麻煩。當(dāng)你建立一個(gè) 視窗,uwm 并未提供任何的幫助。但當(dāng)你使用f.newiconify對(duì)一個(gè)表徵圖作解 除表徵圖化,如果變數(shù)normalw 被設(shè)定,則視窗會(huì)被完整的放在螢?zāi)恢?,且盡 量接近你用指標(biāo)指定的位置。 (如果你包含了normali 變數(shù),同樣可用於表徵 圖)。
控制push作用:預(yù)設(shè)f.pushxxx 功能將一個(gè)視窗往適當(dāng)?shù)姆较蛲苿?dòng)一個(gè)像 素的距離。你可以藉著指定 push=num 來推動(dòng)num 個(gè)像素。你也可以完全地改 變操作的作法:取代通常的推動(dòng)固定數(shù)目的像素的作法 (叫做pushabsolute) ,你可以指定pushrelative:這種情況視窗會(huì)被推動(dòng)num 分之一大小的視窗。 例如如果你指定
push=5 pushrelative
則一個(gè)f.pushup將把視窗向上推動(dòng)視窗本身高度五分之一的距離。
防止uwm 功能鎖定應(yīng)用程式:預(yù)設(shè)一些uwm 的操作,像resize和move會(huì)導(dǎo) 致所有其它的client應(yīng)用程式被凍結(jié),也就是說,防止它們輸出到它們的視窗 。你可以藉著指定nofreeze取消它。
如果你需要獲得一些uwm 所屬短暫視窗的視窗傾印,則這是必需的 (如在 圖6 - 6 的resize盒)。 它的副作用為當(dāng)使用resize和move時(shí),外框格會(huì)大量 的閃動(dòng),以致難以看到。
19.3 結(jié)論
本章告訴你如何使用一些更多的uwm 的功能,現(xiàn)在你對(duì)系統(tǒng)有更多的經(jīng)驗(yàn)且可 以利用它們。特別是看到不用預(yù)設(shè)選單如何建構(gòu)視窗,它使你工作的更迅速。
本章的第二個(gè)部份,列出你如何能定制uwm :如何附屬uwm 的內(nèi)建功能到 指定修飾鍵和滑鼠動(dòng)作的組合,如何定義一般性的選單,如何使用uwm 的參數(shù) 變數(shù)修改操作的作法。
在結(jié)束之前說一點(diǎn)題外話,uwm 和 xterm、xclock、xedit等一樣,只是server 的一個(gè)client程式而已。所以,遠(yuǎn)端地執(zhí)行uwm 是可能的,例如在saturn執(zhí)行 uwm ,但是指定 -display venus:0,所以它是venus 的視窗管理器。這解釋 了網(wǎng)路元素深殖於系統(tǒng),在一般工作站,這只是好奇,但在X終端機(jī) (它不提 供一般性目的的處理 (processes)) 它實(shí)際地需要。
我們現(xiàn)在接近尾聲:你已有所有你執(zhí)行視窗系統(tǒng)的所需的功能。你有視窗管理 器、應(yīng)用程式、便利的工具、視窗有關(guān)的公用程式、大□圍的設(shè)施所以可以修 改以適合你的顯示器、你網(wǎng)路上的建構(gòu)和你比較喜歡的工作。下一章,我們將 會(huì)把目前所學(xué)的放在一起,告訴你如何管理你完整的工作周期,且我們將包含 定義uwm 選單和perferences的實(shí)際的□例。
