# User Defaults Summary for GNUstep Libraries

### Authors

Adam Fedor (`fedor@gnu.org`)
Nicola Pero (`n.pero@mi.flashnet.it`)

Version: $Revision: 23330 $

Date: $Date: 2006-08-25 12:06:09 -0400 (Fri, 25 Aug 2006) $

Copyright: (C) 2005 Free Software Foundation, Inc.

# Defaults Summary

This document contains a summary of available user default values that one can set to control the operation of the GNUstep libraries. To set a default, use the `defaults write (domain) (key) (value)` command in a terminal, with the `NSGlobalDomain` as first argument. E.g.,

              defaults write NSGlobalDomain GSBackend libgnustep-art

To read out the value set for the default, use `defaults read (domain) [(key)]`. If you do not specify the key, every key-value pair in the domain will be printed.

Other domains besides the system level domain "`NSGlobalDomain`" include the application domains, named for each application that has registered defaults, and the temporary runtime "`NSArgumentDomain`" for command line arguments. At runtime there is also a "`NSRegistrationDomain`", a second-chance domain in which "defaults for defaults" can be registered, and possibly also domains for specific locales.

## GUI Library Defaults

Below is a list of defaults used to control the gnustep-gui library. You can set them either in `NSGlobalDomain`, to be used everywhere, or in individual application domains, to be used for those apps only.

GSBackend

  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.

GSBrowserCellFontify

  A boolean value, `NO` 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.

GSAbortKey

  The key used to abort the insertion of multi-stroke keybinding. Default is `Control-g`.

GSAppKitUserBundles

  An array listing the names of bundles that will be automatically loaded into every application at startup. Typically these will be 'theme' bundles that control the look of the application.

GSQuoteKey

  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 `Control-q`.

GSFileBrowserHideDotFiles

  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.

GSInsertControlKeystrokes

  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.

GSKeyBindingsFiles

  An array of strings, `(DefaultKeyBindings)` by default. The strings in this array (with `.dict` 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 `$GNUSTEP_SYSTEM_ROOT/Libraries/Resources/KeyBindings/` directory, loading all the keybindings it finds in the file, then it loads the similar file from `$GNUSTEP_LOCAL_ROOT` and then the similar one from `$GNUSTEP_NETWORK_ROOT` and at last the one from `$GNUSTEP_USER_ROOT`. 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 `DefaultKeybindings.dict` file in your `~/GNUstep/Libraries/Resources/KeyBindings/` 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.

GSKeyBindings

  A dictionary, containing keybindings which are loaded by the library after the ones found in the `GSKeyBindingsFiles`. 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.

GSLPRPrinters

  Specifies a dictionary containing printer information for the GSLPR printer bundle. See the bundle source for details.

GSSavePanelShowProgress

  A boolean value, `NO` 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.

GSUseFreedesktopThumbnails

  A boolean value, `NO` by default. When the feature is on, thumbnail files according to the Freedesktop specification are used in [NSWorkspace iconForFile:] when available.

GSLogWorkspaceTimeout

  A boolean value that defaults to `NO`. 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.

GSWorkspaceApplication

  A string value that defaults to `"GWorkspace"`. 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.

GSSuppressAppIcon

  A boolean value, `NO` by default. Specifies wether the application icon window should not be displayed. Set to `YES` for background server applications.

NSInterfaceStyleDefault

  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.

NSMenuInterfaceStyle

  An interface style specific to menu operation. If not set the NSInterfaceStyleDefault value is used.
  Setting this to NSMacintoshInterfaceStyle produces a horizontal menu at the top of the screen.
  Setting it to NSNextStepInterfaceStyle reverts to the defaults vertical menu layout.

NSCommandKeys

  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".

NSHost

  Used by NSPasteboard to find the host on which the pasteboard server is running.

NSMeasurementUnit

  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.

NSPreviewApp

  A string value that defaults to `"gv"`. 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.

NSShowNonLocalizedStrings

  This is mainly a developer option. If "YES", the application will display localization keys instead of strings in its UI. This can be useful during development to see where a given string in the UI is "coming from". Default is "NO".

NSUseRunningCopy

  This determines the behavior of an applicationms when a second copy is started up.
  If set to YES the newly started copy makes the process which is already running active, then terminates itsself.
  If set to NO, the newly started copy runs, but has a different name (so it cannot be contacted to provide services for other applications).

System Colors

  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).

  Individual system colors may be set by specifying the name of the system color and giving it a value consisting of aan RGB color specification (three floating point numbers in the range 0.0 to 1.0 and separated by spaces).
  eg.
  'defaults write NSGlobalDomain controlBackgroundColor "1.0 0.0 0.0"'

System Fonts

  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.