[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Monochrome XFIG



"Pedro Sanchez" <psanchez@nortelnetworks.com> writes:
>Riku Saikkonen wrote:
>> You could try running XFig with "xfig -xrm '*customization: -color'",
>> just in case that helps. If it does, there is some sort of problem in
>> your X startup scripts - either /etc/X11/Xresources/xfree86-common is
>> not loaded, the X server does not define COLOR for some reason, or
>> there is another *customization resource set somewhere.
>Yes, running xfig like this brings back the colors!
...
>So, who is supposed to load /etc/X11/Xresources/xfree86-common? and,
>how come the X server does not define COLOR? Shall I reinstall X from
>scratch? 

/etc/X11/Xsession is the generic X startup script, whose job it is to
establish such things as resources (including ~/.Xresources), loading
a possible ~/.Xmodmap, etc. The following code in it does the loading
of /etc/X11/Xresources/*:

if [ -d $sysresources ]; then
  xrdb -load /dev/null # work around wdm brain damage
  if [ "$(echo $sysresources/*)" != "$sysresources/*" ]; then
    for resourcefile in $(ls $sysresources/* 2> /dev/null | egrep '^[-/_[:alnum:
]]*$'); do
      xrdb -merge $resourcefile
    done
  fi
fi

Hmm, I just thought of something. The process of upgrading X11
sometimes asks you whether to replace /etc/X11/Xsession with the new
version or not; if you have an old version of this file, it might not
know that /etc/X11/Xresources/ is a directory (this was changed
relatively recently). If you don't have the above code in your
/etc/X11/Xsession (especially the "$(ls $sysresources/*" part), you
should get the new version of the file. The easiest way is probably to
reinstall the xfree86-common package and answer "y" if it asks whether
to replace that file.

To see whether the X system defines COLOR, try running "xrdb -merge
/etc/X11/Xresources/xfree86-common" manually before you run XFig and
see if you get the colors. If you do, the X system (more specifically,
the xrdb program) does define COLOR, which is correct. (The above
command is what /etc/X11/Xsession should execute, among other things.)

It might also be that the Xsession file isn't being run for some
reason. A ~/.xinitrc in your home directory is probably the most
common problem. Otherwise, if you use xdm, you could try reinstalling
it; I haven't used it in a long time, but I hear there have been some
problems with it some time ago.


Some details on how startx works, in case you're interested: (xdm is
similar, but I don't know its details)

The "startx" command starts /usr/X11R6/bin/startx, which is a shell
script. This starts the xinit program, giving it some standard
arguments, including the file name /usr/X11R6/lib/X11/xinit/xinitrc (=
/etc/X11/xinit/xinitrc). This file (also a shell script) is what xinit
runs to initialise the X session. xinitrc should simply execute
/etc/X11/Xsession, which does the rest (including loading your
~/.Xsession and starting a window manager).

There's also a /etc/X11/xinit/xserverrc, which is used to start the X
server itself. You can use it to give additional options to the X
server, if you want to; for example, if you don't want it to listen on
TCP port 6000 (which is not necessary if you don't use X applications
remotely or if you forward remote X connections via ssh), put the
following line in /etc/X11/xinit/xserverrc:
exec X -nolisten tcp "$@"

-- 
-=- Rjs -=- rjs@lloke.dna.fi


Reply to: