## Settings

Settings — Sharing settings between applications

## Synopsis

    #include <gtk/gtk.h>

                        GtkSettings;
                        GtkSettingsValue;
    GtkSettings*        gtk_settings_get_default            (void);
    GtkSettings*        gtk_settings_get_for_screen         (GdkScreen *screen);
    void                gtk_settings_install_property       (GParamSpec *pspec);
    void                gtk_settings_install_property_parser
                                                            (GParamSpec *pspec,
                                                             GtkRcPropertyParser parser);
    gboolean            gtk_rc_property_parse_color         (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);
    gboolean            gtk_rc_property_parse_enum          (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);
    gboolean            gtk_rc_property_parse_flags         (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);
    gboolean            gtk_rc_property_parse_requisition   (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);
    gboolean            gtk_rc_property_parse_border        (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);
    void                gtk_settings_set_property_value     (GtkSettings *settings,
                                                             const gchar *name,
                                                             const GtkSettingsValue *svalue);
    void                gtk_settings_set_string_property    (GtkSettings *settings,
                                                             const gchar *name,
                                                             const gchar *v_string,
                                                             const gchar *origin);
    void                gtk_settings_set_long_property      (GtkSettings *settings,
                                                             const gchar *name,
                                                             glong v_long,
                                                             const gchar *origin);
    void                gtk_settings_set_double_property    (GtkSettings *settings,
                                                             const gchar *name,
                                                             gdouble v_double,
                                                             const gchar *origin);

## Object Hierarchy

      GObject
       +----GtkSettings

## Properties

      color-hash               GHashTable            : Read
      gtk-alternative-button-order gboolean              : Read / Write
      gtk-button-images        gboolean              : Read / Write
      gtk-can-change-accels    gboolean              : Read / Write
      gtk-color-palette        gchararray            : Read / Write
      gtk-color-scheme         gchararray            : Read / Write
      gtk-cursor-blink         gboolean              : Read / Write
      gtk-cursor-blink-time    gint                  : Read / Write
      gtk-cursor-theme-name    gchararray            : Read / Write
      gtk-cursor-theme-size    gint                  : Read / Write
      gtk-dnd-drag-threshold   gint                  : Read / Write
      gtk-double-click-distance gint                  : Read / Write
      gtk-double-click-time    gint                  : Read / Write
      gtk-enable-animations    gboolean              : Read / Write
      gtk-entry-password-hint-timeout guint                 : Read / Write
      gtk-entry-select-on-focus gboolean              : Read / Write
      gtk-fallback-icon-theme  gchararray            : Read / Write
      gtk-font-name            gchararray            : Read / Write
      gtk-icon-sizes           gchararray            : Read / Write
      gtk-icon-theme-name      gchararray            : Read / Write
      gtk-key-theme-name       gchararray            : Read / Write
      gtk-label-select-on-focus gboolean              : Read / Write
      gtk-menu-bar-accel       gchararray            : Read / Write
      gtk-menu-bar-popup-delay gint                  : Read / Write
      gtk-menu-images          gboolean              : Read / Write
      gtk-menu-popdown-delay   gint                  : Read / Write
      gtk-menu-popup-delay     gint                  : Read / Write
      gtk-modules              gchararray            : Read / Write
      gtk-scrolled-window-placement GtkCornerType         : Read / Write
      gtk-show-input-method-menu gboolean              : Read / Write
      gtk-show-unicode-menu    gboolean              : Read / Write
      gtk-split-cursor         gboolean              : Read / Write
      gtk-theme-name           gchararray            : Read / Write
      gtk-timeout-expand       gint                  : Read / Write
      gtk-timeout-initial      gint                  : Read / Write
      gtk-timeout-repeat       gint                  : Read / Write
      gtk-toolbar-icon-size    GtkIconSize           : Read / Write
      gtk-toolbar-style        GtkToolbarStyle       : Read / Write
      gtk-touchscreen-mode     gboolean              : Read / Write
      gtk-xft-antialias        gint                  : Read / Write
      gtk-xft-dpi              gint                  : Read / Write
      gtk-xft-hinting          gint                  : Read / Write
      gtk-xft-hintstyle        gchararray            : Read / Write
      gtk-xft-rgba             gchararray            : Read / Write

## Description

## Details

### GtkSettings

    typedef struct _GtkSettings GtkSettings;

### GtkSettingsValue

    typedef struct {
      /* origin should be something like "filename:linenumber" for rc files,
       * or e.g. "XProperty" for other sources
       */
      gchar *origin;

      /* valid types are LONG, DOUBLE and STRING corresponding to the token parsed,
       * or a GSTRING holding an unparsed statement
       */
      GValue value;
    } GtkSettingsValue;

### gtk_settings_get_default ()

    GtkSettings*        gtk_settings_get_default            (void);

Gets the GtkSettings object for the default GDK screen, creating it if necessary. See `gtk_settings_get_for_screen()`.

Returns : | a GtkSettings object. If there is no default screen, then returns `NULL`.

### gtk_settings_get_for_screen ()

    GtkSettings*        gtk_settings_get_for_screen         (GdkScreen *screen);

Gets the GtkSettings object for `screen`, creating it if necessary.

`screen` : | a GdkScreen.
Returns : | a GtkSettings object.

Since 2.2

### gtk_settings_install_property ()

    void                gtk_settings_install_property       (GParamSpec *pspec);

`pspec` : |

### gtk_settings_install_property_parser ()

    void                gtk_settings_install_property_parser
                                                            (GParamSpec *pspec,
                                                             GtkRcPropertyParser parser);

`pspec` : |
`parser` : |

### gtk_rc_property_parse_color ()

    gboolean            gtk_rc_property_parse_color         (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);

A GtkRcPropertyParser for use with `gtk_settings_install_property_parser()` or `gtk_widget_class_install_style_property_parser()` which parses a color given either by its name or in the form `{ red, green, blue }` where `red`, `green` and `blue` are integers between 0 and 65535 or floating-point numbers between 0 and 1.

`pspec` : | a GParamSpec
`gstring` : | the GString to be parsed
`property_value` : | a GValue which must hold GdkColor values.
Returns : | `TRUE` if `gstring` could be parsed and `property_value` has been set to the resulting GdkColor.

### gtk_rc_property_parse_enum ()

    gboolean            gtk_rc_property_parse_enum          (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);

A GtkRcPropertyParser for use with `gtk_settings_install_property_parser()` or `gtk_widget_class_install_style_property_parser()` which parses a single enumeration value.

The enumeration value can be specified by its name, its nickname or its numeric value. For consistency with flags parsing, the value may be surrounded by parentheses.

`pspec` : | a GParamSpec
`gstring` : | the GString to be parsed
`property_value` : | a GValue which must hold enum values.
Returns : | `TRUE` if `gstring` could be parsed and `property_value` has been set to the resulting GEnumValue.

### gtk_rc_property_parse_flags ()

    gboolean            gtk_rc_property_parse_flags         (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);

A GtkRcPropertyParser for use with `gtk_settings_install_property_parser()` or `gtk_widget_class_install_style_property_parser()` which parses flags.

Flags can be specified by their name, their nickname or numerically. Multiple flags can be specified in the form `"( flag1 | flag2 | ... )"`.

`pspec` : | a GParamSpec
`gstring` : | the GString to be parsed
`property_value` : | a GValue which must hold flags values.
Returns : | `TRUE` if `gstring` could be parsed and `property_value` has been set to the resulting flags value.

### gtk_rc_property_parse_requisition ()

    gboolean            gtk_rc_property_parse_requisition   (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);

A GtkRcPropertyParser for use with `gtk_settings_install_property_parser()` or `gtk_widget_class_install_style_property_parser()` which parses a requisition in the form `"{ width, height }"` for integers `width` and `height`.

`pspec` : | a GParamSpec
`gstring` : | the GString to be parsed
`property_value` : | a GValue which must hold boxed values.
Returns : | `TRUE` if `gstring` could be parsed and `property_value` has been set to the resulting GtkRequisition.

### gtk_rc_property_parse_border ()

    gboolean            gtk_rc_property_parse_border        (const GParamSpec *pspec,
                                                             const GString *gstring,
                                                             GValue *property_value);

A GtkRcPropertyParser for use with `gtk_settings_install_property_parser()` or `gtk_widget_class_install_style_property_parser()` which parses borders in the form `"{ left, right, top, bottom }"` for integers `left`, `right`, `top` and `bottom`.

`pspec` : | a GParamSpec
`gstring` : | the GString to be parsed
`property_value` : | a GValue which must hold boxed values.
Returns : | `TRUE` if `gstring` could be parsed and `property_value` has been set to the resulting GtkBorder.

### gtk_settings_set_property_value ()

    void                gtk_settings_set_property_value     (GtkSettings *settings,
                                                             const gchar *name,
                                                             const GtkSettingsValue *svalue);

`settings` : |
`name` : |
`svalue` : |

### gtk_settings_set_string_property ()

    void                gtk_settings_set_string_property    (GtkSettings *settings,
                                                             const gchar *name,
                                                             const gchar *v_string,
                                                             const gchar *origin);

`settings` : |
`name` : |
`v_string` : |
`origin` : |

### gtk_settings_set_long_property ()

    void                gtk_settings_set_long_property      (GtkSettings *settings,
                                                             const gchar *name,
                                                             glong v_long,
                                                             const gchar *origin);

`settings` : |
`name` : |
`v_long` : |
`origin` : |

### gtk_settings_set_double_property ()

    void                gtk_settings_set_double_property    (GtkSettings *settings,
                                                             const gchar *name,
                                                             gdouble v_double,
                                                             const gchar *origin);

`settings` : |
`name` : |
`v_double` : |
`origin` : |

## Property Details

### The :`color-hash` property

      color-hash               GHashTable            : Read

Holds a hash table representation of the gtk-color-scheme setting, mapping color names to GdkColors.

Since 2.10

### The :`gtk-alternative-button-order` property

      gtk-alternative-button-order gboolean              : Read / Write

Whether buttons in dialogs should use the alternative button order.

Default value: FALSE

### The :`gtk-button-images` property

      gtk-button-images        gboolean              : Read / Write

Whether stock icons should be shown in buttons.

Default value: TRUE

### The :`gtk-can-change-accels` property

      gtk-can-change-accels    gboolean              : Read / Write

Whether menu accelerators can be changed by pressing a key over the menu item.

Default value: FALSE

### The :`gtk-color-palette` property

      gtk-color-palette        gchararray            : Read / Write

Palette to use in the color selector.

Default value: "black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90"

### The :`gtk-color-scheme` property

      gtk-color-scheme         gchararray            : Read / Write

A palette of named colors for use in themes. The format of the string is

    name1: color1
    name2: color2
    ...

Color names must be acceptable as identifiers in the gtkrc syntax, and color specifications must be in the format accepted by `gdk_color_parse()`.

Note that due to the way the color tables from different sources are merged, color specifications will be converted to hexadecimal form when getting this property.

Default value: ""

Since 2.10

### The :`gtk-cursor-blink` property

      gtk-cursor-blink         gboolean              : Read / Write

Whether the cursor should blink.

Default value: TRUE

### The :`gtk-cursor-blink-time` property

      gtk-cursor-blink-time    gint                  : Read / Write

Length of the cursor blink cycle, in milleseconds.

Allowed values: >= 100

Default value: 1200

### The :`gtk-cursor-theme-name` property

      gtk-cursor-theme-name    gchararray            : Read / Write

Name of the cursor theme to use, or NULL to use the default theme.

Default value: NULL

### The :`gtk-cursor-theme-size` property

      gtk-cursor-theme-size    gint                  : Read / Write

Size to use for cursors, or 0 to use the default size.

Allowed values: [0,128]

Default value: 0

### The :`gtk-dnd-drag-threshold` property

      gtk-dnd-drag-threshold   gint                  : Read / Write

Number of pixels the cursor can move before dragging.

Allowed values: >= 1

Default value: 8

### The :`gtk-double-click-distance` property

      gtk-double-click-distance gint                  : Read / Write

Maximum distance allowed between two clicks for them to be considered a double click (in pixels).

Allowed values: >= 0

Default value: 5

### The :`gtk-double-click-time` property

      gtk-double-click-time    gint                  : Read / Write

Maximum time allowed between two clicks for them to be considered a double click (in milliseconds).

Allowed values: >= 0

Default value: 250

### The :`gtk-enable-animations` property

      gtk-enable-animations    gboolean              : Read / Write

Whether to enable toolkit-wide animations.

Default value: TRUE

### The :`gtk-entry-password-hint-timeout` property

      gtk-entry-password-hint-timeout guint                 : Read / Write

How long to show the last inputted character in hidden entries. This value is in milliseconds. 0 disables showing the last char. 600 is a good value for enabling it.

Default value: 0

Since 2.10

### The :`gtk-entry-select-on-focus` property

      gtk-entry-select-on-focus gboolean              : Read / Write

Whether to select the contents of an entry when it is focused.

Default value: TRUE

### The :`gtk-fallback-icon-theme` property

      gtk-fallback-icon-theme  gchararray            : Read / Write

Name of a icon theme to fall back to.

Default value: NULL

### The :`gtk-font-name` property

      gtk-font-name            gchararray            : Read / Write

Name of default font to use.

Default value: "Sans 10"

### The :`gtk-icon-sizes` property

      gtk-icon-sizes           gchararray            : Read / Write

List of icon sizes (gtk-menu=16,16:gtk-button=20,20...

Default value: NULL

### The :`gtk-icon-theme-name` property

      gtk-icon-theme-name      gchararray            : Read / Write

Name of icon theme to use.

Default value: "hicolor"

### The :`gtk-key-theme-name` property

      gtk-key-theme-name       gchararray            : Read / Write

Name of key theme RC file to load.

Default value: NULL

### The :`gtk-label-select-on-focus` property

      gtk-label-select-on-focus gboolean              : Read / Write

Whether to select the contents of a selectable label when it is focused.

Default value: TRUE

### The :`gtk-menu-bar-accel` property

      gtk-menu-bar-accel       gchararray            : Read / Write

Keybinding to activate the menu bar.

Default value: "F10"

### The :`gtk-menu-bar-popup-delay` property

      gtk-menu-bar-popup-delay gint                  : Read / Write

Delay before the submenus of a menu bar appear.

Allowed values: >= 0

Default value: 0

### The :`gtk-menu-images` property

      gtk-menu-images          gboolean              : Read / Write

Whether images should be shown in menus.

Default value: TRUE

### The :`gtk-menu-popdown-delay` property

      gtk-menu-popdown-delay   gint                  : Read / Write

The time before hiding a submenu when the pointer is moving towards the submenu.

Allowed values: >= 0

Default value: 1000

### The :`gtk-menu-popup-delay` property

      gtk-menu-popup-delay     gint                  : Read / Write

Minimum time the pointer must stay over a menu item before the submenu appear.

Allowed values: >= 0

Default value: 225

### The :`gtk-modules` property

      gtk-modules              gchararray            : Read / Write

List of currently active GTK modules.

Default value: NULL

### The :`gtk-scrolled-window-placement` property

      gtk-scrolled-window-placement GtkCornerType         : Read / Write

Where the contents of scrolled windows are located with respect to the scrollbars, if not overridden by the scrolled window's own placement.

Default value: GTK_CORNER_TOP_LEFT

Since 2.10

### The :`gtk-show-input-method-menu` property

      gtk-show-input-method-menu gboolean              : Read / Write

Whether the context menus of entries and text views should offer to change the input method.

Default value: TRUE

### The :`gtk-show-unicode-menu` property

      gtk-show-unicode-menu    gboolean              : Read / Write

Whether the context menus of entries and text views should offer to insert control characters.

Default value: TRUE

### The :`gtk-split-cursor` property

      gtk-split-cursor         gboolean              : Read / Write

Whether two cursors should be displayed for mixed left-to-right and right-to-left text.

Default value: TRUE

### The :`gtk-theme-name` property

      gtk-theme-name           gchararray            : Read / Write

Name of theme RC file to load.

Default value: "Raleigh"

### The :`gtk-timeout-expand` property

      gtk-timeout-expand       gint                  : Read / Write

Expand value for timeouts, when a widget is expanding a new region.

Allowed values: >= 0

Default value: 500

### The :`gtk-timeout-initial` property

      gtk-timeout-initial      gint                  : Read / Write

Starting value for timeouts, when button is pressed.

Allowed values: >= 0

Default value: 200

### The :`gtk-timeout-repeat` property

      gtk-timeout-repeat       gint                  : Read / Write

Repeat value for timeouts, when button is pressed.

Allowed values: >= 0

Default value: 20

### The :`gtk-toolbar-icon-size` property

      gtk-toolbar-icon-size    GtkIconSize           : Read / Write

Size of icons in default toolbars.

Default value: GTK_ICON_SIZE_LARGE_TOOLBAR

### The :`gtk-toolbar-style` property

      gtk-toolbar-style        GtkToolbarStyle       : Read / Write

Whether default toolbars have text only, text and icons, icons only, etc.

Default value: GTK_TOOLBAR_BOTH

### The :`gtk-touchscreen-mode` property

      gtk-touchscreen-mode     gboolean              : Read / Write

When TRUE, there are no motion notify events delivered on this screen, and widgets can't use the pointer hovering them for any essential functionality.

Default value: FALSE

Since 2.10

### The :`gtk-xft-antialias` property

      gtk-xft-antialias        gint                  : Read / Write

Whether to antialias Xft fonts; 0=no, 1=yes, -1=default.

Allowed values: [-1,1]

Default value: -1

### The :`gtk-xft-dpi` property

      gtk-xft-dpi              gint                  : Read / Write

Resolution for Xft, in 1024 * dots/inch. -1 to use default value.

Allowed values: [-1,1048576]

Default value: -1

### The :`gtk-xft-hinting` property

      gtk-xft-hinting          gint                  : Read / Write

Whether to hint Xft fonts; 0=no, 1=yes, -1=default.

Allowed values: [-1,1]

Default value: -1

### The :`gtk-xft-hintstyle` property

      gtk-xft-hintstyle        gchararray            : Read / Write

What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull.

Default value: NULL

### The :`gtk-xft-rgba` property

      gtk-xft-rgba             gchararray            : Read / Write

Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr.

Default value: NULL