The OpenVMS Frequently Asked Questions(FAQ)


Previous Contents Index

Look at the contents of the DECDTLOGO.PM file and at other *.XPM files and tools for additional details.

11.7.1 How do I customize DECwindows keymapping?

Various keymaps can be implemented on OpenVMS and other X Windows systems, allowing the implementation of a Dvorak-style or other alternate keymappings. For details, see the available X Windows documentation (this is the documentation associated with X Windows itself, and not the product documentation for the OpenVMS operating system nor for the DECwindows X Windows implementation) and see the DECwindows *.DECW$KEYMAP (text-format) files found in the DECwindows DECW$KEYMAP: directory.

For other keymapping information, see Section 11.7.2.

11.7.2 Why does the DELETE key delete forward instead of backward?

See the SET TERMINAL/BACKSPACE command on OpenVMS V8.1 and later.

This behaviour involves the Motif virtual key bindings. When a Motif application starts, it looks at the vendor string returned in the display connection information and attempts to match the string to a table of virtual bindings.

You can override the default bindings in your decw$xdefaults.dat file. Here is the entry you would make to get the default VMS bindings.


*defaultVirtualBindings:\
 osfCancel :  [F11] \n\
 osfLeft :  [Left] \n\
 osfUp  :  [Up] \n\
 osfRight :  [Right] \n\
 osfDown :  [Down] \n\
 osfEndLine :Alt  [Right] \n\
 osfBeginLine :Alt  [Left] \n\
 osfPageUp :  [Prior] \n\
 osfPageDown :  [Next] \n\
 osfDelete :Shift  [Delete] \n\
 osfUndo :Alt  [Delete] \n\
 osfBackSpace :  [Delete] \n\
 osfAddMode :Shift  [F8] \n\
 osfHelp :  [Help] \n\
 osfMenu :  [F4] \n\
 osfMenuBar :  [F10] \n\
 osfSelect :  [Select] \n\
 osfActivate :  [KP]_Enter \n\
 osfCopy :Shift  [DRemove] \n\
 osfCut  :  [DRemove] \n\
 osfPaste :  [Insert]

To merge:


$ xrdb :== $decw$utils:xrdb.exe 
$ xrdb -nocpp -merge decw$xdefaults.dat 

Also note that the DECW$UTILS:DECW$DEFINE_UTILS.COM procedure can be used to establish the xrdb and other symbols.

Also see the DECxterm directory of Freeware V5.0 for details on connecting to OpenVMS from various UNIX platforms.

For other keymapping information, see Section 11.7.1.

11.8 Why doesn't XtAppAddInput() work on OpenVMS?

Yes, XtAppAddInput() does work on OpenVMS. The MIT definition of the X Windows call XtAppAddInput() includes platform-specific arguments.

On platforms where C is the typically the primary programming language for the platform, the file descriptor mask is one of the arguments to the XtAppAddInput() call.

On OpenVMS, the platform-specific arguments to this call include an event flag and an IOSB, as these are the traditional OpenVMS constructs used to synchronize the completion of asynchronous operations. While it would be easier to port non-OpenVMS C code that calls XtAppAddInput() over to OpenVMS if the arguments included the C file descriptor, this would make the call unusable from other OpenVMS languages, and would make it extremely difficult to use OpenVMS features such as ASTs and sys$qio calls.

One restriction on the event flag: the event flag chosen must be from event flag cluster zero. When using the traditional lib$get_ef and lib$free_ef calls to allocate and deallocate event flags, you must first explicitly call lib$free_ef to free up some event flags in event flag cluster zero. Please see the event flag documentation for specific details on these calls and for specific event flags that can be freed in event flag cluster zero.

Here is some example code that covers calling this routine on OpenVMS:


    m->InputID = XtAppAddInput( 
        m->AppCtx, 
        m->InputEF, 
        m->InputIosb, 
        the_callback, 1 ); 
    if ( !((int) m->InputID )) 
        { 
        XtAppErrorMsg( 
            m->AppCtx, 
            "invalidDevice", 
            "XtAppAddInput", 
            "XtToolkitError", 
            "Can't Access Device", 
            (String *) NULL, 
            (Cardinal *) NULL ); 
        ... 

11.9 Why do the keyboard arrow keys move the DECwindows cursor?

Congratulations, you have just stumbled into "dead rodent" mode. This DECwindows environment---where the keyboard arrow keys move the mouse cursor and where the [SELECT], [PREV], and [NEXT] keys emulate the three mouse buttons---allows rudimentary system operations when the mouse is among the casualties.

To enter or exit "dead rodent" mode, enter the following: [CTRL/SHIFT/F3]

11.10 Why does half my DECwindows display blank?

This is likely a result of receiving an OPCOM or other console message on a system that shares the system console with the DECwindows graphics workstation display.

You can toggle off the console display window using [CTRL/F2] and you can enable a serial console per Section 14.3.6 or Section 14.3.3.3.

Also see the console message window application available with recent DECwindows versions---DECwindows versions V1.2-3 and later will enable this window by default. For details on this console message window, see the DECW$CONSOLE_SELECTION option in SYS$STARTUP:DECW$PRIVATE_APPS_SETUP.TEMPLATE.

On older releases, you can disable output using the following:


$ SET TERMINAL/PERMANENT/NOBROADCAST OPA0: 
$ DEFINE/USER SYS$COMMAND OPA0: 
$ REPLY/DISABLE 

Also see Section 14.3.3.2, Section 14.19, and Also see Section 8.3,

11.11 %DECW-W-NODEVICE, No graphics device found on this system?

To resolve the following error:


%DECW-W-NODEVICE, No graphics device found on this system 
-DECW-I-NODECW, DECwindows graphics drivers will not be loaded 

Also see Section 11.5.

11.12 How can I reset the warning bell volume?

With DECwindows CDE drivers and ECOs starting with ECOs for the DECwindows keyboard driver SYS$IKBDRIVER.EXE in OpenVMS Alpha V7.1-2 and V7.2-1 and with the SYS$IKBDRIVER.EXE included in OpenVMS V7.2-1H1 and later, the DECwindows CDE controls will now correctly manage the setting of the warning bell volume.

Unfortunately, the equivalent controls in the older DECwindows Motif interface are not compatible and can no longer manage the warning bell volume.

If you need to manage the volume with DECwindows Motif, consider using the following approach:


$ @decw$utils:decw$define_utils 
$ xset b 1 100 100 

The numerics are the volume, pitch, and duration, respectively.

Why? When OpenVMS first started supporting the PC-style keyboards, the X Windows Server and the keyboard driver interface did not support the pitch and duration, and neither did DECwindows Motif. The DECwindows keyboard driver was accordingly changed to use the volume from the keyclick setting (keyclick is not available in a PC-style keyboard) and the bell volume setting to control the pitch and duration.

DECwindows CDE does provide sliders for setting pitch and duration, so the keyboard driver and X Windows Server were modified to provide all of the information, and now the DECwindows CDE sliders work. This change is unfortunately incompatible with the old scheme used on the pre-CDE desktops, and the volume controls are now incompatible with the current keyboard drivers. Hence the use of xset.

11.13 How can I alter the DECwindows CDE backdrop?

To select a separate backdrop to be displayed on each screen using DECwindows CDE:

11.14 How can I enable the DECwindows TCP/IP Transport

To configure the TCP/IP transport for DECwindows, first ensure that a TCP/IP package is installed and configured. Then set the DCL symbol DECW$SERVER_TRANSPORTS in SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.COM to the appropriate local value, based on the comments in that file. If you do not have a copy of SYS$STARTUP:DECW$PRIVATE_SERVER_SETUP.COM, the use the following COPY command to create this file based on the provided template file:


$ COPY SYS$MANAGER:DECW$PRIVATE_SERVER_SETUP.TEMPLATE - 
$_ SYS$COMMON:[SYSMGR]DECW$PRIVATE_SERVER_SETUP.COM 

11.15 Can I use DECwindows 1.2-* on OpenVMS V7.3-2 or later?

The short answer is no.

OpenVMS Alpha V7.3-2 only supports DECwindows Motif V1.3 and later. If you require DECwindows V1.2-6 or earlier, then you are limited to operations on OpenVMS Alpha V7.3-1 and earlier releases.

The central technical reason involves depdendencies among the parts of the X11 subsystem that are delivered with the base OpenVMS operating system including the X Windows display server and the transport images, and the parts of the DECwindows product that are delivered within the DECwindows installation kits including the client libraries and the DECwindows applications.

DECwindows V1.3 and later made substantial changes to the transport layer, and these required corresponding changes to both the associated client and server code. OpenVMS Alpha V7.3-2 includes the server and transport with the V1.3 modifications. These changes were in support of the upgrade of Xlib from X11R5 to X11R6.6, and transport-level changes associated with support of the Kerberos and LBX features.

If you attempt to load DECwindows V1.2-6 images onto an OpenVMS Alpha V7.3-2 or later system, the DECwindows libraries will not function with with system images and will particularly not function with the transport layer.

11.16 How to add Fonts into DECwindows?

The following assumes DECwindows V1.3-1 and OpenVMS Alpha V7.3-2 and later unless stated otherwise, and can permit fonts of various formats to be added into the DECwindows environment.

The recommended location for user font files is to place them in the directories which are reserved for this purpose, typically located below the SYS$COMMON:[SYSFONT.DECW] directory.


SYS$COMMON:[SYSFONT.DECW.USER_100DPI] 
SYS$COMMON:[SYSFONT.DECW.USER_75DPI] 

The above are recommended for PCF files of 100 Dots Per Inch (DPI) and of 75 DPI resolution, respectively.


SYS$COMMON:[SYSFONT.DECW.USER_COMMON] 

The above is recommended for other PCF files, such as terminal (character cell) fonts, and fonts used by specific applications.


SYS$COMMON:[SYSFONT.DECW.USER_CURSOR16] 
SYS$COMMON:[SYSFONT.DECW.USER_CURSOR32] 

The above are recommended for cursors.


SYS$COMMON:[SYSFONT.DECW.USER_SPEEDO] 

SPEEDO is recommended for SPD files.


SYS$COMMON:[SYSFONT.DECW.USER_TRUETYPE] 
USER_TRUETYPE is recommended for TrueType (TTF) fonts. Fonts placed in this directory should be in the "Windows / Linux" format.

The directory will contain the font files themselves, and a data file that describes each font in the directory. This file is named DECW$FONT_DIRECTORY.DAT or DECW$FONT_DIRECTORY_extension.DAT, where "extension" is replaced by the type of font (100DPI, SPEEDO, TRUETYPE, TYPE1, etc.)

Make sure that the file protection on the font files is set to allow world access to the fonts.

For example: to add TrueType fonts to DECwindows, place the font files in SYS$COMMON:[SYSFONT.DECW.USER_TRUETYPE]

A directory listing might look like this:


Directory SYS$COMMON:[SYSFONT.DECW.USER_TRUETYPE] 
 
 
ARKOI8N.TTF;1                            46KB/48KB        5-MAR-1995 04:00:00.00 
backstage.ttf;1                          55KB/56KB       19-JUL-2004 09:42:20.92 
IDAutomationHC39M_Free.ttf;1             27KB/32KB       29-JUL-2003 11:25:48.00 
... 
texsi.ttf;1                             133KB/136KB      25-MAY-2003 15:31:11.00 
texw.ttf;1                              150KB/152KB      25-MAY-2003 15:32:33.00 
 
Total of 37 files, 3.09MB/3.23MB 

The case of the filename is not important.

TrueType fonts should be in Stream_LF file format.

To generate the appropriate DECW$FONT_DIRECTORY.DAT file for most font formats, issue the command:


$ FONTCOMPILER /DIRECTORY 

The above may or may not operate with TrueType files, and you will likely have to generate the DECW$FONT_DIRECTORY_TRUETYPE.DAT file manually. A sample file follows:


37 
BACKSTAGE.ttf -Grfonts-Backstage-bold-r-normal--0-0-0-0-p-0-iso8859-1 
IDAutomationHC39M_Free.ttf -IDAutomation-HC39M-medium-r-normal--0-0-0-0-m-0-misc-Barcode39 
SUSESerif-Bold.ttf -Suse-Suse-bold-r-normal--0-0-0-0-p-0-iso8859-1 
SUSESerif-Roman.ttf -Suse-Suse-medium-r-normal--0-0-0-0-p-0-iso8859-1 
SUSESans-Bold.ttf -Suse-Suse-bold-r-normal-sans-0-0-0-0-p-0-iso8859-1 
SUSESans-BoldOblique.ttf -Suse-Suse-bold-o-normal-sans-0-0-0-0-p-0-iso8859-1 
SUSESans-Oblique.ttf -Suse-Suse-medium-o-normal-sans-0-0-0-0-p-0-iso8859-1 
SUSESans-Roman.ttf -Suse-Suse-medium-r-normal-sans-0-0-0-0-p-0-iso8859-1 
SUSESansMono-Bold.ttf -Suse-Suse Mono-bold-r-normal-sans-0-0-0-0-m-0-iso8859-1 
... 
MCTIMEBI.TTF -UOregon-MAC C Times-bold-i-normal--0-0-0-0-p-0-macedonian-0 
MCTIMEI.TTF -UOregon-MAC C Times-medium-i-normal--0-0-0-0-p-0-macedonian-0 

The first line of this data file is the number of font file entries which follow. Each entry consists of the font file name, and a font description. There are fourteen fields in the description, separated by hyphens (dashes, "-"). Fields may contain embedded spaces. The fields are

The next step is to update the list of fonts 'known' to DECwindows, using the xset utility.


$ mc decw$utils:xset fp rehash 

It is also possible to reset the font list to the default:


$ mc decw$utils:xset fp default 

This is useful if you need to recover from errors.

The Notepad utility, normally available through the "Applications" menu in Session Manager, is a convenient way to see if the font is available. Start the application, select "Options", then select "Font...". In the "Family (Foundry)" window, you will see the list of fonts available. User-added TrueType fonts will normally be at the end of this list. Select the desired font family, then select the Size (dpi) (which will always be 0(0) for TrueType fonts), and the various font options (Weight, Slant, Width, etc.) should appear in the next window. You should then be able to select the desired font and click "OK" or "Apply" to use it, or "Cancel" to exit without changing the font.

If you don't see all of the fonts you added, check to see that the number at the beginning of the DECW$FONT_DIRECTORY*.DAT file is correct, that the files are set to world (or appropriate) access, and that TrueType fonts are in Stream_LF format.

Some applications require entering a full font name, which will look like the font description entry.

Please keep in mind that not all applications can use every font which may be available on your system. For example, DECterm is designed to use families of fonts specifically designed for character cell applications. Other fonts (specifically TrueType) may work erratically, and may result in an unusable display. It is best to use only monospaced fonts specifically intended for DECterm with DECterm.

The SYS$COMMON:[SYSFONT.DECW.USER_TRUETYPE] doesn't exist on OpenVMS VAX V7.3 with DECwindows V1.2-6, but the procedure above does appear to work if the directory is created and the instructions above are followed.


Previous Next Contents Index