# Desktop Search Paths

The desktop uses search paths to locate applications and their associated desktop files.

SAG.Datab.div.2
SAG.Datab.div.3
SAG.Datab.div.7
SAG.Datab.div.14
SAG.Datab.div.20
SAG.Datab.div.26
SAG.Datab.div.32

The desktop provides five search paths, described in SAG.Datab.tbl.1.

## Desktop Search Paths

`Search Path` | `Description`
Applications | Used to locate applications. Application Manager uses the application search path to dynamically populate its top level when a user logs in.
Database | Used to specify additional locations for action and data type definition files (`*.dt` files) and Front Panel files (`*.fp` files).
Icons | Used to specify additional locations for icons.
Infolib | Used to specify additional locations for information libraries.
Help data | Used to specify additional locations for desktop help data.

The search paths can include both local and remote directories. Thus, the search paths play an important role in the networking architecture of the desktop. For example, a system finds applications on an application server because that application server is listed in the application search path.

When a search path includes a remote location, you must configure remote file access to the location. For more information, see SAG.ClSrv.mkr.7.

## Desktop Search Paths and Their Environment Variables

The desktop search paths are created at login by the desktop utility `dtsearchpath`. The `dtsearchpath` utility uses a combination of environment variables and built-in locations to create the search paths.

The environment variables that `dtsearchpath` reads are called input variables. These are variables set by the system administrator or end user. The input variables use the naming convention `DTSP*`.

When `dtsearchpath` runs at login time, it assembles the values assigned to these variables, adds built-in locations, and creates values for output variables. There is an output variable for each search path.

## Desktop Search Path Environment Variables

`Search Path For:` | `Output Environment Variable` | `System-Wide Input Variable` | `Personal Input Variable`
Applications | DTAPPSEARCHPATH | DTSPSYSAPPHOSTS | DTSPUSERAPPHOSTS
Actions, data types, and Front Panel definitions Datatabase | DTDATABASESEARCHPATH | DTSPSYSDATABASEHOSTS | DTSPUSERDATABASEHOSTS
Icons | XMICONSEARCHPATH, XMICONBMSEARCHPATH | DTSPSYSICON | DTSPUSERICON
Infolibs | DTINFOLIBSEARCHPATH | DTSPSYSINFOLIB | DTSPUSERINFOLIB
Help data | DTHELPSEARCHPATH | DTSPSYSHELP | DTSPUSERHELP

Components use the values of the output variables. For example, Application Manager uses the value of the application search path (DTAPPSEARCHPATH) to locate application groups.

## Setting the Value of a Search Path

You can modify the search paths on a system-wide or personal basis. Modifications are done by setting values for the system-wide or personal input variables. Any modifications you make are added to the built-in search path locations.

### To See the Current Value for a Search Path (Output Variable)

1. Use the `dtsearchpath` command to display the current values for the search paths:

   - To obtain the value for the current (login) user, execute:

         dtsearchpath -v

   - To obtain the value for a different user, execute:

         dtsearchpath -u user

Search path values include these variables:

%I | Used in DTINFOLIBSEARCHPATH. The name of the default information library.
%H | Used in DTHELPSEARCHPATH. The help volume name.
%B | Used in XMICONSEARCHPATH. The base name of an icon file.
%M | Used in XMICONSEARCHPATH. The size of the icon file (`.l`, `.m`, `.s`, `.t`)
`%L` | Value of the LANG environment variable.

### To Make Personal Modifications to a Search Path

1. Open HomeDirectory`/.dtprofile` for editing.

2. Add or edit a line defining a value for the personal input variable.

   For example, the following line adds a location to the user's personal application search path:

       DTSPUSERAPPHOSTS=/projects1/editors

3. To make the change take effect, log out and back in.

### To Make System-Wide Modifications to a Search Path

1. Log in as root.

2. If the file /`etc/dt/config/Xsession.d/0010.dtpaths` doesn't exist, create it by copying `/usr/dt/config/Xsession.d/0010.dtpaths`.

3. Open /`etc/dt/Xsession.d/0010.paths` for editing. Add or edit a line defining a value for the system-wide input variable.

   For example, the following line adds a location to the system-wide help search path:

       DTSPSYSHELP=/applications/helpdata

4. Inform all users on the system that they must log out and back in for the change to take effect.

## Application Search Path

The application search path is the primary search path used by the desktop to locate applications on the local system and on application servers throughout the network.

When locations are added to the application search path, the other search paths (database, icon, and help) are automatically updated to reflect the corresponding locations for that data; thus, the application search path provides relatively simple administration for applications and their desktop configuration files. See SAG.Datab.div.13.

### Default Application Search Path

The default application search path includes personal, system-wide, and built- in locations. The default language is `C`.

Personal location | HomeDirectory`/.dt/appmanager`
System-wide location | `/etc/dt/appconfig/appmanager/`language
Built-in location | `/usr/dt/appconfig/appmanager/`language

### Application Search Path Environment Variables

The application search path is assembled from the built-in locations and the following input variables:

DTSPSYSAPPHOSTS | System-wide application search path input variable
DTSPUSERAPPHOSTS | Personal application search path input variable

The assembled search path is specified by the output variable
DTAPPSEARCHPATH.

### Syntax for the Application Search Path Input Variables

The syntax for the variables
DTSPSYSAPPHOSTS and
DTSPUSERAPPHOSTS is:

    VARIABLE=location [,location...]

where location can have the syntax:

/path | Specifies a directory on the local (session server) system. Use this syntax to add a local directory.
hostname`:` | Specifies the system-wide directory `/etc/dt/appconfig/appmanager/`language on system hostname. Use this syntax to add an application server.
hostname`:/`path | Specifies a directory on the remote system hostname.
`localhost:` | The local system-wide location. This keyword is used to alter the precedence of the local system-wide location. See SAG.Datab.div.12.

### How the Value of the Application Search Path Is Assembled

The value of the application search path (
DTAPPSEARCHPATH) is created by assembling the following locations, listed in order of precedence:

- Locations specified using the DTSPUSERAPPHOSTS variable

- The default personal location: HomeDirectory`/.dt/appmanager`

- The default location: `/etc/dt/appconfig/appmanager/`language

- Locations specified using the DTSPSYSAPPHOSTS variable

- `/usr/dt/appconfig/appmanager/`language

The syntax:

    hostname:

is expanded to specify the directory `/etc/dt/appconfig/appmanager` on system hostname.

### Changing the Precedence of the System-Wide Local Location

By default, the local system-wide location (`/etc/dt/appconfig/appmanager/`language) has precedence over remote locations. Thus, local application groups have precedence over remote groups with the same name. For example, if both the local and remote systems have Printer application groups (`/etc/dt/appconfig/appmanager/`language`/Printers`), the local group is used.

The application search path input variables provide syntax for specifying the precedence of the local system-wide application groups:

    localhost:

For example, suppose your system must access application servers `SysA`, `SysB`, and `SysC`, and you want the system-wide application groups on `SysB` to have precedence over any local groups with the same name.

The following value for DTSPSYSAPPHOSTS creates this behavior:

    DTSPSYSAPPHOSTS=SysB:,localhost:,SysA:,SysC:

### How the Application Search Path Affects the Database, Icon, Infolib, and Help Search Paths

Additions to the application search path automatically add corresponding locations to the database, icon, infolib, and help search paths. This provides the ability to add an application server to a search path by setting only the application search path input variable.

For example, if you set DTSPSYSAPPHOSTS as follows:

    DTSPSYSAPPHOSTS=servera:

then the following search paths are affected:

Search Path | Directory Added to Search Path
Applications | `servera:/etc/dt/appconfig/appmanager/`language
Database | `servera:/etc/dt/appconfig/types/`language
Icon | `servera:/etc/dt/appconfig/icons/`language
Infolib | `servera:/etc/dt/infolib/`language
Help | `servera:/etc/dt/appconfig/help/`language

Similarly, if you set DTSPSYSAPPHOSTS as follows:

    DTSPSYSAPPHOSTS=/projects1/apps

then the following search paths are affected:

Search Path | Directory Added to Search Path
Applications | `/projects1/apps/appmanager/`language
Database | /`projects1/apps/types/`language
Icon | /`projects1/apps/icons/`language
Infolib | /`projects1/apps/infolib/`language
Help | /`projects1/apps/help/`language

## Database (Action/Data Types) Search Path

The database search path directs the desktop to search specified locations for files containing:

- Action and data type definitions (`*.dt` files)

- Front Panel definitions (`*.fp` files).

You may need to modify the database search path when you create a database server, or when you add a local location for database files.

### Default Database Search Path

The default database search path includes personal, system-wide, and built-in locations. The default language is `C.`

Personal location | HomeDirectory`/.dt/types`
System-wide location | `/etc/dt/appconfig/types/`language
Built-in location | `/usr/dt/appconfig/types/`language

### How the Application Search Path Affects the Database Search Path

When a location is added to the application search path, the appropriate database subdirectory is automatically added to the database search path (see SAG.Datab.mkr.11).

For example, if the application server `hosta:` is added to the application search path, the directory `hosta:/etc/dt/appconfig/types/`language is automatically added to the database search path.

### Database Search Path Environment Variables

The database search path is assembled from the built-in locations and the following input variables:

DTSPSYSDATABASEHOSTS | System-wide database search path input variable
DTSPUSERDATABASEHOSTS | Personal database search path input variable

Use these input variables to specify locations outside the application search path.

The assembled database search path is specified by the output variable
DTDATABASESEARCHPATH.

### Syntax for the Database Search Path Input Variables

The syntax for the variables
DTSPSYSDATABASEHOSTS and
DTSPUSERDATABASEHOSTS is:

    VARIABLE=location [,location...]

where location can have the syntax:

`/`path | Specifies a directory on the local (session server) system. Use this syntax to add a local directory.
hostname`:` | Specifies the system-wide directory `/etc/dt/appconfig/types/`language on system hostname.
hostname`:/`path | Specifies a directory on the remote system hostname.

### How the Database Search Path Is Assembled

The value of the database search path (
DTDATABASESEARCHPATH) is created by assembling the following locations, listed in order of precedence:

- Locations specified using the DTSPUSERDATABASEHOSTS variable

- Locations derived from the DTSPUSERAPPHOSTS variable

- The default personal location: HomeDirectory`/.dt/types`

- The default location: `/etc/dt/appconfig/types/`language

- Locations specified using the DTSPSYSDATABASEHOSTS variable

- Locations derived from the DTSPSYSAPPHOSTS variable

- `/usr/dt/appconfig/types/`language

The syntax:

    hostname:

is expanded to specify the directory `/etc/dt/appconfig/types` on system hostname.

## Icon Search Path

The icon search path directs the desktop to search specified locations for files containing bitmap and pixmap image files used by the desktop.

### Default Icon Search Path

The default icon search path includes personal, system-wide, and built-in locations. The default language is `C.`

Personal location | HomeDirectory`/.dt/icons`
System-wide location | `/etc/dt/appconfig/icons/`language
Built-in location | `/usr/dt/appconfig/icons/`language

### How the Application Search Path Affects the Icon Search Path

When a location is added to the application search path, the appropriate icon subdirectory is automatically added to the icon search path (see SAG.Datab.mkr.11).

For example, if the application server `hosta:` is added to the application search path, the directory `hosta:/etc/dt/appconfig/icons/`language is automatically added to the icon search path.

### Icon Search Path Environment Variables

The icon search path is assembled from the built-in locations and the following input variables:

DTSPSYSICON | System-wide icon search path input variable
DTSPUSERICON | Personal icon search path input variable

Use these input variables to specify locations outside the application search path.

The assembled icon search path is specified by two output variables:

XMICONSEARCHPATH | Used by color displays
XMICONBMSEARCHPATH | Used by monochrome displays

### Syntax for the Icon Search Path Input Variables

The syntax for the variables
DTSPSYSICON and
DTSPUSERICON is:

    VARIABLE=location [,location...]

where location can have the syntax:

`/`path | Specifies a directory on the local (session server) system. Use this syntax to add a local directory.

To specify a location on another system, use its network file name—for example, `/nfs/servera/projects/icons`.

### How the Icon Search Path Is Assembled

The value of the icon search path (
XMICONSEARCHPATH and
XMICONBMSEARCHPATH) is created by assembling the following locations, listed in order of precedence:

- Locations specified using the DTSPUSERICON variable

- Locations derived from the DTSPUSERAPPHOSTS variable

- The default personal location: HomeDirectory`/.dt/icons`

- The default location: `/etc/dt/appconfig/icons/`language

- Locations specified using the DTSPSYSICON variable

- Locations derived from the DTSPSYSAPPHOSTS variable

- `/usr/dt/appconfig/icons/`language

The color and monochrome search paths differ only in the precedence given to pixmap and bitmaps. The XMICONSEARCHPATH variables lists pixmaps before bitmaps; XMICONBMSEARCPATH lists bitmaps before pixmaps.

## Infolib Search Path

The infolib search path directs the desktop to search specified locations for information libraries that will be registered on your system.

The `DTINFOLIBSEARCHPATH` and `DTINFOLIBDEFAULT` environment variables are defined at installation time by the `dtsearchpath` utility.

### Default Infolib Search Path

The default infolib search path includes system-wide and built-in locations. The default language is `C.`

System-wide location | `/etc/dt/infolib/`%L/%I.dti
Built-in location | `/usr/dt/infolib/`%L/%I.dti

The value of `DTINFOLIBDEFAULT` is substituted for %I. The default value of `DTINFOLIBDEFAULT` is `cde`.

### How the Application Search Path Affects the infolib Search Path

When a location is added to the application search path, the appropriate infolib subdirectory is automatically added to the infolib search path (see SAG.Datab.mkr.11).

For example, if the application server `hosta:` is added to the application search path, the directory `hosta:/etc/dt/infolib/`%L is automatically added to the infolib search path.

### infolib Search Path Environment Variables

The infolib search path is assembled from the built-in locations and the following input variables:

DTSPSYSINFOLIB | System-wide infolib search path input variable
DTSPUSERINFOLIB | Personal infolib search path input variable

Use these input variables to specify locations outside the application search path.

The assembled infolib search path is specified by the output variable `DTINFOLIBSEARCHPATH`.

### Syntax for the infolib Search Path Input Variables

The syntax for the variables `DTSPSYSINFOLIB` and `DTSPUSERINFOLIB` is:

    VARIABLE=location [,location...]

where location can have the syntax:

`/`path | Specifies a directory on the local (session server) system. Use this syntax to add a local directory.

To specify a location on another system, use its network file name—for example, `/nfs/servera/projects/infolib`.

### How the infolib Search Path Is Assembled

The value of the infolib search path (`DTINFOLIBSEARCHPATH`) is created by assembling the following locations, listed in order of precedence:

- Locations specified using the `DTSPUSERINFOLIB` variable

- Locations derived from the `DTSPUSERAPPHOSTS` variable

- The default location: `/etc/dt/infolib/`%L/%I`.dti`

- Locations specified using the `DTSPSYSINFOLIB` variable

- Locations derived from the `DTSPSYSAPPHOSTS` variable

- `/usr/dt/infolib/`%L/%I`.dti`

## Help Search Path

The help search path directs the desktop to search specified locations for files containing help information that will be registered on your system.

### Default Help Search Path

The default help search path includes personal, system-wide, and built-in locations. The default language is `C.`

Personal location | HomeDirectory`/.dt/help`
System-wide location | `/etc/dt/appconfig/.dt/help/`language
Built-in location | `/usr/dt/appconfig/help/`language

### How the Application Search Path Affects the Help Search Path

When a location is added to the application search path, the appropriate help subdirectory is automatically added to the help search path (see SAG.Datab.mkr.11).

For example, if the application server `hosta:` is added to the application search path, the directory `hosta:/etc/dt/appconfig/help/`language is automatically added to the help search path.

### Help Search Path Environment Variables

The help search path is assembled from the built-in locations and the following input variables:

DTSPSYSHELP | System-wide help search path input variable
DTSPUSERHELP | Personal help search path input variable

Use these input variables to specify locations outside the application search path.

The assembled help search path is specified by the output variable DTHELPSEARCHPATH.

### Syntax for the Help Search Path Input Variables

The syntax for the variables
DTSPSYSHELP and
DTSPUSERHELP is:

    VARIABLE=location [,location...]

where location can have the syntax:

`/`path | Specifies a directory on the local (session server) system. Use this syntax to add a local directory.

To specify a location on another system, use its network file name—for example, `/nfs/servera/projects/help`.

### How the Help Search Path Is Assembled

The value of the help search path (DTHELPSEARCHPATH) is created by assembling the following locations, listed in order of precedence:

- Locations specified using the DTSPUSERHELP variable

- Locations derived from the DTSPUSERAPPHOSTS variable

- The default personal location: HomeDirectory`/.dt/help`

- The default location: `/etc/dt/appconfig/help/`language

- Locations specified using the DTSPSYSHELP variable

- Locations derived from the DTSPSYSAPPHOSTS variable

- `/usr/dt/appconfig/help/`language

## Localized Search Paths

The output variables include entries for both localized and default (`C`) locations.

For example, the default application search path is:

    HomeDirectory/.dt/appmanager
    /etc/dt/appconfig/appmanager/language
    /etc/dt/appconfig/appmanager/C
    /usr/dt/appconfig/appmanager/language
    /usr/dt/appconfig/appmanager/C

where language is the value of the LANG environment variable.

For each scope (system-wide and built-in), the language-specific location has precedence over the default location.