歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> X Window 系統使用指南--16

X Window 系統使用指南--16

日期:2017/2/28 11:27:04   编辑:關於Unix


第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 是標准的MIT 版,但在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規格,
例如:
xclock -xrm "*update:30" -xrm "*chime:on"
-xrm的好處在於你可以用它來設定任何resource供應用程式使用,尤其是
那些和命令列選項不符合的resource。其中一些非常有用的像:
iconX, iconY:視窗表徵圖左上角x,y 座標的位置。
iconPixmap:被用來當作視窗表徵圖的位元映像的名稱,你可以用它
來指定任何的位元映像當作應用程式表徵圖。(位元映像
為已有或利用bitmap程式建立。)例如:命令
xedit -iconic -xrm "*IconPixmap:cntr_ptr"\
-xrm "*iconX:500"\
-xrm "*iconY:400"
的意義為將xedit 設定以表徵圖開始啟始,表徵圖的左上角
座標為(500,400) (在大多數的顯示器會在螢幕中央),使
用名為cntr_ptr的位元映像來當作表徵圖。
backgroundPixmap:設定用一個位元映像當作背景。
borderPixmap:設定以一個位元映像當作視窗的邊,例如:
xclock -bw 20 -xrm "*backgroundPixmap: scales"\
-xrm "*borderPixmap: cntr_ptr"
執行xclock,用一個寬達20個像素的邊框,視窗的背景為魚鱗
(fish-scales) 圖案,邊框則用cntr_ptr的位元映像。
所有的這些resource當然也可用類別指定。(如IconX ,BorderPixmap等等。)
注意:請記住,-xrm只有在程式有用到Toolkit 才可應用。
16.1.2 設定Resource不同方法的摘要
現在我們將如何對一個指定應用程式resource設定的八種方法作一摘要:
應用程式專屬resource:它們被兩個檔案掌握,且僅能被Toolkit 使用,
其中一個檔案通常由系統管理者設定,另一個由你自己設定。
server專屬的resource:不是存在根視窗的RESOURCE_MANAGER性質中,便
是在你的$HOME/.Xdefaults檔案中。
主機專屬resource:如果shell 變數$XENVIRONMENT 有定義的話,存在其
所定義的檔案中,否則在你的$HOME/.Xdefaults-host 檔案。
一次關閉設定:用應用程式的本身命令列選項來設定,和用Toolkit 標准
命令列選項,包含”捕捉遺漏”-xrm.
它們以下列順序處理:
if (程式使用Toolkit )
讀取 /usr/lib/X11/app-defaults/class檔案 (1)
讀取你的 $HOME/class檔案 (2)
if (RESOURCE_MANAGER性質被定義)
處理內含的指定 (3)
else
讀取你的$HOME/.Xdefaults檔案 (4)
if (shell 變數XENVIRONMENT被定義)
讀取所定義名稱的檔案 (5)
else
讀取你的$HOME/.Xdefaults-host 檔案 (6)
if (程式使用Toolkit )
處理標准的resource選項,包含-xrm (7)
處理應用程式本身的選項 (8)
現在我們將更詳細的看一個較不熟悉的方法 -- 用來儲存server本身
resource的方法。
16.2 在Server上儲存預設值 -- xrdb
大部份預設值的結構均和檔案有關,當應用程式啟始時,不同的檔案被讀
取且其內容被處理,這種方式的缺點為你希望所有的client在一個特定的
server上使用同一組的預設值,但client所執行的機器上如果沒有一個共同的
檔案系統,你該怎麽辦?
答案是在server本身儲存預設值。X的性質設施是一個具有一般性目的的
結構。(記住,一個”性質(property)”是一小段已知格式資料的名稱,被儲
存在server),指定由server根視窗的RESOURCE_MANAGER性質載入,且當應用
程式啟始時系統會注意此事。當視窗系統啟始時,RESOURCE_MANAGER性質未定
義:如果你要使用這個設施,你必須明確地設定它。
並沒有一個一般性的工具來操作一個性質,所以X提供了一個特殊的程式
來處理resource性質,它就是xrdb(the X Resource DataBase 公用程式)。
16.2.1 xrdb能為你做什麽
為了方便起見,本章剩馀的部份,我們只把RESOURCE_MANAGER性質和它的
內容當成”資料庫”。
xrdb的功能非常簡單,它讓你能:
.設定一個新的資料庫。
.看目前有那些resource在資料庫中。
.在現存的資料庫加入一個新的resource。
.完全去除資料庫。
這些是基本操作,且很容易完成。當然也有一些更進一步的功能可以很精
確地讓你控制resource,但我們先來討論基本操作。
16.2.2 使用xrdb的基本功能
xrdb的操作類似大多數Unix的程式:它從一個檔案或標准輸入讀取輸入資
料,並且你可以用命令列選項來控制它的操作模式,它所讀取的輸入是我們曾經看
過的一系列resource設定,不過比較特別的是它把這些設定載入資料庫,讓我們看
一看它主要的功能:
設定一個新的資料庫:輸入下面命令兩者之一:
xrdb filename
xrdb < filename
用以將一個檔案中的設定載入到一個資料庫中,如果只鍵入xrdb,表示你將由
標准輸入(通常為鍵盤)直接輸入設定,稍後我們將說明xrdb所接受的檔案格
式,但現在先把輸入resource設定當作和.Xdefaults檔案或-xrm引數相同的方
法,例如,你可以用下列的方式定義xclock設定:
venus% xrdb
xclocks*Background: pink
xclock*update: 30
xclock*backgroundPixmap: cntr_ptr

通常你用一個檔案當作xrdb的輸入,也就是說,xrdb從一個檔案載入預設
值作為你的視窗系統初始化的一部份。如果你很有經驗,直接輸入它的設定也
許容易些。
查看現存資料庫中的內容,輸入命令:
xrdb -query
則xrdb將以明白本文格式(plain text format) 印出資料庫的內容(-query可
以縮寫為 -q )。
(你可能記得也可以在根視窗用xprop 來看資料庫的內容,但xprop 的輸
出格式不太靈巧,它給你其它一大堆你不需要的資訊。)
如果需要,你可以抓取xrdb的輸出到一個檔案,編輯它,更改設定後可再
用它當作xrdb的輸入。(下一項功能告訴你一個更好的方法)
注意:查看資料庫,你必須使用選項-query。如果你忽略這個選項而只輸
入xrdb,將造成會清除資料庫,且xrdb在等待你自標准輸入鍵入你
新的設定。
在現存資料庫加入新的設定:加入新的設定到資料庫且不要破壞原有的設
定,使用命令:
xrdb -merge filename
(-merge可縮寫為-m,如果你省略檔案名稱,xrdb會自標准輸入讀取。)
xrdb自指定的檔案中讀取resource設定,並加入現存的資料庫中;對於資料庫
中已存在的resource,如果有新的設定,舊值會為新值取代,否則則不會變動。
完全移去資料庫:如同先前所述,當系統結束時資料庫會自動消失,但如
果你在系統仍在執行時移去資料庫,使用命令:
xrdb -remove
本節介紹xrdb基本的功能,下一節我們介紹當你熟悉系統時,你可能需要
的更進一步的功能。
16.2.3 xrdb的檔案格式
你已知道大多數的格式細節 -- 你可以用標准的resource規格的形式
characteristic: value
上述的格式你已看過多次,但xrdb有兩個額外的規則:
1 .注解(comments):每一行的開頭如果是驚歎號(!)會被忽略,所以
你可以此當作注解。
2 .xrdb預設將它的輸入列傳到C 前處理器。
讓我們進一步看一看前處理器的過程。
xrdb前處理它的輸入列
讓我們看一看一個你可能碰到的典型問題。假設在一般的場景,你使用下
列顯示器:
venus 彩色螢幕,正常解析度
saturn 單色螢幕,正常解析度
mars 彩色螢幕,高解析度
以上三者共享一個共同網路檔案系統,當你在一個顯示器上啟動X,你需
要定義預設值來反應顯示器的特徵。例如:在高解析度螢幕你可能需要較大的
預設字型,或是你不需要在單色系統上定義彩色預設值。
如何做呢?讓我們看一看,如果你能使用.Xdefaults-host 檔案:在
.Xdefaults-venus我們包含了彩色指定,而在.Xdefaults-saturn 我們只放入
單色型態的參數。行得通嗎?當然,但是是有限度的:它只能掌握應用程式在
和server相同的機器上執行,如果應用程式在其它的機器上執行會得到它們主
機上的預設檔案。所以如果你使用venus 且在saturn啟始遠方的client,將會
用到.Xdefault-saturn而錯失所有的彩色指定。
你能夠只使用.Xdefault 檔案來區分機器嗎?不能,因為三台主機共享相
同的檔案系統,所以$HOME/.Xdefaults會被venus 獲得也會被其它的機器獲得。
答案是在resource處理程序的某些地方,有一個結構可以分辨出所使用
server的某些特徵。xrdb可以用相當簡單的辦法做到這點,它先定義一些說明
server特徵的C 前處理器符號,而後將它所有的輸入傳遞到前處理器,最後將
處理過的資料載入資料庫。指南頁列出所有的xrdb定義的前處理器的符號,但
在此處我們需要用到的是:
X_RESOLUTION=n:n是每公尺長螢幕有多少像素。(根據我們的server,我
們正常解析度的螢幕為每□90個像素,相當於每公尺3454個像素。)
COLOR :只有螢幕支援彩色才被定義。
WIDTH,HEIGHT:螢幕的寬度和高度,單位為像素。
圖16-1顯示我們如何在xrdb的輸入檔案使用這些。(我們命名為
$HOME/.Xresources ,稍後我們仍將再度用到。)它可以正確地做到我們所想
要的 -- 它正確掌握了所有我們的顯示器,不論是彩色或高解析度或兩者都有。
一些要點值得注意:
┌—————————————————————┐
│ P197 FIG 16.1 │
│ │
│ 圖16-1 利用前處理器命令的Resource檔案 │
└—————————————————————┘
.你可以使用所有前處理器的功能。例如,我們使用它的表示掌握
(expression-handling) 能力:
#if X_RESOLUTION > 3600
.你可以在檔案中任何地方使用前處理器符號,並不只是前面有# 號的列,
例如,當
xload*Width: WIDTH
在venus 上xrdb執行到時,它將會讀取成:
xload:Width: 1152
所以由預設值可知,xload 視窗寬度將和螢幕寬度相同,高為80個像素,
且在螢幕的正上方。
注意:大多數Unix前處理器定義了一些和它們機器結構與作業系統相關的
符號,這些可能會干擾到你,特別是Unix通常定義的符號,現在
xrdb定義HOST為顯示器名稱中主機名稱的部份,所以你可能認為你
可以像這樣使用一個resource規格:
demo*title: X demo using display HOST
比方在venus 上,預期它相當於:
demo*title: X demo using display venus
事實上,在我們的機器上會得到
demo*title: X demo using display 1
原因為顯示器名稱是unix:0.0,所以主機名稱部份為unix,但前處
理器已定義了unix,所以整個解釋的順序為:
HOST -> unix -> 1
你可以用xrdb的-u選項來解除符號的定義,用以克服這點,也就是
xrdb -Unix < filename
但即使如此,主機名稱仍為unix,除非你明確地指定顯示器:
xrdb -display venus:0 < filename
另一個會產生干擾的□例,如何你輸入規格
xedit*Font: *-sun-screen-*
使用xrdb,現在用一個xrdb -query ,你可以看到在資料庫中實際
地設定:
xedit*Font: *-1-screen-*
在我們sun 的機器上,前處理器定義成另一個符號。如果你使用和你的機
器相關的名稱,你可能也會得到相同的效應。(如果你決定不需要前處理器的
功能,你可以用xrdb的-nocpp選項停止它的功能。)
16.2.4 如何將資料庫設定和你的xrdb輸入檔連接在一起
藉著像前述在一個含有大量前處理器命令的檔案執行xrdb,你初始化了資
料庫,在稍後的期間,交談式的使用xrdb,你將對資料庫做大量的更動,現在
你需要記錄這些設定,且將之與原來的輸入檔連接,以備將來之用。
如果你只使用xrdb -query ,你只能獲得目前的設定:所有在輸入檔中的
條件指令列若和現在的server不符則不會被包含。例如在saturn上執行前述的
檔案,則所有色彩和高解析度的設定,均被忽略(當然以 #開頭的也不例外),
為了克服這點,xrdb提供-edit 選項,例如命令:
xrdb -edit myresf
連接目前在資料庫中的值到檔案myresf內存在的內容,它藉著比對resource指
定特徵值的部份做到這點:如果在檔案中某一行和資料庫中某一項特徵相同,
則檔案中值的部份會被在資料庫中的值取代,用此方法,所有的以 #開頭的列
和條件設定均會保留在檔案中。
注意:前處理器完全不可以使用-edit 選項,那會導致問題,我們看一
下當我們使用venus ,且以前述檔案初始化資料庫時,會發生什麽
情況,假設我們做了更動:
venus% xrdb -merge
XTerm*font: *-courier-medium-r-*-140-*

然後用命令:
xrdb -edit myresf
將設定更改的部份放回檔案,我們看到兩件事:
1 .前處理器符號在規格中值的部份會被字面(literal)值取代,
例如:
xload*Width: 1152 會被
xload*Width: WIDTH 取代
2 .在規格中只要特性符合,值均會被取代,甚至那些在條件段中
目前尚未應用到的也不例外。例如,在前述檔案,設定
XTerm*font的那兩行(一行在高解析度那段,一行在正常顯示
器那段)都會被更改,即使我們只需要改變正常顯示器也不例
外。
16.3 一些常見的錯誤和如何修正它們
特別是當你對系統是新手的時候,resource看起來相當的復雜。當有些狀
況不能正常執行,而系統無法幫助你查覺是什麽錯誤,或你在何處犯了錯誤,
這裡列出一些常見錯誤的明細,並提出如何修正它們。
.如果你未設定一個應用程式的名稱和類別,確定在你的resource規格之
前加一個星號,(如果你省略這個星號,將沒有任何東西會對應這個規
格)這個錯誤在你使用-xrm時特別常見,例如:
xclock -xrm "update:3" (錯誤)
xclock -xrm "*update:3" (正確)
.並非所有的應用程式均使用Toolkit ,非Toolkit 的程式不使用類別,
且它們的屬性名稱也可能不同。例如,規格
*geometry: 300*400+500+600
對xclock,xlogo 有效,但對xcalc 無效,因它不使用Toolkit ,xcalc
使用屬性名稱Geometry(開頭為大寫的G ),因為在這種情況,Toolkit
類別名稱和xcalc 的屬性名稱相同,所以單獨一個規格
*Geometry: 300*400+500+600
可以對所有這類的應用程式有效。
.你可能在規格中用了錯誤的屬性或Widget的名稱,特別是容易把類別名
稱和成員名稱搞混,例如:以下兩者均錯:
xclock*Update: 10
xclock*interval: 10
其它常見的錯誤如:
xterm*Text*background:blue
它不能執行的原因為xterm 並未使用Text widget ,xterm 正常的視窗
和Tektronix 的視窗分別使用widget類別 VT100和Tek 。最後,當你
知道一個widget是什麽類別,你可能對成員名稱假設錯誤,不是widget
本身便是其中之一的屬性。試著更換類別名稱來修正這個問題。
.即使你已設定實際的widget和屬性名稱或類別,應用程式可能以不是你
預期的方式使用它們。例如:你可能設定如下:
xterm*Width: 40
xterm*Height: 10
意圖用比平常較小的視窗啟動xterm ,但它不能執行,xterm 只能在
Tektronix window應用這些值,無法在正常的視窗。
.你可能所有的設定完全正確,但仍然什麽也沒發生,例如:
xmh -xrm "*inc.Label: Include"
是一個正確的方式,執行xmh 並指定label 為inc 盒的必須被"Include"。
但在標准系統的發行版,是沒有任何動作發生的,原因是xmh 有一個應
用程式設定預設值檔案/usr/lib/X11/app-defaults/Xmh ,其中有一行:
這個規格較我們的設定有較高優先。
.將規格
*Width: 200
單獨包含在資料庫將導致大多數的Toolkit 程式啟始失敗,且有一個
訊息說它的"shell widget has zero height or width" 。如果你設定
height和width 二者之一,你必須也設定另外一個。
.如果你用編輯器建立一個resource檔案,你可能省略了最後一個new line
這將導致當你試圖用xrdb載入它時整個檔案均被忽略。為了避免如此,
當載入resource時,用一個命令列像:
xrdb resfile; xrdb -query
如果xrdb無法列印出resfile 中的內容,就是有問題了。
.你可能忘了用-xrm選項的引數來獲得resource規格,有時有人會把
resource規格放入一個檔案,而以檔案名稱為-xrm的引數,預期它自此
檔案中讀取resources。
.最後,一個非常人性的錯誤,當你發生問題,你通常會循環動作:編輯
resource檔案... 儲存它... 載入resource到資料庫... 執行應用程式
和看一看發生什麽狀況。”其中載入resource到資料庫”常常會被忽略
以致你更為困惑。
16.4 結論
本章中,你已看過了所有你能設定resource的地方,為何有這麽多種的方
法,如何決定設定放置在何處。你看到如何使用xrdb程式在server實際地儲存
預設值,它們在何處被server所有的client存取,甚至它們可以在遠方的機器
上執行。最後,有一些關於常見錯誤的實際提示,告訴你什麽需要注意。
你現在處於實際使用resources ,和剪裁你的系統適合你的口味,resource
結構功能非常強大且有無限的彈性,所以它可讓你定制任何你需要的事。剛開
始不妨試一些像字型或色彩之類簡單的設定,當你熟於基本的結構時,再轉到
更高水准的例子。
下一章將告訴你如何使用特別形式的resource規格 -- Translations(轉
譯),來剪裁你的鍵盤以適於特別的應用程式。
Copyright © Linux教程網 All Rights Reserved