### 17.4 Files

`$HOME/.gps`
  GPS state directory. Defaults to C:\.gps under Windows systems if HOME or USERPROFILE environment variables are not defined.
`$HOME/.gps/log`
  Log file created automatically by GPS. When GPS is running, it will create a file named `log.<pid>`, where `<pid>` is the GPS process id, so that multiple GPS sessions do not clobber each other's log. In case of a successful session, this file is renamed `log` when exiting; in case of an unexpected exit (a bug box will be displayed), the log file is kept under its original name.

  Note that the name of the log file is configured by the `traces.cfg` file.

`$HOME/.gps/aliases`
  File containing the user-defined aliases (see Defining text aliases).
`$HOME/.gps/plug-ins`
  Directory containing files with user-defined plug-ins. All xml and python files found under this directory are loaded by GPS during start up. You can create/edit these files to add your own menu/tool-bar entries in GPS, or define support for new languages. see Customizing through XML and Python files and see Adding support for new languages.
`$HOME/.gps/keys.xml`
  Contains all the key bindings for the actions defined in GPS or in the custom files. This only contains the key bindings overridden through the key shortcuts editor (see The Key Manager Dialog).
`$HOME/.gps/gtkrc`
  Configuration and theme file for gtkrc. This file can be edited to activate gtk+ specific aspects, or change the look of GPS in some measure. Mostly, everything can be done through the standard GPS preferences, but this file can be used to get access to the old GPS preference "Dynamic Key Binding". This preference activated a gtk+ behavior were key shortcuts for menu can be changed by simply pressing the appropriate key combination when the mouse is over that menu. It has various dangereous aspects and is not fully supported by GPS, so was removed as a preference, but you can add the following line in `gtkrc` to get this back:

                gtk-can-change-accels=1

`$HOME/.gps/actions.xml`
  Contains the definition of all the actions that were defined through the graphical interface. This is loaded last, and overrides all actions defined elsewhere.
`$HOME/.gps/perspectives.xml`
  Desktop file in XML format (using the menu `File->Save More->Desktop`), loaded automatically if found.
`$HOME/.gps/locations.xml`
  This file contains the list of locations that GPS has previously edited. It corresponds to the history navigation (`Navigate->Back` and `Navigate->Forward`)
`$HOME/.gps/properties.xml`
  This file is used to store file-specific properties across GPS sessions. In particular, it contains the encoding to use for various files when the default encoding isn't appropriate.
`$HOME/.gps/histories.xml`
  Contains the state and history of combo boxes (e.g. the `Run->Custom...` dialog).
`$HOME/.gps/targets.xml`
  Contains the build targets defined by the user.
`$HOME/.gps/preferences`
  Contains all the preferences in XML format, as specified in the preferences menu.
`$HOME/.gps/traces.cfg`
  Default configuration for the system traces. These traces are used to analyze problems with GPS. By default, they are sent to the file `$HOME/.gps/log.<pid>`.

  This file is created automatically when the `$HOME/.gps/` directory is created. If you remove it manually, it won't be recreated the next time you start GPS.

`$HOME/.gps/startup.xml`
  This file contains the list of scripts to load at startup, as well as additional code that need to be executed to setup the script.
`$HOME/.gpe/activity_log.tmplt`
  Template file used to generate activities' group commit-log and patch file's header. If not present the system wide template (see below) is used. The set of configurable tags are described into this template.
`prefix`
  The prefix directory where GPS is installed, e.g `/opt/gps`.
`prefix/bin`
  The directory containing the GPS executables.
`prefix/etc/gps`
  The directory containing global configuration files for GPS.
`prefix/lib`
  This directory contains the shared libraries used by GPS.
`prefix/share/doc/gps/html`
  GPS will look for all the documentation files under this directory.
`prefix/share/examples/gps`
  This directory contains source code examples.
`prefix/share/examples/gps/language`
  This directory contains sources showing how to provide a shared library to dynamically define a new language. See Adding support for new languages.
`prefix/share/examples/gps/tutorial`
  This directory contains the sources used by the GPS tutorial. See gps-tutorial.html.
`prefix/share/gps/plug-ins`
  Directory containing files with system-wide plug-ins (xml and python files) loaded automatically at start-up.
`prefix/share/gps/library`
  Directory containing files with system-wide plug-ins (xml and python files) that are not loaded automatically at startup, but can be selected in the Plug-ins editor.
`prefix/share/gps/gps-animation.png`
  Default image displayed in the top right corner of GPS when GPS is idle.
`prefix/share/gps/gps-animation.gif`
  Animated image displayed in the top right corner of GPS to indicate that actions (e.g compilation) are on going. If you remove this file, the idle image (`gps-animation.png`) will always be displayed.
`prefix/share/gps/gps-splash.png`
  Splash screen displayed by default when GPS is started.
`prefix/share/gps/perspectives.xml`
  This is the description of the default desktop that GPS uses when the user hasn't defined his own default desktop and no project specific desktop exists. You can modify this file if you want, knowing that this will impact all users of GPS sharing this installation. The format of this file is the same as $HOME/.gps/perspectives.xml, which can be copied from your own directory if you wish.
`prefix/share/gps/default.gpr`
  Default project used by GPS. Can be modified after installation time to provide useful default for a given system or project.
`prefix/share/gps/readonly.gpr`
  Project used by GPS as the default project when working in a read-only directory.
`prefix/share/gps/activity_log.tmplt`
  Template file used by default to generate activities' group commit-log and patch file's header. This file can be copied into user home directory and customized (see above).
`prefix/share/locale`
  Directory used to retrieve the translation files, when relevant.