%%% From Stef @ Brunel

\chapter {Xd}

Xd is a Directory User Agent (DUA) for the \xwindows/\index{X Windows}
which provides access
to the OSI X.500 Directory.  It was developed (along with Xdsm, 
and an early version of Pod) as a prototype DUA to stimulate feedback
for the design of full DUAs for X and Microsoft Windows.


\section {Starting Xd}
Xd accepts the usual command line paramters for X applications.  
These are described in the online manual pages ( X(1) ).  Xd 
also recognises the following options which relate to the 
QUIPU directory services:

\begin{verbatim}
     -t tailor file
     -c dsa name
     -T oid table
     -D directory
\end{verbatim}


If Xd has not been installed, it is necessary to load the X 
resources file into the server.  The following command in the 
Xd directory should achieve this:

{\em xrdb --merge Xd.ad}

If you change any of the resources in the Xd.ad file, you will need 
to load them into the server again.  The --load option to xrdb 
overwrites all resources already in the server, but may be 
useful when a resource is to be removed.  {\em xrdb --query} lists 
the current contents of the server's resource database.

\section {The Components of Xd}
The components which make up Xd are described below:

\subsubsection {Quit}
Exits Xd

\subsubsection {Help}
Pressing the Help button invokes a popup window comprising a Quit 
button and a help text window.  The help displayed in the text 
window is dependent on the position of the mouse.  So entering 
the Type button area will display a help page describing the 
Type button function.  Entering the Help button restores the 
General Help page, and pressing Help restores the popup to 
its position  just above the Help button.  The Quit button on 
the Help popup removes the popup.  The Help popup does not 
stop other Xd buttons operating.

\subsubsection {Search Area}
The Search Area shows the current directory position.  This 
is the base position from which Lists and Searches are performed.

\subsubsection {Search For}
This shows the current string being searched for.  All keyboard 
input is focused on this widget.  It accepts most EMACS-like 
commands for line editing, and carriage return starts a search.

\subsubsection {Type}
The Type area has a button which invokes a menu of possible 
search types, and a text area showing the current search type.  
The search type specifies a search filter which will be used 
for searches.  When the current directory position is changed, 
default search type and search type options are set.  The 
filters and defaults are configurable.  This is described in
the manual entry for Pod.

\subsubsection {Read Area}
All directory reads, and any errors are displayed in this text 
widget.  Photographs can be displayed automatically using 
Xphoto, and can be destroyed by clicking on the photograph.

\subsubsection {Search/List Buttons}
The search and list buttons should be quite obvious.  Search 
performs a search using the string and type specified.  List 
shows the children of the current position.

\subsubsection {Widen}
Widen makes the current position one stage less specific.

\subsubsection {Look back}
The look back button invokes a popup with a list of the last 
ten places selected from the list area.  Clicking on an item 
in the list, makes that the new current position.  The popup 
is only large enough to contain the longest directory position 
currently in the list.  If a place is added to the list whilst 
it is still popped up, the popup does not resize.

\subsubsection {List Area}
The final area in Xd is the list area.  This is used to 
display the results of lists and searches.  Selecting an 
item from the list area causes Xd to try and read the entry 
and make the entry the current position.  Making a leaf entry 
the current position is meaningless, as it will have no 
children and lists or searches will be pointless.  Such is life!


\section {Driving Xd}
To ``press'' a button, move the cursor (that funny hand shape) 
and click (press and release) button one (usually the left hand 
button) on the mouse.
To select an item from a list, point the 
cursor at the item you want to select and click 
button one on the mouse.

To scroll a read or list area, move the cursor into the 
scrollbar and press button two on the mouse.  Now move the 
mouse up and down or left and right until the required screen 
area is displayed.  Now release the mouse button.
The thick horizontal lines with the black squares at one end 
allow the relative sizes of the bounded areas to be changed.  
Grab the line by pressing a mouse button on then black box 
(handle), move the mouse, then release the button.


\section {Configuration}
The configuration of search filters was mentioned earlier in 
the context of the Type button and menu.  This configuration 
is common between Pod and Xd.  A directory called duaconfig 
(under \file{Xd/Xd} in the source tree) contains example
configuration files.  A description of these configuration
files is given in the Chapter on Pod (Chapter~\ref{pod}).  Note however that
there are a few differences.
\begin{itemize}
\item The \file{friendlyNames} file is Pod specific.
\item Xd uses \file{.quipurc} not \file{.podrc}.
\item Xd only recognises username, password, isode, dsap and
service fields of \file{.quipurc}
\end{itemize}
