本章描述如何自訂桌上管理系統的「工作區管理者」。
「工作區管理者」是由桌上管理系統所提供的視窗管理者。就像其它的視窗管理者一樣,其控制:
視窗框架元件的外觀
視窗的行為,包括其堆疊順序與焦點行為
按鍵組合與按鈕組合
最小化視窗的外觀
「工作區」與「視窗」功能表
此外,「工作區管理者」還控制這些桌上管理系統元件:
工作區。 「工作區管理者」控制工作區的數目,並注意每個工作區中開啟了哪些視窗。
工作區背景定位。使用者使用「樣式管理者」來變更背景定位。然而,背景定位管理是「工作區管理者」的功能。
前方面板。雖然「前方面板」使用它自己的配置檔案,但它是由「工作區管理者」所建立與管理的。
許多的這些元件都可以用「樣式管理者」來變更。只要您用一點點努力,「樣式管理者」就能夠使常用的變更更加快速。其它的資源必須人工設定。
「工作區管理者」是 dtwm。它是以 「Motif 視窗管理者」為基礎的。
有關「工作區管理者」的參考資訊,請參閱 dtwm(1) 與 dtwmrc(4) 線上援助頁。
有關設定「工作區管理者」資源的資訊,請參閱 "設定應用程式資源"。
有關「前方面板」配置檔案的資訊,請參閱 第 15章, 進階前方面板自訂。
有關設定資源的其它資訊,請參閱 "設定應用程式資源"。
「工作區管理者」取得有關來自配置檔案的視窗功能表、工作區功能表、按鈕組合與按鍵組合的資訊。
其使用下列檔案之一:
內建檔案: /usr/dt/config/language /sys.dtwmrc
「工作區管理者」以如上所示的順序搜尋配置檔案,並使用它所找到的第一個檔案。
對於使用一種以上的階段作業語言使用者,一個個人且具語言相依性的 配置檔案HomeDirectory/.dt/language/dtwrmc 可被建立為在 HomeDirectory/.dt/dtwmrc 上有優先順序。
個人的「工作區管理者」配置檔案為 HomeDirectory /.dt/dtwmrc。如果這個檔案存在,就使用此檔案。
如果您已經有個人的 dtwmrc 檔案,其會載入編輯程式中。如果沒有的話,sys.dtwmrc 會複製至 HomeDirectory /.dt/dtwmrc,然後其會載入編輯程式中。
編輯檔案。
結束編輯程式。
檔案會儲存為您個人的 dtwmrc,不論其原始資源為何。
整個系統的「工作區管理者」配置檔案為 /etc/dt/config/language /sys.dtwmrc。
如果 HomeDirectory /.dt/dtwmrc 存在,則不使用此檔案。
使用語法:
include { path path ... }
例如,下列各行納入檔案 /users/ellen/mymenu :
包括 { /users/ellen/mymenu }
包含陳述式對於提供其它的功能而不需複製整個配置檔案是很有用的。例如,使用者可能會想要建立新的按鍵組合,而不需管理整個配置檔案。使用者可以用此內容建立檔案 HomeDirectory/.dt/dtwmrc:
include { /etc/dt/config/C/sys.dtwmrc } Keys DtKeyBindings { Alt<Key>F5 root f.menu Applications
}
Menu Applications { "GraphicsApp" f.exec "/usr/bin/GraphicsApp/GApp" ... }
「工作區管理者」必須重新啟動才能使對配置檔案所作的變更生效。
從「工作區」功能表選擇「重新啟動工作區管理者」(當指標在背景定位上時,請按滑鼠鈕 3)。
大部分的工作區自訂,例如變更工作區名稱與工作區數目,都可以由使用者使用桌上管理系統的介面來完成。不過,「工作區管理者」會提供設定整個系統的預設資源。
預設桌上管理系統配置提供四個工作區。使用者可以使用與「工作區」開關關聯的即現式功能表來增加與刪除工作區。
此 /usr/dt/app-defaults/C/Dtwm 檔案使 workspaceCount 資源設定為下列預設工作區數目:
Dtwm*0*workspaceCount: 4 Dtwm*workspaceCount: 1
螢幕 0 上指定多重工作區。單一工作區是指定於任何其它的螢幕上。
您可以建立(或如果其存在則修改)/etc/dt/config/C/sys.resources 檔案以為工作站上所有的新使用者來變更預設的工作區數目。
例如,以下資源將主螢幕上整個系統的工作區數目設定為六:
Dtwm*0*workspaceCount: 6
有關設定「工作區管理者」資源的資訊,請參閱 "設定應用程式資源"。
例如,以下資源將工作區的數目設定為六:
Dtwm*workspaceCount: 6
剛開始時,工作區是以編號慣例 wsn 來編號的,其中 n 為 0、1、2 等等。例如,預設的四個工作區內部的編號為 ws0 到 ws3。
Dtwm*wsn: name
有關設定「工作區管理者」資源的資訊,請參閱 "設定應用程式資源"。
例如,下列資源將預設的四個工作區設定為指定的名稱:
Dtwm*ws0*title: Anna Dtwm*ws1*title: Don Dtwm*ws2*title: Julia Dtwm*ws3*title: Patti
建立背景定位影像。它們可以是點陣圖或像素對映檔案。
整個系統的背景定位:/etc/dt/backdrops
個人的背景定位:HomeDirectory /.dt/backdrops
從「工作區」功能表選擇「重新啟動工作區管理者」。
整個系統與個人的背景定位是增加至 /usr/dt/backdrops 中的內建背景定位。
您可以用建立具有相同名稱的個人或整個系統的背景定位來取代現存內建背景定位。
背景定位是位於顯示器的 root 視窗上之階層。「樣式管理者背景定位」對話框提供 NoBackdrop 設定,其中背景定位是透明的。
在所有的工作區背景定位後面只有一個 root 視窗。 因此,放在 root 視窗上的圖形影像持續經過所有工作區。您可以指定哪些工作區以背景定位遮蓋 root 視窗。然而,當 NoBackdrop 實際上對於每個工作區都是相同的時,影像是可見的。
建立圖形影像。
影像必須是其中有工具存在以在 root 視窗上顯示它的格式。例如,如果您意欲使用 xsetroot,您便必須建立點陣圖檔案。
如果它並非已經存在,請建立可執行的檔案 HomeDirectory /.dt/sessions/sessionetc。
每次使用者登入時都會執行 sessionetc 檔案。
放置指令以在 sessionetc 檔案中顯示影像。
例如,以下指令非重疊顯示具有指定點陣圖的 root 視窗:
xsetroot -bitmap /users/ellen/.dt/icons/root.bm
「工作區管理者」有三種預設功能表:
工作區功能表-也稱為 root 功能表。當指標在背景定位上時,會在使用者按滑鼠按鈕 3 時顯示出來。功能表經由按鈕組合與滑鼠按鈕關聯。
視窗功能表-當指標在「視窗」功能表按鈕(視窗框架的左上角)上時,功能表顯示於使用者按滑鼠按鈕 1 或滑鼠按鈕 3 時。功能表藉由 windowMenu 資源而與按鈕關聯。
前方面板功能表-當指標在「前方面板的視窗」功能表按鈕上方時,功能表顯示於使用者按滑鼠按鈕 1 或滑鼠按鈕 3 時。
「工作區管理者」功能表有語法:
功能表 MenuName { selection1 [ mnemonic] [加速鍵] 功能 [argument] selection2 [ mnemonic] [加速鍵] 功能 [argument] ... }
其中:
選擇-出現在功能表上的文字或點陣圖。如果文字包括空間,請將文字附在引號中。對於點陣圖,請使用語法 @/路徑.
mnemonic-當功能表顯示時,作為鍵盤捷徑的單一字元。它係以格式_字元來指定。
加速鍵-不論功能表顯示與否,均為作用中的鍵盤捷徑。加速鍵有語法 modifier<Key> 按鍵名稱 其中修飾符號為 Ctrl、Shift、Alt (擴充字元) 或 Lock。有關所有可能的按鍵名稱清單,請參照您的 "X11 包括" 目錄中的 keysymdef.h 檔案。
功能-當作此選擇時,則執行功能。有關功能清單,請參照 dtwmrc(4) 線上援助頁。
argument-功能引數。有關更多的細節資訊,請參照 dtwmrc(4) 線上援助頁。
例如,以下加上「回復」標籤的功能表項目會使視窗一般化。當功能表顯示時,鍵入 "R" 也會回復視窗。按擴充字元 F5 也會回復視窗。
Restore _R Alt<Key> F5 f.normalize
有關「工作區管理者」功能表語法的完整資訊,請參閱 dtwmrc(4) 線上援助頁。
按一下「前方面板」的「工具」輔助面板上的「增加項目至功能表」控制。
「增加項目至工作區功能表」對話框會顯示出來。
鍵入完整路徑或按一下「瀏覽」,並選擇您想要新的功能表項目執行的檔案路徑。
您所指的檔案一般應是可供此主機使用的。 此檔案應為註冊至主機的可執行檔案或資料類型的檔案(例如聲訊或線上援助頁)。
文字方塊中顯示包括檔案名稱的完整路徑。
按一下「增加」以將檔案增加至功能表。
檔案增加至「工作區功能表」中的第一個位置。其預設圖示(如果有的話)與檔案名稱將會用作功能表項目的圖示與文字使用。
如果要變更「工作區功能表」上的功能表項目的位置,請參閱 "修改工作區功能表"。
按一下「前方面板」的「工具」輔助面板上的「自訂工作區功能表」控制。
「檔案管理者」的顯示會顯示出「工作區功能表」的配置檔案夾。注意,此檔案夾中的檔案代表每個功能表項目,而子檔案夾代表每個子功能表。 藉由重新安排「工作區功能表」檔案夾的內容,您可重新安排「工作區功能表」。
將任何您希望移動的功能表項目拖曳及定位至此子檔案夾下的新位置。
有關使用「樹狀查看」模式中的「檔案管理者」的輔助說明,請參閱 Solaris 共用桌上管理系統環境:使用者指南。
藉由將其檔案拖曳至「前方面板」上的檔案垃圾桶,以刪除任何不想要的功能表項目。
藉由編輯其檔案或檔案夾名稱來重新命名任何您想要重新命名的功能表項目。
當您對您所作的變更感到滿意時,請從「檔案管理者」中的「檔案」功能表選擇「更新工作區功能表」,並結束「檔案管理者」。
現在「工作區功能表」會反映出您在「工作區功能」表檔案夾中所作的變更。
開啟合適的檔案以編輯:
個人的: HomeDirectory /.dt/dtwmrc
整個系統的:/etc/dt/config/language /sys.dtwmrc
有關建立這些檔案的資訊,請參閱 "工作區管理者配置檔案"。
建立新的功能表:
Menu menu_name { ... }
請參閱 "工作區管理者功能表語法"。
建立或編輯按鈕組合以顯示新的功能表。
如果功能表取代現存功能表,請編輯顯示「工作區功能表」的按鈕組合。
<Btn3Down> root f.menu menu_name
如果功能表是附加的功能表,請建立新的滑鼠按鈕組合。例如,當在背景定位之上按滑鼠鈕 3 時,以下的按鈕組合會顯示功能表:
Shift<Btn3Down> root f.menu menu_name
從「工作區」功能表選擇「重新啟動工作區管理者」。
「視窗」功能表建於「工作區管理者」中,而且一般都不是自訂。如果要保持視窗行為在應用程式之間的一致,您應該避免「視窗」功能表的大規模修改。
開啟合適的檔案以編輯:
個人的: HomeDirectory /.dt/dtwmrc
整個系統的:/etc/dt/config/language /sys.dtwmrc
有關建立這些檔案的資訊,請參閱 "工作區管理者配置檔案"。
建立新的功能表:
Menu menu_name { ... }
使用windowMenu 資源來指定新的功能表:
Dtwm*windowMenu: menu_name
從「工作區」功能表選擇「重新啟動工作區管理者」。
按鈕組合關聯滑鼠按鈕作業與具有視窗管理者功能的可能鍵盤修飾碼。按鈕組合應用於所有的工作區。
在工作區管理者配置檔案中以名為 DtButtonBindings 的按鈕組合集來定義。
Buttons DtButtonBindings { ... }
按鈕組合的語法為:
Buttons ButtonBindingSetName { [modifier]< button_nameMouse_action> context function [argument] [modifier]< button_nameMouse_action> context function [argument]
其中:
button_name-Btn1-左邊滑鼠按鈕 Btn2-中間按鈕 (3 個按鈕的滑鼠) 或兩個按鈕 (2 個按鈕的滑鼠) Btn3-右邊按鈕Btn4-在 3 個按鈕上按鈕 1 及按鈕 2 合在一起 Btn5-在 3 個按鈕上按鈕 2 及按鈕 3 合在一起
modifier-Ctrl, Shift, Alt, Lock
mouse_action-Down-按住滑鼠;按鈕Up-釋放滑鼠按鈕;Click-按住並釋放滑鼠按鈕: Click2-連按兩下滑鼠按鈕;Drag-當按住滑鼠按鈕時拖曳滑鼠
context-指示要使組合有效,指標必須放在何處。如果有必要,以 "|" 字元分開多重內容。
root-工作區視窗; window-用戶端視窗或視窗框架; frame-視窗框架, 不包括內容; icon-圖示; title-標題欄; app-用戶端視窗 (不包括框架)
function-視窗管理者功能之一。有關有效功能的清單,請參照 dtwmrc(4) 線上援助頁。
argument-所需的任何視窗管理者功能引數。有關細節資訊,請參照 dtwmrc(4) 線上援助頁。
例如,當指標在工作區視窗(但不在用戶端視窗中)之時按滑鼠按鈕 3,下行會使 DtRootMenu 中所描述的功能表顯示出來的。
<Btn3Down> root f.menu DtRootMenu
有關按鈕組合語法的完整資訊,請參閱 dtwmrc(4) 線上援助頁。
開啟合適的檔案以編輯:
個人的: HomeDirectory /.dt/dtwmrc
整個系統的:/etc/dt/config/language /sys.dtwmrc
有關建立這些檔案的資訊,請參閱 "工作區管理者配置檔案"。
增加按鈕組合至 DtButtonBindings 定義。
請勿將相同的按鈕連結到不同的按一下與按的作業功能,並勿將一個以上的功能連結到相同的按鈕與上下文。
從「工作區」功能表選擇「重新啟動工作區管理者」。
開啟合適的檔案以編輯:
個人的: HomeDirectory /.dt/dtwmrc
整個系統的:/etc/dt/config/language /sys.dtwmrc
有關建立這些檔案的資訊,請參閱 "工作區管理者配置檔案"。
建立新的按鈕組合集。請參閱 "按鈕組合語法"。
Dtwm*buttonBindings: ButtonBindingsSetName
從「工作區」功能表選擇「重新啟動工作區管理者」。
新的按鈕組合會取代您的現存按鈕組合。從 DtButtonBindings 複製您想保存的按鍵組合。
鍵盤組合也稱為按鍵組合,它是將「工作區管理者」功能和按鍵組合相關聯。按鍵組合應用於所有的工作區。
關於使用共用按鍵組合作為鍵盤組合方面,請小心。例如,Shift-A 通常會在您目前的視窗中加入字母「A」。如果您將 Shift-A 連結至一項功能,您會失去其通常用法。
桌上管理系統預設按鍵組合在工作區管理者配置檔案中,以名為 DtKeyBindings 的按鈕組合集來定義。
Keys DtKeyBindings { ... }
按鍵組合的語法為:
Keys KeyBindingSetName { [Modifiers]<Key>key_name context function [argument] [Modifiers]<Key>key_name context function [argument] ... }
其中:
Modifiers-Ctrl, Shift. Alt 及 Lock。允許多重修飾碼;以空格分開它們。
key_name-功能與其對映的按鍵。對於具有字母或數字的按鍵, key_name 名稱通常列印在按鍵上。例如「a」鍵的名稱為「a」,而「2」鍵名為「2」。「Tab」鍵名為「Tab」。「F3」鍵名為「F3」。
對於其它的按鍵,則是將名稱拼出來-例如,「+」鍵的 plus。位於系統相依目錄中的檔案 keysymdef.h 包含有關按鍵名稱的其它資訊。
context-必須有鍵盤焦點以使此動作有效的元素。如果組合應用於一項以上的上下文,這些可以串接在一起。多重上下文由 "|" 字元來分開。
root-工作區背景定位;window-用戶端視窗; icon-圖示
function-視窗管理者功能。有關有效功能的清單,請參照 dtwmrc(4) 線上援助頁。
argument-所需的任何視窗管理者功能引數。有關細節資訊,請參照 dtwmrc(4) 線上援助頁。
例如,以下的按鍵組合讓使用者藉由按 Alt+F6l 將鍵盤焦點轉換至應用程式中的下一暫態視窗。
Alt<Key>F6 window f.next_key transient
有關按鍵組合語法的完整資訊,請參閱 dtwmrc(4) 線上援助頁。
開啟合適的檔案以編輯:
個人的: HomeDirectory /.dt/dtwmrc
整個系統的:/etc/dt/config/language /sys.dtwmrc
有關建立這些檔案的資訊,請參閱 "工作區管理者配置檔案"。
用唯一的 KeyBindingSetName。建立新的按鍵組合。使用桌上管理系統預設按鍵組合組 DtKeyBindings 作為指南。
Dtwm*keyBindings: KeyBindingSetName
從「工作區」功能表選擇「重新啟動工作區管理者」。
新的按鍵組合取代了您的現存按鍵組合。從 DtKeyBindings 將任何您想要保存的按鍵組合複製到您的新集中。
如果要在 Motif 預設與 CDE 桌上管理系統視窗行為之間切換: