Document revision date: 10 November 2000

## Managing DECwindows Motif for OpenVMS Systems

Previous | Contents | Index

## 3.3 Customization Examples

This section provides several examples that use the symbols described in Section 3.2.

### 3.3.1 Sample Workstation Setup

Example 3-2 shows some typical workstation-specific setup options.

Example 3-2 Sample Workstation Setup

    do_MYNODE:
    $  DECW$SERVER_DENSITY == 100                     ! 100 dpi font size
    $  DECW$COLOR == "T"                              ! Color monitor
    $  DECW$DEFAULT_KEYBOARD_MAP == "US_LK201AA"      ! USA LK201 keyboard
    $  DECW$SERVER_TRANSPORTS == "DECNET,LOCAL,TCPIP" ! Three transports
    $  DECW$SERVER_CONNECT_LOG == "F"                 ! Do not record connect log
    $ EXIT

### 3.3.2 Setting Up a Dual-Head System on a VAX System (VAX Only)

<vax_PS_section> <vax_br_section>

On VAX systems, you can use the examples and instructions in this section to set up dual-head systems. Section 3.3.3 provides instructions for setting up a dual-head system on an AXP system.

#### 3.3.2.1 Sample Setup for a Dual-Head System (VAX Only)

Example 3-3 shows a sample setup for a dual-head VAXstation 2000 or VAXstation 3100 system that has one keyboard, one mouse, and two monitors (one color and one monochrome).

Example 3-3 Sample Setup for a Dual-Head System (VAX Only)

    $do_VS2HD:
    $ RUN SYS$SYSTEM:SYSGEN                  ! Configure the devices
    $ CONNECT GCA0/ADAP=0/CSR=%x5000/VECT=%O400/NUMV=01/DRIVER=GCBDRIVER
    $ DECW$COLOR == "T,F"                    ! Screen 0 (color) Screen 1 (B&W)
    $ if f$getdvi("GAA0","EXISTS") then DECW$DEVICE == "GAA0,GCA0"
    $ if f$getdvi("GEA0","EXISTS") then DECW$DEVICE == "GEA0,GCA0"
    $ DECW$SERVER_DENSITY == 100             ! Use 100-dpi fonts  (1)
    $ DECW$MONITOR_DENSITY == 100,75         ! Screen 0 (100 dpi) Screen 1 (75 dpi) (2)
    $
    $ exit

1. The font density is chosen from the dpi value of the first screen. There is only one font path for a server, regardless of the number of screens. Set both screens to the same dpi value for consistency.
2. Sets the monitor density to 100 dpi for screen 0 and 75 dpi for screen 1.

#### 3.3.2.2 Sample Setup for a Dual-Head System With Different Monitors (VAX Only)

Example 3-4 shows a sample setup for a dual-head VS35x0 and GPX system. This configuration has one keyboard, one mouse, and two different color monitors. GPX systems support 16x16 cursor fonts, so the DECW$DEVICE font is defined to take this into account.<endsection>

Example 3-4 Sample Setup for a Dual-Head System With Different Monitors (VAX Only)

    $do_VS35x02HD:
    $ SYSGEN = "$SYSGEN"                        ! Run SYSGEN configure the devices
    $ IF .NOT. F$GETDVI("gaa0","exists") THEN EXIT
    $ IF (F$GETDVI("gaa0","sts") .and. 16) .EQ. 0 THEN $ SYSGEN RELOAD GAADRIVER.EXE
    $ IF (F$GETDVI("gba0","sts") .and. 16) .EQ. 0 THEN $ SYSGEN RELOAD GBBDRIVER.EXE
    $ DECW$KEYBOARD :== TTA0:                   ! Keyboard device
    $ DECW$POINTER  :== TTA1:                   ! Mouse device
    $ DECW$COLOR == "T,T"                       ! Both are color monitors
    $ DECW$DEVICE == "GBA0,GAA0"                ! Monitor Devices
    $ DECW$SERVER_DENSITY == 100                ! 100 dpi fonts
    $ DECW$MONITOR_DENSITY == 100,100           ! 100 dpi monitors
    $ EXIT

### 3.3.3 Setting Up a Dual-Head System on an AXP System (AXP Only)

<alpha_PS_section> <alpha_br_section>

On AXP systems, the DECW$PRIVATE_SERVER_ SETUP.TEMPLATE includes the following command to set up your system for dual-head use:

    $ IF DECW$DEVICE_COUNT .GT. 1 THEN DECW$MULTI_HEAD == 1

The template file is located in the SYS$MANAGER directory. To invoke dual-head support, copy the template file to SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COM. Editing of this file is not needed.<endsection>

### 3.3.4 Sample Setup for Transport Connections

Example 3-5 shows a sample setup for a system to use TCP/IP and local connections but not DECnet connections.

Example 3-5 Sample Setup for Transport Connections

    $do_TCPIP:
    $ decw$server_transports == "TCPIP,LOCAL"
    $ exit
    $ !

### 3.3.5 Changing the Default Keyboard Layout

This section describes how to change the default keyboard setting. See Appendix B for a listing of all languages, keyboard models, and keymap names.

The symbol DECW$KEYMAP translates to the directory specification where the keyboard mapping file resides. It is provided for your reference only. Do not modify its value.

To override the default keyboard layout, determine the correct name from the model number of your keyboard, as follows:

1. Turn the keyboard upside down and look for a label that specifies the model number. The model number should be in a format similar to LK401--xx.
   The model number may also be listed as simply LK401. In this case, the information you need is in another part of the label, where there will be a number that has the following format nn-nnnnn-xx.
2. Use the xx part of this number to choose a keymap name from Appendix B. The table is arranged based on the language for which each keyboard is designed. Choose the keymap ending in:

   > _DP for the data processing keyboard layout
   > _TW for the typewriter layout

3. After you choose a keymap name, modify the DECW$PRIVATE_SERVER_SETUP.COM file. For example, to change the keyboard layout to a Dutch typewriter layout, add the following line to DECW$PRIVATE_SERVER_SETUP.COM:

       $ DECW$DEFAULT_KEYBOARD_MAP == "DUTCH_LK201LH_TW"

4. Add a line similar to this for each workstation that does not have a North American keyboard layout, or add it to the common section for all workstations (if all the workstations use the same keyboard layout).

Example 3-6 shows a sample setup for two workstations with Dutch keyboards and 100-dpi monitors.

Example 3-6 Sample Setup for Dutch Keyboards and 100-dpi Monitors

    $do_DUTCH:
    $do_DUTCH2:
    $ decw$server_density == 100
    $ decw$default_keyboard_map == "DUTCH_LK201LH_DP"
    $ exit

## 3.4 Specifying New Fonts

You can add new fonts by following these steps:

1. Place the DECW$FONT file in the DECW$SYSCOMMON: [SYSFONT.DECW.USER_nnDPI] directory.
2. Update the font database for the server by entering the following command from a privileged account:

       $ @SYS$UPDATE:DECW$MKFONTDIR

   This command creates new font directories for all layered-product fonts and runs automatically when DECwindows is installed.

### 3.4.1 Using Third-Party Fonts

If you want to use a third party font, choose one of the following options:

Font File is in BDF Format

1. Obtain the font source in bitmap distribution format (BDF) format.
2. Compile the font with the FONT command, as follows:

         $ FONT file-name

   See the VMS DECwindows Guide to Xlib (Release 4) Programming: MIT C Binding for a full description of the FONT command. <vax_PS_section> <vax_br_section>
3. On VAX systems, copy the resulting *.DECW$FONT file to one of the following directories:

       SYS$COMMON:[SYSFONT.DECW.USER_75DPI]
       SYS$COMMON:[SYSFONT.DECW.USER_100DPI]
       SYS$COMMON:[SYSFONT.DECW.COMMON_USER]<endsection>

   <alpha_PS_section> <alpha_br_section>
4. On AXP systems, copy the resulting *.PCF file to one of the following directories:

       SYS$COMMON:[SYSFONT.DECW.USER_75DPI]
       SYS$COMMON:[SYSFONT.DECW.USER_100DPI]
       SYS$COMMON:[SYSFONT.DECW.COMMON_USER]<endsection>

5. Create new font directories from a privileged account using the following command:

         $ @SYS$UPDATE:DECW$MKFONTDIR

End the current session and start a new session for the new font to become available.

Font is Charter or Lucida

If you want to use Charter or Lucida fonts and they do not reside on your system, use the example font-alias files provided by DECwindows to give the font name aliases to existing DECwindows font names. For 75-dpi monitors, copy the following files to the SYS$COMMON:[SYSFONT.DECW.USER_75DPI] directory:

    DECW$EXAMPLES:DECW$FONT_ALIAS_CHARTER.DAT
    DECW$EXAMPLES:DECW$FONT_ALIAS_LUCIDA.DAT

For 100-dpi monitors, copy the following files to the SYS$COMMON:[SYSFONT.DECW.USER_100DPI] directory:

    DECW$EXAMPLES:DECW$FONT_ALIAS_CHARTER_100DPI.DAT
    DECW$EXAMPLES:DECW$FONT_ALIAS_LUCIDA_100DPI.DAT

Other Third-Party Fonts

To use other third-party fonts, create the DECW$FONT_ALIAS.DAT file in either the SYS$COMMON:[SYSFONT.DECW.USER_75DPI] directory or the SYS$COMMON:[SYSFONT.DECW.USER_100DPI] directory, depending on whether the third-party font is 75 dpi or 100 dpi.

The format of the font alias file is:

alias-font-name actual-font-name

If the font names contain embedded spaces, enclose the names in double quotes (" ").

The alias-font-name value is the third-party font name, and the actual-font-name value is a DECwindows font name.

See the VMS DECwindows Guide to Xlib (Release 4) Programming: MIT C Binding for DECwindows font names.

### 3.4.2 Using Nonstandard Fonts

If you use a font file name that is not a standard font name (standard font files names are those with a .DECW$FONT or .PCF file type), then perform one of the following actions:

- For fixed-width fonts, such as 6x10 fonts, copy the DECW$EXAMPLES:DECW$FONT_ALIAS_FILENAMES.DAT file to the SYS$COMMON:[SYSFONT.DECW.USER_COMMON] directory. End the current session and start a new session for the change to take effect.
- Modify your application program to use standard font names. See the VMS DECwindows Guide to Xlib (Release 4) Programming: MIT C Binding for standard DECwindows font names.

### 3.4.3 Font Server Support (AXP Only)

<alpha_ps_section> <alpha_br_section>

On AXP systems, the R5 display server includes a font server renderer that supports the use of font servers to access fonts. This allows font files to be distributed on systems other than the system on which the display server is running.

You can add font servers to the font path by defining the symbol DECW$FONT_SERVERS in the site-specific server setup file SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COM. Depending on the transport type, use one of the following methods:

- To add support for the TCP transport, specify TCP as the network connection type that will communicate with the font server. Replace node with the Internet node name. Specify the TCP/IP port number for port_number, as shown in the following example:

      $ DECW$FONT_SERVERS == "TCP/node::port_number"

- To add support for the DECnet transport, specify DECNET as the network connection type that will communicate with the font server. Replace node with the DECnet node name. Specify the DECnet object name for network_object.

      $ DECW$FONT_SERVERS == "DECNET/node::network_object"

Multiple font servers can be added by defining the symbol as a comma-separated list. The symbol is not case sensitive.<endsection>

## 3.5 DECwindows Transport

DECwindows transport is a general data-transfer mechanism for moving X Window protocol requests between the client and the server. DECwindows Motif provides support for the following transports:

- Local
- DECnet
- DEC TCP/IP

The default transports that DECwindows uses are Local and DECnet. This section describes these transports. Section 3.6 provides information about using alternative transports.

### 3.5.1 Using Local Transport

You should use local transport when a DECwindows client and the server are executing on the same OpenVMS system. Local transport improves performance because data is transferred between client and server through shared memory. Using local transport reduces the number of data copies in the system, and extra overhead is not incurred by accessing the network.

### 3.5.2 Using DECnet Transport

DECwindows also provides support for DECnet for OpenVMS as a transport mechanism. Before you can use DECnet, you must have DECnet for OpenVMS installed and running on your system. If DECnet or DEC TCP/IP is shut down while the server is attached to it, the transport will continuously poll the network to reattach when the network is restarted.

## 3.6 Using Alternate Transport

This section describes how to use alternate transports and includes information about writing and installing a transport interface layer.

### 3.6.1 Using DEC TCP/IP

DECwindows Motif contains support for the TCP/IP transport. This support requires DEC TCP/IP Services for OpenVMS or a functionally compatible TCP/IP product. Before you can use DECwindows TCP/IP transport interface, you must install DEC TCP/IP Services for OpenVMS.

If you want to use the TCP/IP as a transport, you must first have the OpenVMS/ULTRIX Connection software (UCX) installed on your system. You do not need a UCX Product Authorization Key (PAK) to use UCX with DECwindows. For information about UCX, see the appropriate UCX documents. DECwindows Motif for OpenVMS supports only UCX for TCP/IP transport use.

If you intend to use DEC TCP/IP Services for OpenVMS as a network transport for DECwindows Motif for OpenVMS, you must also include the following line in SYS$MANAGER:SYSTARTUP_VMS.COM file (or the SYS$MANAGER:SYSTARTUP_V5.COM file in VMS Version 5.5--2 systems) :

    $ @SYS$STARTUP:UCX$STARTUP

Also, the TCP/IP transport does not pass user names for authorization to the server. If you are using TCP/IP transport for a given node, use an asterisk (*) in the Username entry box of the Security Options dialog box. To get the Security Options dialog box, pull down the Options menu from the Session Manager's menu, and choose the Security... menu item.

If you are using TCP/IP to display an application on your own system, authorize node zero (0), which is the local node.

Note Note the following aspects concerning TCP/IP transport: Other vendors' implementation of TCP/IP transports may use different call interfaces. Confirm that the interface is compatible before using an alternative TCP/IP product. You can conserve memory and process slots by configuring DEC TCP/IP Services for OpenVMS software for the minimum DECwindows requirement to support the X protocol. DECwindows only requires that INET_ACP be running. DECwindows does not require that the NFS server, the FTPD server, or the remote terminal servers be running.

For more information about TCP/IP concepts, see the DEC TCP/IP Services for VMS System Management Guide.

### 3.6.2 Using Other Transports with DECwindows

DECwindows Motif supports DECnet for OpenVMS, local, and TCP/IP transports. However, you can use other transports with DECwindows by writing a DECwindows transport interface layer. Third-party vendors supply additional transports, such as other TCP/IP transports.

#### 3.6.2.1 Writing a Transport Interface

For information about writing a transport interface, see the VMS DECwindows Transport Manual.

The transport interface image's file name must have one of the following formats, where name is the unique transport name:

- DECW$TRANSPORT_name (for transports supplied by Digital)
- DECW_TRANSPORT_name (for customer-written transports)

You can then specify the name in the SET DISPLAY command before invoking a client application, as in the following example:

    $ SET DISPLAY/CREATE/NODE=MYNODE/TRANSPORT=MYTRANSPORT

See Section 4.1 for more information about setting the display.

#### 3.6.2.2 Installing the Transport Interface Image

Install the image as a protected image in the SYS$SHARE directory (as defined by an executive mode logical name). Digital recommends that you install the image by adding the following line to SYS$MANAGER:SYSTARTUP_VMS.COM (or the SYS$MANAGER:SYSTARTUP_V5.COM file in VMS Version 5.5--2 systems) :

    $ INSTALL CREATE SYS$SHARE:DECW_TRANSPORT_name/OPEN/SHARED-
    _$  /HEADER_RESIDENT/PROTECTED

You can also include this command in a startup file that SYSTARTUP_VMS.COM (SYSTARTUP_V5.COM file in VMS Version 5.5--2) calls. To use this transport with the DECwindows server, customize the server startup as described in the Section 3.1.

## 3.7 Determining Current Server Parameters

This section lists the commands that you can use to determine the current server settings.

### 3.7.1 Displaying the Server Logical Name Table

Use the following command to display all of the logical names in the server logical name table that are defined from symbols specified in the DECwindows startup process:

    $ SHOW LOGICAL/TABLE=DECW$SERVERn_TABLE

Example 3-7 illustrates a typical display.

Example 3-7 Displaying the Server Logical Name Table

    $ SHOW LOGICAL/TABLE=DECW$SERVER0_TABLE

    (DECW$SERVER0_TABLE)

      "DECW$COLOR" = "TRUE"
      "DECW$DEFAULT_KEYBOARD_MAP" = "NORTH_AMERICAN_LK201LA"
      "DECW$FONT" = "DECW$SYSCOMMON:[SYSFONT.DECW.USER_CURSOR16]"(1)
     = "DECW$SYSCOMMON:[SYSFONT.DECW.CURSOR16]"
     = "DECW$SYSCOMMON:[SYSFONT.DECW.USER_100DPI]"
     = "DECW$SYSCOMMON:[SYSFONT.DECW.100DPI]"
     = "DECW$SYSCOMMON:[SYSFONT.DECW.USER_75DPI]"
     = "DECW$SYSCOMMON:[SYSFONT.DECW.75DPI]"
     = "DECW$SYSCOMMON:[SYSFONT.DECW.USER_COMMON]"
     = "DECW$SYSCOMMON:[SYSFONT.DECW.COMMON]"
      "DECW$KEYBOARD" = "TTA0:"(2)
      "DECW$KEYMAP" = "DECW$SYSCOMMON:[SYS$KEYMAP.DECW.USER]"
     = "DECW$SYSCOMMON:[SYS$KEYMAP.DECW.SYSTEM]"
      "DECW$MONITOR_DENSITY" = "100"
      "DECW$POINTER" = "TTA1:"(3)
      "DECW$SERVER_BUG_COMPATIBILITY" = "Y"
      "DECW$SERVER_CONNECT_LOG" = "F"
      "DECW$SERVER_DISABLE_BACKING_STORE" = "F"
      "DECW$SERVER_DISABLE_CH" = "N"
      "DECW$SERVER_EXTENSIONS" = "Adobe-DPS-Extension"
     = "X3D_PEX"
     = "Xie"
     = "DEC-XTRAP"
     = "Multi-Buffering"
      "DECW$SERVER_SCREENS" = "GEA0"(4)
      "DECW$SERVER_TRANSPORTS" = "DECNET"
     = "LOCAL"
      "DECW$SYSCOMMON" = "SYS$SYSROOT"
      "DECW$XSIZE_IN_PIXELS" = "1280"
      "DECW$YSIZE_IN_PIXELS" = "1024"

1. DECW$FONT specifies the font path. For more information, see Section 3.2.4.1.
2. DECW$KEYBOARD is the keyboard device name.
3. DECW$POINTER is the mouse pointer device name.
4. DECW$SERVER_SCREENS is the list of graphics devices.

### 3.7.2 Using the XDPYINFO Utility

You can use the DECwindows utility XDPYINFO (X Display Information) to query the server directly and report various server parameters.

The following example shows how to invoke the XDPYINFO utility. Before executing this command, make sure you have the correct display selected by using the SET DISPLAY command. See Section 4.1 for more information about showing and setting the display.

    $ SET DISPLAY/CREATE/NODE=node_name
    $ RUN DECW$UTILS:XDPYINFO

The following example illustrates a typical display:

    name of display:    _WSA1:
    version number:    11.0
    vendor string:    DECWINDOWS DigitalEquipmentCorp. VAX
    vendor release number:    6000
    maximum request size:  4096 longwords (16384 bytes)
    motion buffer size:  0
    bitmap unit, bit order, padding:    32, LSBFirst, 32
    image byte order:    LSBFirst
    number of supported pixmap formats:    4
    supported pixmap formats:
        depth 1, bits_per_pixel 1, scanline_pad 32
        depth 4, bits_per_pixel 8, scanline_pad 32
        depth 8, bits_per_pixel 8, scanline_pad 32
        depth 24, bits_per_pixel 32, scanline_pad 32
    keycode range:    minimum 8, maximum 255
    number of extensions:    8
        MIT-SUNDRY-NONSTANDARD
        DEC-Server-Mgmt-Extension
        ServerManagementExtension
        Adobe-DPS-Extension
        X3D_PEX
        Xie
        DEC-XTRAP
        Multi-Buffering
    default screen number:    0
    number of screens:    1

    screen #0:
      dimensions:    1280x1024 pixels (325x260 millimeters)
      resolution:    100x100 dots per inch
      depths (2):    1, 8
      root window id:    0x2a
      depth of root window:    8 planes
      number of colormaps:    minimum 1, maximum 1
      default colormap:    0x25
      default number of colormap cells:    256
      preallocated pixels:    black 0, white 1
      options:    backing-store YES, save-unders NO
      current input event mask:    0x0
      number of visuals:    4
      default visual id:  0x21
      visual:
        visual id:    0x21
        class:    PseudoColor
        depth:    8 planes
        size of colormap:    256 entries
        red, green, blue masks:    0xff, 0xff, 0xff
        significant bits in color specification:    8 bits
      visual:
        visual id:    0x22
        class:    GrayScale
        depth:    8 planes
        size of colormap:    256 entries
        red, green, blue masks:    0xffffffff, 0xffffffff, 0xffffffff
        significant bits in color specification:    8 bits
      visual:
        visual id:    0x23
        class:    StaticGray
        depth:    8 planes
        size of colormap:    2 entries
        red, green, blue masks:    0xff, 0xff, 0xff
        significant bits in color specification:    8 bits
      visual:
        visual id:    0x24
        class:    TrueColor
        depth:    8 planes
        size of colormap:    256 entries
        red, green, blue masks:    0xe0, 0x1c, 0x3
        significant bits in color specification:    3 bits

Previous | Next | Contents | Index

| privacy and legal statement |
6300PRO_004.HTML