歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> X windows系統使用指南(十四)

X windows系統使用指南(十四)

日期:2017/2/27 9:47:18   编辑:更多Linux
  第16章 實際的使用Resource 前一章解釋X resources的規則----為什麽需要它們,結構如何工作和 resource規格的格式。本章中繼續討論resources ,但較強調實用性:我們告 訴你如何及何處設定resources 預設值,來影響你的系統的一部份或全部。在 本章結束前,我們將完成一些范例,點出你可能常見的錯誤,並告訴你如何克 服它們。 在這些范例中,我們假設你自己的工作站叫做venus ,並且大部份時間你 是使用它。從venus 的顯示器,你可在遠方的機器saturn和mars上執行client 應用程式且和venus 共享檔案系統;neptune 則不可,我們曾在第4章描述過。 當你在本章中時,記得resource結構是:傳遞資訊給應用程式,通常這些 資訊是用來傳遞一些比較感興趣的預設值(例如色彩和字型),但只要應用程 式取得協調你就能使用這種設施傳遞任何資訊。所以我們一般狀況下傾向於把 ”resource規格””預設值”(defaults)”resource”這三個名詞視為同一含 意。 16.1 在何處儲存resource的預設值 在上一章我們只告訴你輸入resource規格到”一個資料庫”,但未告訴你 如何做。事實上有幾個不同的地方可以儲存預設值:這些”地方”通常是一個 你可以用任何編輯器修改的簡單的文字檔案,但有一個特殊的位置需要特殊的 工具來設定它,我們先很快的給你一個概念,再討論細節部份。 首先它的架構非常的復雜:包含命令列選項總共有八種設定resource方法, 但有兩個重點需要注意: 1 .你最好只使用其中的一或二種設置,只要你做完啟始設定,你將只 須改變預設的設定。 2 .系統是被設計來掌握許多不同模式的工作,和滿足那些在許多顯示器 上工作或在一台顯示器上工作而存取遠方機器的使用者的。 總結來說,這些設置是提供來讓系統盡可能富於彈性,但任何時刻你將只 須存取其中的子集合而已。 16.1.1 設定Resource的八種方法 總共有八種方法設定resource,但它們可分為下面幾類: .應用程式專屬的(Application-specific)resource:resource的表列, 限定檔案只能被特定的應用程式讀取。 .Server專屬的resource:應用設定,不管應用程式在那一種主機上執行。 .主機專屬的設定(Host-specific-setting) :對應用程式在主機上執行 有關的設定,和顯示器無關。 .命令列選項:在執行時期做一次關閉(one-off) 設定。 應用程式專屬的resource -- 方法1 和方法2 Toolkit 程式初始時在和應用程式直接相關的兩個檔案中尋找resource, 這些檔案只能被特定的應用程式讀取: 1 .應用程式--類別(Application-class) resource檔案:這個檔案包含 了機器一般性(site-wide) 對應用程式的類別之預設值,通常為系統 管理者所設定。它的名稱就是應用程式類別的名稱,在標准安裝的系 統中它是儲存在目錄/usr/lib/X11/app-defaults 中,例如xterm 的 相關檔案為: /usr/lib/X11/app-defaults/XTerm 在core版中,有一個相關於Xmh 的此種檔案,觀察此檔案可以看所使 用之設定的型態。 2 .你自己擁有的應用程式專屬的resource檔案:這個檔案的名稱和上述 相同,但它存放在不同的地方----由shell 變數$XAPPLRESDIR所指定 的目錄,如果未定義,則放在home目錄。例如對Xmh 類別的程式,它 的檔案放在下列二者之一: $XAPPLRESDIR/Xmh $HOME/Xmh 你可以使用此種檔案,處理方法1 中你不喜歡的 site-wide檔案使其無 效。 Server專屬的Resource -- 方法3 和方法4 這是對你目前工作的Server(顯示器)做有關的設定。鍵盤的設定通常是 server專屬的(因為不同的顯示器有不同的鍵盤)。另一個server專屬的特徵 為顯示器是彩色或單色。 Resource和這些有關的項目會被所有與這個終端機相關的應用程式應用到, 並且不論應用程式在何主機上執行。(例如,如果你使用的顯示器為單色,則 不管你的應用程式在何處執行,你還是不會要它使用彩色。)


儲存server專屬設定的方法是: 3 .server的RESOURCE_MANAGER性質(property):(你可在12章中XProp 的輸出看到),使用下述的xrdb程式,你可以在server的根視窗的 RESOURCE_MANAGER性質中儲存resource設定。它的優點如下: (a) 你不需編輯任何檔案即可設定預設值。(當你為了了解系統而實 驗系統時特別有用) (b) resource被server掌握,所以不論應用程式在那一部主機上執行, 均能被所有的應用程式應用。在我們的范例中,在neptune 的 情況下特別有用,甚至在不和我們的顯示機器venus 共享檔案系 統時,它仍然自動地選出為了使用此顯示器所必需的resource設定。 4 .你的$HOME/.Xdefaults檔案:(只有在根視窗沒有RESOURCE_MANAGER 性質定義的情況下使用)。如果你對xrdb尚不熟悉,你便可以此檔取 代,但你必須在每一部你執行client應用程式的機器上均設定一個。 主機專屬設定 -- 方法5 和方法6 主機專屬預設值和server專屬相反,不管應用程式所使用機器的終端機為 何,只要應用程式在此主機上執行,均使用主機專屬預設值,你可以用它們來: .讓應用程式在不同的機器上對不同的檔案系統作計算,例如:被一個應 用程式讀取的資料檔案可能在不同的主機上保持不同的位置。 .區分顯示在同一個螢幕上不同的主機的視窗(這些視窗可能由同一個應 用程式執行),例如:你可以要所有在mars機器上執行的xterm 的視窗 為紅色的邊框,而在saturn上執行的視窗為黃邊。 .調高一個相同的應用程式在不同的client機器上版本的差異,例如: xterm 在venus 是標准的M99v 版,但在neptune 機器上是由第三集團修 改過以適應機器結構的產品,這兩版的xterm 可能並不完全相容。 主機專屬Resource儲存在: 5 .由$XENVIRONMENT 來的檔案名稱:如果shell 變數$ENVIRONMENT有被 定義,它會被解釋為一個含有resource設定的檔案之完整的路徑名稱。 6 .你的$HOME/.Xdefaults-thishost 檔案:(當$XENVIRONMENT 未被定 義時使用)。注意它和我們先前的檔案有所不同,它必須附加上主機 名稱,例如,如果你在neptune 執行應用程式而在venus 顯示(假設 RESOURCE MANAGER性質未定義),則server專屬 resource 讀取自: .Xdefaults 而主機專屬resource則是: .Xdefaults-neptune 兩者均在neptune 的家目錄(home Directory)中。 注意:在不同的小節中,我們曾說過類似”server專屬resource讀取自...” 這可能造成誤導:”如果你實際需要,你可以放置任何型態的resource設定到 任何的檔案或資料庫。”我們真正的意思是你應該放置機器特性或不論甚麽的 resource到任何地方,如果你這樣做,你將獲得你需要的動作。 命令列選項 -- 方法7 和方法8 最後,你可以藉著命令列選項設定應用程式的值。通常當你設定預設值時 ,為的是你不需要使用選項為你的程式作X相關的設定。但你實際上可以用它 們來: .一次關閉(one-off) ,例如:你暫時性地在螢幕上需要一個極小的xedit。 .為了區別在相同應用程式中各自的成員,你已看過一個這樣的例子,當 我們使用命令 xterm -name demo 來設定應用程式的成員名稱給demo,將造成以應用程式名稱為demo的 resource取代xterm 的resource。 命令列選項分為下列兩種: 7 .應用程式專屬選項:例如xclock的-chime的xpr 或-scale。 8 .Toolkit 標准選項:所有用到Toolkit 的應用程式均接受一些標准的 命令列選項,我們看過其中的大部份,包括-fg, -bg, -display, -geometry 等等,標准選項的清單在”X Toolkit Intrinsics ”手 冊的2.3 節中。 在其中有一個選項-xrm,重要的足以用一個小節來描述。 Toolkit 標准選項-xrm 大多數一般的resource均能被命令列選項明確地設定,例如你可以用 -bg colour設定視窗背景顏色。但無論如何,有一些resource並沒有符合的選 項。為了克服這點,Toolkit 提供一個 "捕捉遺漏" (catch all) 的選項-xrm

(X Resource Manager 縮寫)。 -xrm以一個引數當做resource規格,就如同你在預設值檔案中輸入的相同, 例如:你可以輸入: xclock -xrm "*update:30" 和 xclock -update 30 是相等的。 在同一命令列你可以使用數次-xrm,但每一次只能包含一個resource規格, 例如: x



xclock -xrm "*update:30" 和 xclock -update 30 是相等的。 在同一命令列你可以使用數次-xrm,但每一次只能包含一個resource規格, 例如: x



Copyright © Linux教程網 All Rights Reserved