.. only:: html |updatedisclaimer| ****************** QGIS Configuration ****************** .. only:: html .. contents:: :local: QGIS is highly configurable through the :menuselection:`Settings` menu. Choose between Options, Project Properties and Customization. .. note:: QGIS follows desktop guidelines for the location of options and project properties item. Consequently related to the OS you are using, location of some of items described below could be in the :menuselection:`Project` or the :menuselection:`Settings` menu. .. FIXME: please add more introduction here .. index:: Options, Configuration .. _gui_options: Options ======= |options| Some basic options for QGIS can be selected using the :guilabel:`Options` dialog. Select the menu option :menuselection:`Settings -->` |options| :menuselection:`Options`. You can modify the options according to your needs. Some of the changes may require a restart of QGIS before they will be effective. The tabs where you can customize your options are described below. .. _general_options: General Settings ---------------- **Application** * Select the :guilabel:`Style (QGIS restart required)` |selectString| and choose between 'Oxygen', 'Windows', 'Motif', 'CDE', 'Plastique' and 'Cleanlooks'. * Define the :guilabel:`Icon theme` |selectString|. It can be 'default' or 'Night Mapping'. * Define the :guilabel:`Icon size` |selectString|. * Define the :guilabel:`Font` and its :guilabel:`Size`. The font can be |radioButtonOn| :guilabel:`Qt default` or a user-defined one. * Change the :guilabel:`Timeout for timed messages or dialogs` |selectString|. * |checkbox| :guilabel:`Hide splash screen at startup` * |checkbox| :guilabel:`Show tips at startup` * |checkbox| :guilabel:`Check QGIS version at startup` to keep you informed if a newer version is released * |checkbox| :guilabel:`QGIS-styled group boxes` * |checkbox| :guilabel:`Use native color chooser dialogs` (see :ref:`color-selector`) * |checkbox| :guilabel:`Use live-updating color chooser dialogs` (see :ref:`color-selector`) * |checkbox| :guilabel:`Canvas rotation support (restart required)` **Project files** * :guilabel:`Open project on launch` |selectString| (choose between 'New', 'Most recent', 'Welcome Page', and 'Specific'). When choosing 'Specific' use the |browseButton| to define the project to use by default. The 'Welcome Page' displays a list of recent projects with screenshot. * |checkbox| :guilabel:`Create new project from default project`. You have the possibility to press on :guilabel:`Set current project as default` or on :guilabel:`Reset default`. You can browse through your files and define a directory where you find your user-defined project templates. This will be added to :menuselection:`Project --> New From Template`. If you first activate |checkbox| :guilabel:`Create new project from default project` and then save a project in the project templates folder. * |checkbox| :guilabel:`Prompt to save project and data source changes when required` * |checkbox| :guilabel:`Prompt for confirmation when a layer is to be removed` * |checkbox| :guilabel:`Warn when opening a project file saved with an older version of QGIS` * :guilabel:`Enable macros` |selectString|. This option was created to handle macros that are written to perform an action on project events. You can choose between 'Never', 'Ask', 'For this session only' and 'Always (not recommended)'. .. index:: Environment variables .. _`env_options`: System Settings --------------- **SVG paths** Add or Remove :guilabel:`Path(s) to search for Scalable Vector Graphic (SVG) symbols`. These SVG files are then available to symbolize features or decorate your map composition. **Plugin paths** Add or Remove :guilabel:`Path(s) to search for additional C++ plugin libraries` **QSettings** It helps you :guilabel:`Reset user interface to default settings (restart required)` if you made any :ref:`customization `. **Environment** System environment variables can now be viewed, and many configured, in the **Environment** group (see figure_environment_variables_). This is useful for platforms, such as Mac, where a GUI application does not necessarily inherit the user's shell environment. It's also useful for setting and viewing environment variables for the external tool sets controlled by the Processing toolbox (e.g., SAGA, GRASS), and for turning on debugging output for specific sections of the source code. * |checkbox| :guilabel:`Use custom variables (restart required - include separators)`. You can **[Add]** and **[Remove]** variables. Already-defined environment variables are displayed in :guilabel:`Current environment variables`, and it's possible to filter them by activating |checkbox| :guilabel:`Show only QGIS-specific variables`. .. _figure_environment_variables: .. figure:: /static/user_manual/introduction/sys-env-options.png :align: center System environment variables in QGIS .. _datasources_options: Data Sources Settings --------------------- **Feature attributes and table** * |checkbox| :guilabel:`Open attribute table in a dock window` * :guilabel:`Copy features as` 'Plain text, no geometry', 'Plain text, WKT geometry', or 'GeoJSON' when pasting features in other applications. * :guilabel:`Attribute table behavior` |selectString|: set filter on the attribute table at the opening. There are three possibilities: 'Show all features', 'Show selected features' and 'Show features visible on map'. * :guilabel:`Default view`: define the view mode of the attribute table at every opening. It can be 'Remember last view', 'Table view' or 'Form view'. * :guilabel:`Attribute table row cache` |selectNumber|. This row cache makes it possible to save the last loaded N attribute rows so that working with the attribute table will be quicker. The cache will be deleted when closing the attribute table. * :guilabel:`Representation for NULL values`. Here, you can define a value for data fields containing a NULL value. .. _tip_table_filtering: .. tip:: **Improve opening of big data attribute table** When working with layers with big amount of records, opening the attribute table may be slow as the dialog request all the rows in the layer. Setting the :guilabel:`Attribute table behavior` to **Show features visible on map** will make QGIS request only the features in the current map canvas when opening the table, allowing a quick data loading. Note that data in this attribute table instance will be always tied to the canvas extent it was opened with, meaning that selecting **Show All Features** within such a table will not display new features. You can however update the set of displayed features by changing the canvas extent and selecting **Show Features Visible On Map** option in the attribute table. **Data source handling** * :guilabel:`Scan for valid items in the browser dock` |selectString|. You can choose between 'Check extension' and 'Check file contents'. * :guilabel:`Scan for contents of compressed files (.zip) in browser dock` |selectString|. 'No', 'Basic scan' and 'Full scan' are possible. * :guilabel:`Prompt for raster sublayers when opening`. Some rasters support sublayers --- they are called subdatasets in GDAL. An example is netCDF files --- if there are many netCDF variables, GDAL sees every variable as a subdataset. The option allows you to control how to deal with sublayers when a file with sublayers is opened. You have the following choices: * ‘Always’: Always ask (if there are existing sublayers) * ‘If needed’: Ask if layer has no bands, but has sublayers * ‘Never’: Never prompt, will not load anything * ‘Load all’: Never prompt, but load all sublayers * |checkbox| :guilabel:`Ignore shapefile encoding declaration`. If a shapefile has encoding information, this will be ignored by QGIS. * |checkbox| :guilabel:`Add PostGIS layers with double click and select in extended mode` * |checkbox| :guilabel:`Add Oracle layers with double click and select in extended mode` * |checkbox| :guilabel:`Execute expressions on server-side if possible` **Hidden Browser Path** This widget lists all the folder you chose to hide from the Browser panel. Removing a folder from the list will make it available in the Browser panel. .. index:: Rendering .. _rendering_options: Rendering Settings ------------------ .. _figure_rendering_menu: .. figure:: /static/user_manual/introduction/rendering_menu.png :align: center Rendering tab of Project Properties dialog **Rendering behavior** * |checkbox| :guilabel:`By default new layers added to the map should be displayed` * |checkbox| :guilabel:`Use render caching where possible to speed up redraws` * |checkbox| :guilabel:`Render layers in parallel using many CPU cores` * |checkbox| :guilabel:`Max cores to use` * :guilabel:`Map update interval (default to 250 ms)` .. _global_simplification: * |checkbox| :guilabel:`Enable feature simplification by default for newly added layers` * :guilabel:`Simplification threshold` * :guilabel:`Simplification algorithm`: This option performs a local "on-the-fly" simplification on feature's and speeds up geometry rendering. It doesn't change the geometry fetched from the data providers. This is important when you have expressions that use the feature geometry (e.g. calculation of area) - it ensures that these calculations are done on the original geometry, not on the simplified one. For this purpose, QGIS provides three algorithms: 'Distance' (default), 'SnapToGrid' and 'Visvalingam'. * |checkbox| :guilabel:`Simplify on provider side if possible`: the geometries are simplified by the provider (PostGIS, Oracle...) and unlike the local-side simplification, geometry-based calculations may be affected * :guilabel:`Maximum scale at which the layer should be simplified` * |doublespinbox| :guilabel:`Magnification level` (see the :ref:`magnifier `) .. note:: Besides the global setting, feature simplification can be set for any specific layer from its :menuselection:`Layer properties --> Rendering` menu. **Rendering quality** * |checkbox| :guilabel:`Make lines appear less jagged at the expense of some drawing performance` **Curve segmentation** * :guilabel:`Segmentation tolerance`: this setting controls the way circular arcs are rendered. **The smaller** maximum angle (between the two consecutive vertices and the curve center, in degrees) or maximum difference (distance between the segment of the two vertices and the curve line, in map units), the **more straight line** segments will be used during rendering. * :guilabel:`Tolerance type`: it can be 'Maximum angle' or 'Maximum distance' **Rasters** * With :guilabel:`RGB band selection`, you can define the number for the Red, Green and Blue band. *Contrast enhancement* * :guilabel:`Single band gray` |selectString|. A single band gray can have 'No stretch', 'Stretch to MinMax', 'Stretch and Clip to MinMax' and also 'Clip to MinMax'. * :guilabel:`Multi band color (byte/band)` |selectString|. Options are 'No stretch', 'Stretch to MinMax', 'Stretch and Clip to MinMax' and 'Clip to MinMax'. * :guilabel:`Multi band color (>byte/band)` |selectString|. Options are 'No stretch', 'Stretch to MinMax', 'Stretch and Clip to MinMax' and 'Clip to MinMax'. * :guilabel:`Limits (minimum/maximum)` |selectString|. Options are 'Cumulative pixel count cut', 'Minimum/Maximum', 'Mean +/- standard deviation'. * :guilabel:`Cumulative pixel count cut limits` * :guilabel:`Standard deviation multiplier` **Debugging** * |checkbox| :guilabel:`Map canvas refresh` .. index:: Colors .. _colors_options: Colors Settings --------------- This menu allows you to add some custom color that you can find in each color dialog window of the renderers. You will see a set of predefined colors in the tab: you can delete or edit all of them. Moreover you can add the color you want and perform some copy and paste operations. Finally you can export the color set as a :file:`gpl` file or import them. .. _canvas_legend_options: Canvas and Legend Settings -------------------------- **Default map appearance (overridden by project properties)** * Define a :guilabel:`Selection color` and a :guilabel:`Background color`. **Layer legend** * :guilabel:`Double click action in legend` |selectString|. You can either 'Open layer properties', 'Open attribute table' or 'Open layer styling dock' with the double click. * The following :guilabel:`Legend item styles` are possible: * |checkbox| :guilabel:`Capitalise layer names` * |checkbox| :guilabel:`Bold layer names` * |checkbox| :guilabel:`Bold group names` * |checkbox| :guilabel:`Display classification attribute names` * |checkbox| :guilabel:`Create raster icons (may be slow)` * you can also set the :guilabel:`WMS getLegendGraphic Resolution` .. index:: Map tools .. _maptools_options: Map tools Settings ------------------ This tab offers some options regarding the behavior of the :ref:`Identify tool `. * :guilabel:`Search radius for identifying and displaying map tips` is a tolerance distance within which the identify tool will depict results as long as you click within this tolerance. * :guilabel:`Highlight color` allows you to choose with which color should features being identified be highlighted. * :guilabel:`Buffer` determines a buffer distance to be rendered from the outline of the identify highlight. * :guilabel:`Minimum width` determines how thick should the outline of a highlighted object be. **Measure tool** * Define :guilabel:`Rubberband color` for measure tools * Define :guilabel:`Decimal places` * |checkbox| :guilabel:`Keep base unit` to not automatically convert large numbers (e.g., meters to kilometers) * :guilabel:`Preferred distance units` |radioButtonOn| ('Meters', 'Kilometers', 'Feet', 'Yards', 'Miles', 'Nautical Miles', 'Degrees' or 'Map Units' ) * :guilabel:`Preferred area units` |radioButtonOn| ('Square meters', 'Square kilometers', 'Square feet', 'Square yards', 'Square miles', 'Hectares', 'Acres', 'Square nautical miles', 'Square degrees" or 'Map Units') * :guilabel:`Preferred angle units` |radioButtonOn| ('Degrees', 'Radians', 'Gon/gradians', 'Minutes of arc', 'Seconds of arc' or 'Turns/revolutions') **Panning and zooming** * Define a :guilabel:`Zoom factor` for zoom tools or wheel mouse .. _predefinedscales: **Predefined scales** Here, you find a list of predefined scales. With the |signPlus| and |signMinus| buttons you can add or remove your personal scales. You can also import or export scales from/to a ``.XML`` file. Note that you still have the possibility to remove your changes and reset to the predefined list. .. _composer_options: Composer Settings ----------------- **Composition defaults** You can define the :guilabel:`Default font` used within the :ref:`print composer `. **Grid appearance** * Define the :guilabel:`Grid style` |selectString| ('Solid', 'Dots', 'Crosses') * Define the :guilabel:`Grid color` **Grid and guide defaults** * Define the :guilabel:`Grid spacing` |selectNumber| * Define the :guilabel:`Grid offset` |selectNumber| for x and y * Define the :guilabel:`Snap tolerance` |selectNumber| **Composer Paths** * Define :guilabel:`Path(s) to search for extra print templates`: a list of folders with custom composer templates to use while creating new one. .. index:: Digitizing configuration .. _digitizing_options: Digitizing Settings ------------------- This tab helps you configure general settings when :ref:`editing vector layer ` (attributes and geometry). **Feature creation** * |checkbox| :guilabel:`Suppress attribute form pop-up after feature creation` * |checkbox| :guilabel:`Reuse last entered attribute values` * :guilabel:`Validate geometries`. Editing complex lines and polygons with many nodes can result in very slow rendering. This is because the default validation procedures in QGIS can take a lot of time. To speed up rendering, it is possible to select GEOS geometry validation (starting from GEOS 3.3) or to switch it off. GEOS geometry validation is much faster, but the disadvantage is that only the first geometry problem will be reported. **Rubberband** * Define Rubberband :guilabel:`Line width`, :guilabel:`Line color` and :guilabel:`Fill color` * :guilabel:`Don't update rubberband during node editing` **Snapping** * |checkbox| :guilabel:`Open snapping options in a dock window (QGIS restart required)` * Define :guilabel:`Default snap mode` |selectString| ('To vertex', 'To segment', 'To vertex and segment', 'Off') * Define :guilabel:`Default snapping tolerance` in map units or pixels * Define the :guilabel:`Search radius for vertex edits` in map units or pixels **Vertex markers** * |checkbox| :guilabel:`Show markers only for selected features` * Define vertex :guilabel:`Marker style` |selectString| ('Cross' (default), 'Semi transparent circle' or 'None') * Define vertex :guilabel:`Marker size` **Curve offset tool** The next 3 options refer to the |offsetCurve| :sup:`Offset Curve` tool in :ref:`sec_advanced_edit`. Through the various settings, it is possible to influence the shape of the line offset. These options are possible starting from GEOS 3.3. * :guilabel:`Join style`: 'Round', 'Mitre' or 'Bevel' * :guilabel:`Quadrant segments` * :guilabel:`Miter limit` .. _gdal_options: GDAL Settings ------------- GDAL is a data exchange library for raster files. In this tab, you can :guilabel:`Edit create options` and :guilabel:`Edit Pyramids Options` of the raster formats. You can define which GDAL driver is to be used for a raster format, as in some cases more than one GDAL driver is available. .. index:: CRS, Datum transformation, On-the-fly reprojection .. _crs_options: CRS Settings ------------ **Default CRS for new projects** * |radioButtonOff| :guilabel:`Don't enable 'on the fly' reprojection` * |radioButtonOn| :guilabel:`Automatically enable 'on the fly' reprojection if layers have different CRS` * |radioButtonOff| :guilabel:`Enable 'on the fly' reprojection by default` * Select a CRS and :guilabel:`Always start new projects with this CRS` **CRS for new layers** This area allows you to define the action to take when a new layer is created, or when a layer without a CRS is loaded. * |radioButtonOn| :guilabel:`Prompt for CRS` * |radioButtonOff| :guilabel:`Use project CRS` * |radioButtonOff| :guilabel:`Use default CRS` **Default datum transformations** * |checkbox| :guilabel:`Ask for datum transformation when no default is defined` * With the 'on-the-fly' CRS transformation enabled and the above option checked, adding layers of different CRS opens the :guilabel:`Select datum transformations` dialog. This offers you to select the most appropriate transformation settings. Validating this dialog with the 'Remember selection' option checked populates the table under :menuselection:`CRS --> Default datum transformations` with information about 'Source CRS' and 'Destination CRS' as well as 'Source datum transform' and 'Destination datum transform'. From now, QGIS automatically uses the selected datum transformation for further transformation between these two CRSs until you |signMinus| remove it from the list. You can use the |signPlus| button to add a datum transformation if you know its parameters (source and destination ellipsoids and the numbers from the transformation table). You then need to manually enter each setting. .. note:: For more information on how QGIS handles layers projection, please read the dedicated section at :ref:`label_projections`. .. index:: Overwrite language .. _locale_options: Locale Settings --------------- * |checkbox| :guilabel:`Override system locale` and :guilabel:`Locale to use instead` * Information about active system locale Authentication Settings ----------------------- In the :guilabel:`Authentication` tab you can set authentication configurations and manage PKI certificates. See :ref:`authentication_index` for more details. .. index:: Proxy, Network .. _network_options: Network Tab ----------- **General** * Define :guilabel:`WMS search address`, default is ``http://geopole.org/wms/search?search=\%1\&type=rss`` * Define :guilabel:`Timeout for network requests (ms)` - default is 60000 * Define :guilabel:`Default expiration period for WMS Capabilities (hours)` - default is 24 * Define :guilabel:`Default expiration period for WMSC/WMTS tiles (hours)` - default is 24 * Define :guilabel:`Max retry in case of tile or feature request errors` * Define :guilabel:`User-Agent` .. _figure_network_tab: .. figure:: /static/user_manual/introduction/proxy-settings.png :align: center Proxy-settings in QGIS **Cache settings** Define the :guilabel:`Directory` and a :guilabel:`Size` for the cache. * |checkbox| :guilabel:`Use proxy for web access` and define 'Host', 'Port', 'User', and 'Password'. * Set the :guilabel:`Proxy type` |selectString| according to your needs. * :menuselection:`Default Proxy`: Proxy is determined based on the application proxy set using * :menuselection:`Socks5Proxy`: Generic proxy for any kind of connection. Supports TCP, UDP, binding to a port (incoming connections) and authentication. * :menuselection:`HttpProxy`: Implemented using the "CONNECT" command, supports only outgoing TCP connections; supports authentication. * :menuselection:`HttpCachingProxy`: Implemented using normal HTTP commands, it is useful only in the context of HTTP requests. * :menuselection:`FtpCachingProxy`: Implemented using an FTP proxy, it is useful only in the context of FTP requests. Excluding some URLs can be added to the text box below the proxy settings (see Figure_Network_Tab_). If you need more detailed information about the different proxy settings, please refer to the manual of the underlying QT library documentation at http://doc.qt.io/qt-4.8/qnetworkproxy.html#ProxyType-enum .. tip:: **Using Proxies** Using proxies can sometimes be tricky. It is useful to proceed by 'trial and error' with the above proxy types, to check if they succeed in your case. .. index:: Variables Variables Settings ------------------ The :guilabel:`Variables` tab lists all the variables available at the global-level. It also allows the user to manage global-level variables. Click the |signPlus| button to add a new custom global-level variable. Likewise, select a custom global-level variable from the list and click the |signMinus| button to remove it. More information about variables in the :ref:`general_tools_variables` section. .. _optionsadvanced: Advanced Settings ----------------- Depending on your OS, all the settings related to QGIS (UI, tools, data providers, default values, plugins options...) are saved: * |nix| in a text file: :file:`$HOME/.config/QGIS/QGIS2.conf` * |osx| in the properties list file: :file:`$HOME/Library/Preferences/org.qgis.qgis.plist` * |win| in the registry under: ``HKEY\CURRENT_USER\Software\QGIS\qgis`` The :guilabel:`Advanced` tab offers you in a single place, regardless your OS, means to manage these settings through the :guilabel:`Advanced Settings Editor`. After you promise to be careful, the widget is populated with a tree of all QGIS settings, which you can directly edit. .. warning:: **Avoid using the Advanced tab settings blindly** Be careful while modifying items in this dialog given that changes are automatically applied. Doing changes without knowledge can break your QGIS installation in various ways. .. index:: Project properties single: Project; Properties single: Settings; Project .. _project_properties: Project Properties ================== In the properties window for the project under :menuselection:`Project --> Project Properties` (or |kde| :menuselection:`Settings --> Project Properties`), you can set project-specific options. The project-specific options overwrite their equivalent in the options described above. * In the :guilabel:`General` tab, the **general settings** let you: * give a title to the project beside the project file path * choose the color to use for features when they are selected * choose the background color: the color to use for the map canvas * set whether the path to layers in the project should be saved as absolute (full) or as relative to the project file location. You may prefer relative path when both layers and project files can be moved or shared or if the project is accessed from computers on different platforms. * choose to avoid artifacts when project is rendered as map tiles. Note that checking this option can lead to performance degradation. Calculating areas and distances is a common need in GIS. However, these values are really tied to the underlying projection settings. The **Measurements** frame lets you control these parameters. You can indeed choose: * the ellipsoid to use: it can be an existing one, a custom one (you'll need to set values of the semi-major and semi-minor axis) or None/Planimetric. * the :guilabel:`units for distance measurements` for length and perimeter and the :guilabel:`units for area measurements`. These settings, which default to the units set in QGIS options but then overrides it for the current project, are used in: * Attribute table field update bar * Field calculator calculations * Identify tool derived length, perimeter and area values * Default unit shown in measure dialog The **Coordinate display** allows you to choose and customize the format of units to use to display the mouse coordinate in the status bar and the derived coordinates shown via the identify tool. Finally, you can define a **project scale** list, which overrides the global predefined scales. .. _figure_general_tab: .. figure:: /static/user_manual/introduction/project_general.png :align: center General tab of Project Properties dialog * The :guilabel:`CRS` tab enables you to choose the Coordinate Reference System for this project, and to enable on-the-fly re-projection of raster and vector layers when displaying layers from a different CRS. For more information on projection's handling in QGIS, please read :ref:`label_projections` section. * With the :guilabel:`Identify layers` tab, you set (or disable) which layers will respond to the :ref:`identify tool `. By default, layers are set queryable. You can also set whether a layer should appear as ``read-only``, meaning that it can not be edited by the user, regardless of the data provider's capabilities. Although this is a weak protection, it remains a quick and handy configuration to avoid end-users modifying data when working with file-based layers. * The :guilabel:`Default Styles` tab lets you control how new layers will be drawn when they do not have an existing :file:`.qml` style defined. You can also set the default transparency level for new layers and whether symbols should have random colors assigned to them. There is also an additional section where you can define specific colors for the running project. You can find the added colors in the drop down menu of the color dialog window present in each renderer. * The tab :guilabel:`OWS Server` allows you to configure your project in order to publish it online. Here you can define information about the QGIS Server WMS and WFS capabilities, extent and CRS restrictions. More information available in section :ref:`Creatingwmsfromproject` and subsequent. * The :guilabel:`Macros` tab is used to edit Python macros for projects. Currently, only three macros are available: ``openProject()``, ``saveProject()`` and ``closeProject()``. .. _figure_macro_tab: .. figure:: /static/user_manual/introduction/macro.png :align: center Macro settings in QGIS * The :guilabel:`Relations` tab is used to define 1:n relations. The relations are defined in the project properties dialog. Once relations exist for a layer, a new user interface element in the form view (e.g. when identifying a feature and opening its form) will list the related entities. This provides a powerful way to express e.g. the inspection history on a length of pipeline or road segment. You can find out more about 1:n relations support in Section :ref:`vector_relations`. * In the :guilabel:`Data Sources` tab, you can: * |checkbox| :guilabel:`Evaluate default values on provider side`: When adding new features in a PostGreSQL table, fields with default value constraint are evaluated and populated at the form opening, and not at the commit moment. This means that instead of an expression like ``nextval('serial')``, the field in the :guilabel:`Add Feature` form will display expected value (e.g., ``25``). * |checkbox| :guilabel:`Automatically create transaction groups where possible`: When this mode is turned on, all (postgres) layers from the same database are synchronised in their edit state, i.e. when one layer is put into edit state, all are, when one layer is committed or one layer is rolled back, so are the others. Also, instead of buffering edit changes locally, they are directly sent to a transaction in the database which gets committed when the user clicks save layer. Note that you can (de)activate this option only if no layer is being edited in the project. * The :guilabel:`Variables` tab lists all the variables available at the project's level (which includes all global variables). Besides, it also allows the user to manage project-level variables. Click the |signPlus| button to add a new custom project-level variable. Likewise, select a custom project-level variable from the list and click the |signMinus| button to remove it. More information on variables usage in the General Tools :ref:`general_tools_variables` section. .. index:: Customization .. _sec_customization: Customization ============= The customization dialog lets you (de)activate almost every element in the QGIS user interface. This can be very useful if you want to provide your end-users with a 'light' version of QGIS, containing only the icons, menus or panels they need. .. note:: Before your changes are applied, you need to restart QGIS. .. _figure_customization: .. figure:: /static/user_manual/introduction/customization.png :align: center The Customization dialog Ticking the |checkbox| :guilabel:`Enable customization` checkbox is the first step on the way to QGIS customization. This enables the toolbar and the widget panel from which you can uncheck and thus disable some GUI items. The configurable item can be: * a **Menu** or some of its sub-menus from the :ref:`label_menubar` * a whole **Panel** (see :ref:`sec_panels_and_toolbars`) * the **Status bar** described in :ref:`label_statusbar` or some of its items * a **Toolbar**: the whole bar or some of its icons * or any **widget** from any dialog in QGIS: label, button, combobox... With |select| :sup:`Switch to catching widgets in main application`, you can click on an item in QGIS interface that you want to be hidden and QGIS automatically unchecks the corresponding entry in the Customization dialog. Once you setup your configuration, click **[Apply]** or **[Ok]** to validate your changes. This configuration becomes the one used by default by QGIS at the next startup. The modifications can also be saved in a ``.ini`` file using |fileSave| :sup:`Save To File` button. This is a handy way to share a common QGIS interface among multiple users. Just click on |fileOpen| :sup:`Load from File` from the destination computer in order to import the ``.ini`` file. You can also run :ref:`command line tools ` and save various setups for different use cases as well. .. _tip_restoring_configuration: .. tip:: **Easily restore predefined QGIS** The initial QGIS GUI configuration can be restored by one of the methods below: * unchecking |checkbox| :guilabel:`Enable customization` option in the Customization dialog or click the |selectAllTree| :sup:`Check All` button * pressing the **[Reset]** button in the **QSettings** frame under :menuselection:`Settings --> Options` menu, :guilabel:`System` tab * launching QGIS at a command prompt with the following command line ``qgis --nocustomization`` * setting to ``false`` the value of :menuselection:`UI --> Customization --> Enabled` variable under :menuselection:`Settings --> Options` menu, :guilabel:`Advanced` tab (see the :ref:`warning `). In most cases, you need to restart QGIS in order to have the change applied. .. _`shortcuts`: Keyboard shortcuts ================== .. index:: single: Keyboard shortcuts QGIS provides default keyboard shortcuts for many features. You can find them in section :ref:`label_menubar`. Additionally, the menu option :menuselection:`Settings --> Configure Shortcuts...` allows you to change the default keyboard shortcuts and add new keyboard shortcuts to QGIS features. .. _figure_shortcuts: .. figure:: /static/user_manual/introduction/shortcuts.png :align: center Define shortcut options Configuration is very simple. Just select a feature from the list and click on : * **[Change]** and press the new combination you want to assign as new shortcut * **[Set none]** to clear any assigned shortcut * or **[Set default]** to backup the shortcut to its original and default value. Proceed as above for any other tools you wish to customize. Once you have finished your configuration, simply **[Close]** the dialog to have your changes applied. You can also **[Save]** the changes as an :file:`.XML` file and **[Load]** them into another QGIS installation.