<?xml version="1.0"?>
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 0.6.7//EN" "/usr/GNUstep/System/Libraries/Resources/DTDs/gsdoc-0_6_6.dtd" >
<gsdoc base="DefaultsSummary">
  <head>
    <title>User Defaults Summary for GNUstep Libraries</title>
    <author name="Adam Fedor">
      <email address="fedor@gnu.org"/>
      <url url="http://www.gnustep.org/developers/whoiswho.html"/>
    </author>
    <author name="Nicola Pero">
      <email address="n.pero@mi.flashnet.it"/>
      <url url="http://www.gnustep.org/developers/whoiswho.html"/>
    </author>
    <version>$Revision$</version>
    <date>$Date$</date>
  </head>
  <body>
    <chapter>
      <heading>Defaults Summary</heading>
      <p>
        This document contains a summary of available user default
        values that one can set to control the operation of the GNUstep
        libraries.
      </p>
      <section>
        <heading>GUI Library Defaults</heading>
      <p>
      Below is a list of defaults used to control the gnustep-gui library.
      </p>
      <deflist>
	  <term>GSBackend</term>
	  <desc>
          <p>
          A string containing the name of the backend bundle to use
          for display specific GUI handling. The default is
          "libgnustep-back". Custom backends can be created during compilation
	  of the libraries. Any other choice for a name is thus system
	  specific.
          </p>
	  </desc>
	  <term>GSBrowserCellFontify</term>
	  <desc>
          <p>
          A boolean value, <code>NO</code> by default.  When the feature is on,
          NSBrowserCell draws non-leaf cells in bold system font.
          For example, when the feature is on, in a SavePanel (or OpenPanel),
          directory entries are drawn in bold, while simple files are drawn in
          non bold.
          </p>
	  </desc>
	  <term>GSAbortKey</term>
	  <desc>
          <p>
	  The key used to abort the insertion of multi-stroke keybinding.
	  Default is <code>Control-g</code>.
	  </p>
	  </desc>
	  <term>GSQuoteKey</term>
	  <desc>
          <p>
	  The key used to quote the next keystroke (so that it is not
	  interpreted as a keybinding, but just inserted into the text as
	  it is).  Default is <code>Control-q</code>.
	  </p>
	  </desc>
	  <term>GSFileBrowserHideDotFiles</term>
	  <desc>
          <p>
	  A boolean, by default NO.  If you set it to YES, files that
	  begin with a dot ('.') are not shown in the NSSavePanel or
	  NSOpenPanel.
	  </p>
	  </desc>
	  <term>GSInsertControlKeystrokes</term>
	  <desc>
          <p>
	  A boolean, by default NO.  If you set it to YES, keystrokes
	  containing a Control are inserted into the text when they can't
	  be interpreted as keybindings.  By default, they are ignored
	  and cause the computer to beep.
	  </p>
	  </desc>
	  <term>GSKeyBindingsFiles</term>
	  <desc>
          <p>
          An array of strings, <code>(DefaultKeyBindings)</code> by
          default.  The strings in this array (with <code>.dict</code>
          appended) are the names of the files the library reads to
          load the keybindings.  For each of these files (in the order), 
          the library first tries to read the file with that name from
          the
          <code>$GNUSTEP_SYSTEM_ROOT/Libraries/Resources/KeyBindings/</code>
          directory, loading all the keybindings it finds in the file,
          then it loads the similar file from
          <code>$GNUSTEP_LOCAL_ROOT</code> and then the similar one
          from <code>$GNUSTEP_NETWORK_ROOT</code> and at last the one
          from <code>$GNUSTEP_USER_ROOT</code>.  If you have a single
	  set of customized keybindings which you want to be loaded in
          addition to the default ones (or overriding some of the default
	  ones), just add a <code>DefaultKeybindings.dict</code> file
	  in your <code>~/GNUstep/Libraries/Resources/KeyBindings/</code>
          directory, and keybindings from this file are automatically
          loaded in addition to the default ones; you do not need to
          change this user default.  If instead you want more keybinding
          files to be loaded, or you do not want the system default keybindings
          file to be loaded, you might well need to change it.
          </p>
	  </desc>
	  <term>GSKeyBindings</term>
	  <desc>
          <p>
	  A dictionary, containing keybindings which are loaded by the
          library after the ones found in the <code>GSKeyBindingsFiles</code>.
          Might be useful if you have only a couple of keybindings, and
          don't want to write a custom keybindings file.  If you have many
          keybindings, it is recommended that you keep them in a file.
          The syntax of keybindings entries and files is documented elsewhere.
          </p>
	  </desc>
	  <term>GSSavePanelShowProgress</term>
	  <desc>
          <p>
          A boolean value, <code>NO</code> by default.  When the
          feature is on, the save panel and its subclasses (such as
          the open panel) displays "Reading Directory ***.."
          (progressively adding dots) in the window titlebar while
          reading very big directories (more than 100 entries).  This
          is meant to make things friendlier for slow computers.
          </p>
	  </desc>
	  <term>GSLogWorkspaceTimeout</term>
	  <desc>
          <p>
          A boolean value that defaults to <code>NO</code>. This is a
          obscure and probably not useful default. NSWorkspace tries
          to receive distributed notifications, but if a distributed
          objects server cannot be found or some other error occurs,
          it raises an exception which normally terminates the
          program. Setting this default causes NSWorkspace to just log
          the problem without raising an exception.
          </p>
	  </desc>
	  <term>GSWorkspaceApplication</term>
	  <desc>
          <p>
          A string value that defaults to <code>"GWorkspace"</code>.
          This defines the application NSWorkspace will try to
          connect to process some operations that require an external
          application. This is a new feature and has not been tested. 
          </p>
	  </desc>
	  <term>NSInterfaceStyleDefault</term>
	  <desc>
          <p>
          A string describing the interface style. Setting this may
          change various aspects of how the library draws elements and
          responds to user interaction. See the NSInterfaceStyle
          documentation for more information.
          </p>
	  </desc>
	  <term>NSMenuInterfaceStyle</term>
	  <desc>
          <p>
          An interface style specific to menu operation. If not set
          the NSInterfaceStyleDefault value is used. 
          </p>
	  </desc>
	  <term>NSCommandKeys</term>
	  <desc>
          <p>
          A dictionary of command key equivalents for menu items. The
          key contains the title of the menu item and the value is the
          command key equivalent. For instance, one might set the
          command key for the menu item "Copy" to "C".
          </p>
	  </desc>
	  <term>NSHost</term>
	  <desc>
          <p>
          Used by NSPasteboard to find the host on which the
          pasteboard server is running.
          </p>
	  </desc>
	  <term>NSMeasurementUnit</term>
	  <desc>
          <p>
          A string describing the measurement unit for rulers (see the
          NSRulerView class documentation). The default is
          Centimeters. Other possible values are Inches, Points, and Picas.
          </p>
	  </desc>
	  <term>NSPreviewApp</term>
	  <desc>
          <p>
          A string value that defaults to <code>"gv"</code>.
          This defines the application NSPrintOperation will try to
          connect to preview PostScript files, unless there is already
	  an application registed as a Viewer of ps files.
          </p>
	  </desc>
	  <term><em>System Colors</em></term>
	  <desc>
          <p>
          System colors are standard colors for drawing various GUI elements,
          such as buttons, text, scroller, etc. They can be set using
	  the normal user defaults system. An NSColorList called
	  "System"  is stored in the users's private color list
	  directory. This color list can also be manipulated through the
	  NSColorList class (typically through a preferences module).
          </p>
	  </desc>
	  <term><em>System Fonts</em></term>
	  <desc>
          <p>
          System Fonts may be set using the defaults system. System
          fonts are standard fonts for drawing text in GUI
          elements. They include NSBoldFont, for instance. The value
          is the name of the font to use. There is also a
          cooresponding size key (e.g. NSBoldFontSize) for specifying
          the point size of the font. The keys that can be used for
          setting the system fonts are described in the documentation
          for NSFont.
          </p>
	  </desc>
	</deflist>

      </section>
      <section>
        <heading>Backend Defaults</heading>
      <p>
      Below is a list of defaults used to control the x11-based
      backend. These defaults generally control system specific
      display and user interaction options which may not be available
      on all systems.
      </p>
	<deflist>
	  <term>NSDefaultVisual</term>
	  <desc>
          <p>
          An integer that specifies the X-Windows visual class to use
          in the application. For instance one could display the
          application using the PsuedoColor visual class by setting
          the value to the id of this class. The default is the
          X-Windows default visual class.
          </p>
	  </desc>
	  <term>NSColorsPerChannel</term>
	  <desc>
          <p>
          An integer which limits the maximum number of colors to
          display, per channel. For a psuedo-color display, this would
          limit the total number of colors that the application could
          use (normally 256). For a true-color display, this would
          limit the range of red, green, and blue values that could be used.
          </p>
	  </desc>
	  <term>GSAppOwnsMiniwindow</term>
	  <desc>
          <p>
          A boolean value which defaults to <code>YES</code>. Some window
          managers control the miniaturized versions of windows themselves.
          Set this default to <code>NO</code> to let the window manager
          have it's way, otherwise, GNUstep will create a miniwindow.
          </p>
	  </desc>
	  <term>GSFontAntiAlias</term>
	  <desc>
          <p>
          A boolean value which defaults to <code>NO</code>. If set to
          <code>YES</code> and the X-Windows system has the XFT
          extension, then the application will use anti-aliased fonts
          as provided by the X-Windows system.
          </p>
	  </desc>
	  <term>GSFontMask</term>
	  <desc>
          <p>
          A string value which defaults to <code>"*"</code>. It defines
          the pattern used to get the installed fonts from the
          X-Server. A value of <code>"*-iso8859-1"</code> would only
          include fonts available with ISO Western encoding. This
          feature might be helpfull if the font_cacher program is having
          problem with the X-Server.
          </p>
	  </desc>
	  <term>GraphicCompositing</term>
	  <desc>
          <p>
          A boolean value which defaults to <code>YES</code>. If set to
          <code>YES</code>, then the application uses various tricks
          to get alpha colors to work when compositing images. This
          may slow down drawing of images, but it is generally
          recommended anyway, particularly on fast systems.
          </p>
	  </desc>
	  <term>Keyboard Modifiers</term>
	  <desc>
          <p>
          The OPENstep specification requires 3 main different
          keyboard modifiers: <code>CONTROL</code>,
          <code>COMMAND</code> and <code>ALTERNATE</code>. Some systems
          may not have these set up correctly. You can changed the defaults
          with the default keys.
          </p>
           <list>
	      <item>GSFirstControlKey</item>
	      <item>GSSecondControlKey</item>
	      <item>GSFirstCommandKey</item>
	      <item>GSSecondCommandKey</item>
	      <item>GSFirstAlternateKey</item>
	      <item>GSSecondAlternateKey</item>
	    </list>
          <p>
          Default values are respectively:
          </p>
           <list>
	      <item>Control_L</item>
	      <item>Control_R</item>
	      <item>Alt_L</item>
	      <item>NoSymbol</item>
	      <item>Alt_R</item>
	      <item>NoSymbol</item>
	    </list>
          <p>
          This is described more completely in the GUI documentation.
          </p>
	  </desc>
	  <term>UseWindowMakerIcons</term>
	  <desc>
          <p>
          A boolean value which defaults to <code>YES</code>. If set to
          <code>YES</code> then icon windows are controlled by the
          window manager, otherwise they are controlled by the GNUstep
          application.
          </p>
	  </desc>
	  <term>XGPS-Shm</term>
	  <desc>
          <p>
          A boolean value which defaults to <code>YES</code> (as long as shared
          memory is available). If set to <code>NO</code>, shared memory is not
          used for various display specific operations.
          </p>
	  </desc>
	</deflist>
      </section>
    </chapter>
  </body>
</gsdoc>


