HP 24-bit display: changing default visual to 8 bit



When trying to display Island 5.x products on an HP 24-bit display, you may get some X Errors complaining about "too many colors".

How can one make the X server come up in 8-bit mode when on a 24-bit display. 


The following are some steps to set the defaults so that it will work via HPUX's SAM utility.  


The following document orginated from HP support.

                Default Visual Placement on CRX24/CRX24Z

The placement of the default visual is accomplished through the proper
setup of the /usr/lib/X11/X*screens file and the exporting of an
environment variable.  The default visual on the CRX24/CRX24Z can live
in any of the supported visuals.  The following table will show the
necessary settings for the X*screens file and the
CRX24_FULL_DEFAULT_VISUAL environment variable to enable the desired
default visual.

   Desired Default Visual    ||                             Environment
Depth |   Class   | Location ||     X*screen entry     | Variable Setting
  8   |PseudoColor| Overlays || /dev/"device"          | not used
  8   |PseudoColor|  Image   || /dev/"device" depth 8  | not used
 12   | TrueColor |  Image   || /dev/"device" depth 12 | ="anything"
 12   |DirectColor|  Image   || /dev/"device" depth 12 | =DIRECT_COLOR
 24   | TrueColor |  Image   || /dev/"device" depth 24 | ="anything"
 24   |DirectColor|  Image   || /dev/"device" depth 24 | =DIRECT_COLOR
As an example, to specify the default visual to live in the depth 24
TrueColor visual, the X*screens file should have the "depth 24" keywords
and the environment variable should be exported as:


Notice that when no "depth" keywords are specified in the screens file,
the default visual will live in the overlay planes.  Hopefully, this is
where most applications will want the default visual.  Also, notice that
two new visuals have been added with this new functionality.  The
TrueColor visuals in the depth 12 and depth 24 image planes were added
for completeness.

The CRX24_FULL_DEFAULT_VISUAL environment variable must be set prior to
the start up of the X server as shown above.  If VUE is to be used, put
the following in the /usr/vue/config/Xconfig file to properly export the
environment variable into the VUE environment:


The above table is valid only for the HP's IF2 patched X server (8.05
and 8.07) and HP's IF3 patched X server (9.0 and 9.1).  The default
visual functionality is not currently documented and is therefore
not well known.

This table is also used for the CRX48Z device, except for the
depth 12 visuals, since the CRX48Z doesn't support these.
Although the environment variable seems to be specific to the
CRX24/CRX24Z (since CRX24 appears in it), it must be used by the
CRX48Z to enable this functionality.

It is planned that this new functionality will be supported in future X
servers (10.0 and beyond).  Therefore, the keywords in the X*screens
file that enable this functionality will most likely change for the next
server release (for various usability reasons), and the exporting of the
CRX24_FULL_DEFAULT_VISUAL environment variable will no longer be needed.
The functionality on the new usage will be fully documented.

It should be mentioned that the UI (window manager and all of its key
clients) currently lives in the same visual where the default visual
lives.  Therefore, when the default visual is moved to a visual other
than that in the overlays (into the image planes), the UI will most
likely interfere with the windows running performance critical, graphics
intensive applications.  It is hoped that by the next release, the UI be
fixed to live in the overlay planes, and not where the default visual
exists.  But, this also means that future applications should be written
to make all UI and transient windows (popup menu's, dialogs, etc.)  live
in the overlay planes.