dtsearchpath(1)

NAME
dtsearchpath - set desktop search paths

SYNOPSIS
dtsearchpath [ -u username ] [ -v ] [ -c ] [ -o ]

DESCRIPTION
The dtsearchpath command line utility sets local and remote locations that desktop components should search for Application Manager groups, for filetype and action defintions, for desktop icons, and for help files.

The /usr/dt/bin/Xsession startup script sources the user's $HOME/.dtprofile script and any scripts located under /etc/dt/config/Xsession.d and /usr/dt/config/Xsession.d. After sourcing the Xsession.d files, the Xsession script will invoke /usr/dt/bin/dtsearchpath to set and export the environment variables DTAPPSEARCHPATH, DTDATABASESEARCHPATH, DTHELPSEARCHPATH, XMICONSEARCHPATH, and XMICONBMSEARCHPATH (see the ENVIRONMENT heading in this man page for a more detailed description).

  Search Path Syntax
Each of the exported search path variables is supported by, that is, built from, two comma-separated search path environment variables. For example: DTAPPSEARCHPATH is supported by DTSPSYSAPPHOSTS and DTSPUSERAPPHOSTS. XMICONSEARCHPATH is supported by DTSPSYSICON and DTSPUSERICON.

The input search path environment variables fall into two categories - those that support the host:/path syntax and those that do not. If the name of the input environment variable contains the string HOSTS, it will support host:/path syntax. The syntax for search paths that support host:/path is:

    search path element
    [ host | pathname | hostname+pathname ]
    host
    <hostname> :
    pathname
    /<absolute path>

The syntax for search paths that do not support host:/path is:

    search path element
    [ pathname ]
    pathname
    /<absolute path>

  Examples
To set the Icon search path to include the /usr/local/games/icons subdirectory, the following line would appear in a script in the /etc/dt/config/Xsession.d/ subdirectory:
DTSPSYSICON=/usr/local/games/icons

To set the Database search path to include host marlin, the following line would appear in a script in the /etc/dt/config/Xsession.d/ subdirectory:
DTSPSYSDATABASEHOSTS=marlin:

To set the Application Manager path to include the applications on host steelhead under subdirectory /usr/local, and under the default help location on host halibut, the following line would appear in a script in the /etc/dt/config/Xsession.d/ subdirectory:
DTSPSYSAPPHOSTS=steelhead:/usr/local,halibut:

The dtsearchpath command line utility parses these path elements and transforms them into a form suitable for the desktop components.

If a host element is included, then the Tooltalk library's filename mapping capabilities will control how a path to files on that host are constructed. For example, the path to file /tmp/file on host goby may be constructed as /net/goby/tmp/file or as /nfs/goby/tmp/file.

  Default Locations
By default, dtsearchpath sets up three search locations for each subsystem. In search order, they are:

    The user's personal location, under $HOME/.dt. The system administrator's configuration location, under /etc/dt/appconfig. The factory default location, under /usr/dt/appconfig.

  Precedence
When searching a path for a particular item, such as an icon file, the desktop will always be satisfied by the first item found. For example, when searching for an icon whose basename is beeper, if that icon exists in both the /etc/dt/appconfig/icons and the /usr/dt/appconfig/icons subdirectories, then the icon under /etc/dt/appconfig/icons will be found first and used, because that element appears first in the XMICONSEARCHPATH. The search terminates when the first match occurs.

Each of the DTSPSYS search path environment variables has a corresponding DTSPUSER environment variable which will take precedence over the system setting. The DTSPUSER values will be prepended to the DT search path whereas the DTSPSYS values will come after the $HOME/.dt configuration location but before the factory default location. The relationship between the system administrator's customization and the default /etc/dt configuration location is up to the user of the DTSPSYS value.

OPTIONS

    Causes dtsearchpath to return the search paths for the specified user. This option is useful for system administrators who need to understand the search paths for a particular user. The verbose option causes dtsearchpath to print to standard output values of the search environment better formated for viewing by human eye. By default, the command instead returns values suitable for evaluation by a Bourne Shell script. The C-shell option causes dtsearchpath to print to standard output values of the search environment suitable for evaluation by a C-shell script. By default, the command instead returns values suitable for evaluation by a Bourne Shell script. The C-shell option is available on all Sun CDE releases. However note, the option was added after the CDE Sample Implementation, so non-Sun releases of CDE may not yet implement this option. The don't-optimize option causes dtsearchpath to add a path to the search path even if the path does not exist.

RETURN VALUES

    Command completed successfully. Command invoked with incorrect usage.

ENVIRONMENT
The values set by dtsearchpath are passed through to the individual desktop subsystems, such as the action database and the help system, by means of environment variables.

The DTSPSYSAPPHOSTS variable is the primary environment variable and drives the remaining search paths for filetypes and actions, for desktop icons, and for help files.

In the following list, all values are derived from three places: the user's $HOME directory ($HOME/.dt), the system configuration directory (/etc/dt/appconfig), and the factory defaults directory (/usr/dt/appconfig). The values are listed as tranformed for the individual desktop subsystems.

To verify these values, execute dtsearchpath with the verbose (-v) option.

DTAPPSEARCHPATH, DTSPSYSAPPHOSTS, DTSPUSERAPPHOSTS: Used to discover application hosts and their registry subdirectories. The default transformed value is:
$HOME/.dt/appmanager
/etc/dt/appconfig/appmanager/%L
/etc/dt/appconfig/appmanager/C
/usr/dt/appconfig/appmanager/%L
/usr/dt/appconfig/appmanager/C
Where %L is the value of the LANG environment variable.

The value of DTAPPSEARCHPATH can be altered by either of two environment variables: DTSPSYSAPPHOSTS and/or DTSPUSERAPPHOSTS. DTSPSYSAPPHOSTS is for use by system administrators. Values are specified by adding a ksh script to the /etc/dt/config/Xsession.d directory that exports the variable.

export DTSPSYSAPPHOSTS=marlin:,goby:/vipapps,/opt
The expected syntax for DTSPSYSAPPHOSTS is a comma-separated list. DTSPSYSAPPHOSTS accepts host:, host:/path, or just /path. The effect is to insert a searchpath after the configuration location (/etc/dt/appconfig/appmanager) and before the factory default location (/usr/dt/appconfig/appmanager).
$HOME/.dt/appmanager
/etc/dt/appconfig/appmanager/%L
/etc/dt/appconfig/appmanager/C
/nfs/marlin/etc/dt/appconfig/appmanager/%L
/nfs/marlin/etc/dt/appconfig/appmanager/C
/nfs/goby/vipapps/appconfig/appmanager/%L
/nfs/goby/vipapps/appconfig/appmanager/C
/opt/appconfig/appmanager/%L
/opt/appconfig/appmanager/C
/usr/dt/appconfig/appmanager/%L
/usr/dt/appconfig/appmanager/C

If the system administrator wants the local configuration directory to appear in a different location within the configurable search paths, the special host term 'localhost:' can be inserted anywhere into the environment variable:

export DTSPSYSAPPHOSTS=marlin:,localhost:,goby:/vipapps,/opt
The resulting value for DTAPPSEARCHPATH would be:
$HOME/.dt/appmanager
/nfs/marlin/etc/dt/appconfig/appmanager/%L
/nfs/marlin/etc/dt/appconfig/appmanager/C
/etc/dt/appconfig/appmanager/%L
/etc/dt/appconfig/appmanager/C
/nfs/goby/vipapps/appconfig/appmanager/%L
/nfs/goby/vipapps/appconfig/appmanager/C
/opt/appconfig/appmanager/%L
/opt/appconfig/appmanager/C
/usr/dt/appconfig/appmanager/%L
/usr/dt/appconfig/appmanager/C

In fact, the value 'localhost:' can be inserted anywhere in the DTSPSYSAPPHOSTS value and its order within the DTSPSYSAPPHOSTS will be reflected in the DTAPPSEARCHPATH value.
DTSPUSERAPPHOSTS is for use by end users. Values are specified by exporting the value in the user's .dtprofile.

export DTSPUSERAPPHOSTS=appsvr:,/myapps
DTSPUSERAPPHOSTS also accepts host:, host:/path, and /path specifications. The effect is to insert a searchpath before any other searchpath.
/nfs/appsvr/etc/dt/appconfig/appmanager/%L
/nfs/appsvr/etc/dt/appconfig/appmanager/C
/myapps/appmanager/%L
/myapps/appmanager/C
$HOME/.dt/appmanager
/etc/dt/appconfig/appmanager/%L
/etc/dt/appconfig/appmanager/C
/usr/dt/appconfig/appmanager/%L
/usr/dt/appconfig/appmanager/C

DTDATABASESEARCHPATH, DTSPSYSDATABASEHOSTS, DTSPUSERDATABASEHOSTS:
Used to collect filetype and action definitions, as expressed in *.dt files. The default transformed value is:
$HOME/.dt/types
/etc/dt/appconfig/types/%L
/etc/dt/appconfig/types/C
/usr/dt/appconfig/types/%L
/usr/dt/appconfig/types/C
Where %L is the value of the LANG environment variable.

The value of DTDATABASESEARCHPATH can be altered by either of two environment variables: DTSPSYSDATABASEHOSTS and/or DTSPUSERDATABASEHOSTS.
DTSPSYSDATABASEHOSTS is for use by system administrators. Values are specified by adding a ksh script to the /etc/dt/config/Xsession.d directory that exports the variable.

export DTSPSYSDATABASEHOSTS=marlin:,goby:/vipapps,/opt
The expected syntax for DTSPSYSDATABASEHOSTS is a comma-separated list. DTSPSYSDATABASEHOSTS accepts host:, host:/path, or just /path. The effect is to insert a searchpath after the configuration location (/etc/dt/appconfig/types) and before the factory default location (/usr/dt/appconfig/types).
$HOME/.dt/types
/etc/dt/appconfig/types/%L
/etc/dt/appconfig/types/C
marlin:/etc/dt/appconfig/types/%L
marlin:/etc/dt/appconfig/types/C
goby:/vipapps/appconfig/types/%L
goby:/vipapps/appconfig/types/C
/opt/appconfig/types/%L
/opt/appconfig/types/C
/usr/dt/appconfig/types/%L
/usr/dt/appconfig/types/C

As is the case for DTAPPSEARCHPATH, the placement of the local configuration directory can be affected by the adding special host term 'localhost:' to the DTSPSYSDATABASEHOSTS environment variable.

export DTSPSYSDATABASEHOSTS=marlin:,localhost:,goby:/vipapps
The resulting value for DTDATABASESEARCHPATH would be:
$HOME/.dt/types
marlin:/etc/dt/appconfig/types/%L
marlin:/etc/dt/appconfig/types/C
/etc/dt/appconfig/types/%L
/etc/dt/appconfig/types/C
goby:/vipapps/appconfig/types/%L
goby:/vipapps/appconfig/types/C
/usr/dt/appconfig/types/%L
/usr/dt/appconfig/types/C

DTSPUSERDATABASEHOSTS is for use by end users. Values are specified by exporting the value in the user's .dtprofile.

export DTSPUSERDATABASEHOSTS=dbsvr:,/mytypes
DTSPUSERDATABASEHOSTS also accepts host:, host:/path, and /path specifications. The effect is to insert a searchpath before any other searchpath.
dbsvr:/etc/dt/appconfig/types/%L
dbsvr:/etc/dt/appconfig/types/C
/mytypes/types/%L
/mytypes/types/C
$HOME/.dt/types
/etc/dt/appconfig/types/%L
/etc/dt/appconfig/types/C
/usr/dt/appconfig/types/%L
/usr/dt/appconfig/types/C

XMICONSEARCHPATH, XMICONBMSEARCHPATH, DTSPSYSICON, DTSPUSERICON:
Used to locate desktop icons. The default transformed value is:
$HOME/.dt/icons/0M.pm
$HOME/.dt/icons/0M.bm
$HOME/.dt/icons/%B
/etc/dt/appconfig/icons/%L/0M.pm
/etc/dt/appconfig/icons/%L/0M.bm
/etc/dt/appconfig/icons/%L/%B
/etc/dt/appconfig/icons/C/0M.pm
/etc/dt/appconfig/icons/C/0M.bm
/etc/dt/appconfig/icons/C/%B
/usr/dt/appconfig/icons/%L/0M.pm
/usr/dt/appconfig/icons/%L/0M.bm
/usr/dt/appconfig/icons/%L/%B
/usr/dt/appconfig/icons/C/0M.pm
/usr/dt/appconfig/icons/C/0M.bm
/usr/dt/appconfig/icons/C/%B

Where %B is the basename of the requested icon, %M is the magnitude (size) of the icon, and %L is the value of the LANG environment variable.

The value of XMICONSEARCHPATH can be altered by either of two environment variables: DTSPSYSICON and/or DTSPUSERICON. DTSPSYSICON is for use by system administrators. Values are specified by adding a ksh script to the /etc/dt/config/Xsession.d directory that exports the variable.

export DTSPSYSICON=/vipapps/icons

The expected syntax for DTSPSYSICON is a comma-separated list. DTSPSYSICON accepts the /path format. The effect is to insert a searchpath after the configuration location (/etc/dt/appconfig/icons) and before the factory default location (/usr/dt/appconfig/icons).
$HOME/.dt/icons/0M.pm
$HOME/.dt/icons/0M.bm
$HOME/.dt/icons/0M
/etc/dt/appconfig/icons/%L/0M.pm
/etc/dt/appconfig/icons/%L/0M.bm
/etc/dt/appconfig/icons/%L/0M
/etc/dt/appconfig/icons/C/0M.pm
/etc/dt/appconfig/icons/C/0M.bm
/etc/dt/appconfig/icons/C/0M
/vipapps/icons/%L/0M.pm
/vipapps/icons/%L/0M.bm
/vipapps/icons/%L/0M
/vipapps/icons/C/0M.pm
/vipapps/icons/C/0M.bm
/vipapps/icons/C/0M
usr/dt/appconfig/icons/%L/0M.pm
/usr/dt/appconfig/icons/%L/0M.bm
/usr/dt/appconfig/icons/%L/0M
/usr/dt/appconfig/types/C/0M.pm
/usr/dt/appconfig/types/C/0M.bm
/usr/dt/appconfig/types/C/0M

The placement of the local configuration directory can be affected by the adding the path term /etc/dt/appconfig to the DTSPSYSICON environment variable.

export DTSPSYSICON=/vipapps/icons,/etc/dt/appconfig

The resulting value for XMICONSEARCHPATH would be:

$HOME/.dt/icons/0M.pm
$HOME/.dt/icons/0M.bm
$HOME/.dt/icons/0M
/vipapps/icons/%L/0M.pm
/vipapps/icons/%L/0M.bm
/vipapps/icons/%L/0M
/vipapps/icons/C/0M.pm
/vipapps/icons/C/0M.bm
/vipapps/icons/C/0M
/etc/dt/appconfig/icons/%L/0M.pm
/etc/dt/appconfig/icons/%L/0M.bm
/etc/dt/appconfig/icons/%L/0M
/etc/dt/appconfig/icons/C/0M.pm
/etc/dt/appconfig/icons/C/0M.bm
/etc/dt/appconfig/icons/C/0M
usr/dt/appconfig/icons/%L/0M.pm
/usr/dt/appconfig/icons/%L/0M.bm
/usr/dt/appconfig/icons/%L/0M
/usr/dt/appconfig/types/C/0M.pm
/usr/dt/appconfig/types/C/0M.bm
/usr/dt/appconfig/types/C/0M

DTSPUSERICON is for use by end users. Values are specified by exporting the value in the user's .dtprofile.

export DTSPUSERICON=$HOME/myicons

DTSPUSERICON accepts /path specifications. The effect is to insert a searchpath before any other searchpath.

$HOME/myicons/0M.pm
$HOME/myicons/0M.bm
$HOME/myicons/0M
$HOME/.dt/icons/0M.pm
$HOME/.dt/icons/0M.bm
$HOME/.dt/icons/0M
/etc/dt/appconfig/icons/%L/0M.pm
/etc/dt/appconfig/icons/%L/0M.bm
/etc/dt/appconfig/icons/%L/0M
/etc/dt/appconfig/icons/C/0M.pm
/etc/dt/appconfig/icons/C/0M.bm
/etc/dt/appconfig/icons/C/0M
/usr/dt/appconfig/icons/%L/0M.pm
/usr/dt/appconfig/icons/%L/0M.bm
/usr/dt/appconfig/icons/%L/0M
/usr/dt/appconfig/types/C/0M.pm
/usr/dt/appconfig/types/C/0M.bm
/usr/dt/appconfig/types/C/0M

DTHELPSEARCHPATH, DTSPSYSHELP, DTSPUSERHELP:

Used to locate help volumes and families for the desktop help subsystem. The default transformed value is:
$HOME/.dt/help/<session>/%H
$HOME/.dt/help/<session>/%H.sdl
$HOME/.dt/help/<session>/%H.hv
$HOME/.dt/help/%H
$HOME/.dt/help/%H.sdl
$HOME/.dt/help/%H.hv
/etc/dt/appconfig/help/%L/%H
/etc/dt/appconfig/help/%L/%H.sdl
/etc/dt/appconfig/help/%L/%H.hv
/etc/dt/appconfig/help/C/%H
/etc/dt/appconfig/help/C/%H.sdl
/etc/dt/appconfig/help/C/%H.hv
/usr/dt/appconfig/help/%L/%H
/usr/dt/appconfig/help/%L/%H.sdl
/usr/dt/appconfig/help/%L/%H.hv
/usr/dt/appconfig/help/C/%H
/usr/dt/appconfig/help/C/%H.sdl
/usr/dt/appconfig/help/C/%H.hv

Where %H is the basename of the requested help volume, and %L is the value of the LANG environment variable.

The value of DTHELPSEARCHPATH can be altered by either of two environment variables: DTSPSYSHELP and/or DTSPUSERHELP. DTSPSYSHELP is for use by system administrators. Values are specified by adding a ksh script to the /etc/dt/config/Xsession.d directory that exports the variable.

export DTSPSYSHELP=/vipapps/help

The expected syntax for DTSPSYSHELP is a comma-separated list. DTSPSYSHELP accepts the /path format. The effect is to insert a searchpath after the configuration location (/etc/dt/appconfig/help) and before the factory default location (/usr/dt/appconfig/help).
$HOME/.dt/help/<session>/%H
$HOME/.dt/help/<session>/%H.sdl
$HOME/.dt/help/<session>/%H.hv
$HOME/.dt/help/%H
$HOME/.dt/help/%H.sdl
$HOME/.dt/help/%H.hv
/etc/dt/appconfig/help/%L/%H
/etc/dt/appconfig/help/%L/%H.sdl
/etc/dt/appconfig/help/%L/%H.hv
/etc/dt/appconfig/help/C/%H
/etc/dt/appconfig/help/C/%H.sdl
/etc/dt/appconfig/help/C/%H.hv
/vipapps/help/%L/%H
/vipapps/help/%L/%H.sdl
/vipapps/help/%L/%H.hv
/vipapps/help/C/%H
/vipapps/help/C/%H.sdl
/vipapps/help/C/%H.hv
/usr/dt/appconfig/help/%L/%H
/usr/dt/appconfig/help/%L/%H.sdl
/usr/dt/appconfig/help/%L/%H.hv
/usr/dt/appconfig/help/C/%H
/usr/dt/appconfig/help/C/%H.sdl
/usr/dt/appconfig/help/C/%H.hv

The placement of the local configuration directory can be affected by the adding the path term /etc/dt/appconfig to the DTSPSYSHELP environment variable.

export DTSPSYSHELP=/vipapps/help,/etc/dt/appconfig

The resulting value for DTHELPSEARCHPATH would be:
$HOME/.dt/help/<session>/%H
$HOME/.dt/help/<session>/%H.sdl
$HOME/.dt/help/<session>/%H.hv
$HOME/.dt/help/%H
$HOME/.dt/help/%H.sdl
$HOME/.dt/help/%H.hv
/vipapps/help/%L/%H
/vipapps/help/%L/%H.sdl
/vipapps/help/%L/%H.hv
/vipapps/help/C/%H
/vipapps/help/C/%H.sdl
/vipapps/help/C/%H.hv
/etc/dt/appconfig/help/%L/%H
/etc/dt/appconfig/help/%L/%H.sdl
/etc/dt/appconfig/help/%L/%H.hv
/etc/dt/appconfig/help/C/%H
/etc/dt/appconfig/help/C/%H.sdl
/etc/dt/appconfig/help/C/%H.hv
/usr/dt/appconfig/help/%L/%H
/usr/dt/appconfig/help/%L/%H.sdl
/usr/dt/appconfig/help/%L/%H.hv
/usr/dt/appconfig/help/C/%H
/usr/dt/appconfig/help/C/%H.sdl
/usr/dt/appconfig/help/C/%H.hv

DTSPUSERHELP is for use by end users. Values are specified by exporting the value in the user's .dtprofile.

export DTSPUSERHELP=$HOME/myhelp

DTSPUSERHELP accepts /path specifications. The effect is to insert a searchpath before any other searchpath.
$HOME/myhelp/%H
$HOME/myhelp/%H.sdl
$HOME/myhelp/%H.hv
$HOME/.dt/help/<session>/%H
$HOME/.dt/help/<session>/%H.sdl
$HOME/.dt/help/<session>/%H.hv
$HOME/.dt/help/%H
$HOME/.dt/help/%H.sdl
$HOME/.dt/help/%H.hv
/etc/dt/appconfig/help/%L/%H
/etc/dt/appconfig/help/%L/%H.sdl
/etc/dt/appconfig/help/%L/%H.hv
/etc/dt/appconfig/help/C/%H
/etc/dt/appconfig/help/C/%H.sdl z.br /etc/dt/appconfig/help/C/%H.hv
/usr/dt/appconfig/help/%L/%H
/usr/dt/appconfig/help/%L/%H.sdl
/usr/dt/appconfig/help/%L/%H.hv
/usr/dt/appconfig/help/C/%H
/usr/dt/appconfig/help/C/%H.sdl
/usr/dt/appconfig/help/C/%H.hv

(See also the OPTIMIZATIONS heading in this man page.)

At the conclusion of dtsearchpath, DTSPSYS and DTSPUSER variables are explicitly unset, so that only the DT*SEARCHPATH values remain.

MANPATH, DTMANPATH:
In addition to setting the application search paths, dtsearchpath augments the MANPATH environment variable with the path to the CDE man pages, /usr/dt/man. For example, if the value of MANPATH prior to execution of: dtsearchpath is
/net/manserver/usr/man:/usr/man
then the augmented value will be:
/usr/dt/man:/net/manserver/usr/man:/usr/man.

If the MANPATH environment variable is not set prior to the invocation of dtsearchpath, the system-defined default value of MANPATH will be included in the augmented MANPATH value. For example, if the system-defined default value is:
/usr/man:/usr/local/man
then dtsearchpath will generate a MANPATH value of:
/usr/dt/man:/usr/man:/usr/local/man

LOCALES
Each of the search path elements contain a path that references the LANG variable using the %L construct. When the user selects a different language from the greeting screen and logs in, the search path will already be set up. At the same time, the factory defaults are still included, but after the localized elements.

For example, if the user chooses the german locale from the greeting screen, then his/her DTDATABASESEARCHPATH will already include these elements, as specified by the LANG value set at session startup:
$HOME/.dt/types
/etc/dt/appconfig/types/%L
/etc/dt/appconfig/types/C
/usr/dt/appconfig/types/%L
/usr/dt/appconfig/types/C

(See also the OPTIMIZATIONS heading in this man page.)

Note that the search path does not use locales under the user's $HOME directory. Whether the user adds personal icons under $HOME/.dt/icons or personal applications under $HOME/.dt/appmanager, they will be found regardless of the language selected at login.

OPTIMIZATIONS
Before exporting the search paths to the user's environment, dtsearchpath first checks to ensure that each subdirectory exists. If a directory does not exist at login, then that element will not be added to the user's search path, to save needless file system accesses by the desktop components.

FILES

    Enables setting of the user's DTSPUSER environment variables. Enables setting of the system DTSPSYS environment variables.

NOTES
In order to inject the values from dtsearchpath into the user's environment, the command must be eval'd, as is done by the Xsession login script.

eval `/usr/dt/bin/dtsearchpath`

Simply running dtsearchpath from the command line will have no affect on the parent shell.

It is not possible to affect the DT search paths after logging in. Components such as the Window Manager and File Manager inherit the values from dtsearchpath by being invoked from the same shell. Hence, if the system administrator creates a new search path element for the end user, the user will not be able to access it until the next login.

SEE ALSO
dtappgather(1).