![]() |
![]() |
![]() |
![]() |
GtkSettings provide a mechanism to share global settings between applications.
On the X window system, this sharing is realized by an
XSettings
manager that is usually part of the desktop environment, along with
utilities that let the user change these settings. In the absence of
an Xsettings manager, GTK+ reads default values for settings from
settings.ini
files in
/etc/gtk-4.0
, $XDG_CONFIG_DIRS/gtk-4.0
and $XDG_CONFIG_HOME/gtk-4.0
.
These files must be valid key files (see GKeyFile), and have
a section called Settings. Themes can also provide default values
for settings by installing a settings.ini
file
next to their gtk.css
file.
Applications can override system-wide settings by setting the property
of the GtkSettings object with g_object_set()
. This should be restricted
to special cases though; GtkSettings are not meant as an application
configuration facility. When doing so, you need to be aware that settings
that are specific to individual widgets may not be available before the
widget type has been realized at least once. The following example
demonstrates a way to do this:
gtk_init (); // make sure the type is realized g_type_class_unref (g_type_class_ref (GTK_TYPE_BUTTON)); g_object_set (gtk_settings_get_default (), "gtk-enable-animations", FALSE, NULL);
There is one GtkSettings instance per screen. It can be obtained with
gtk_settings_get_for_screen()
, but in many cases, it is more convenient
to use gtk_widget_get_settings()
. gtk_settings_get_default()
returns the
GtkSettings instance for the default screen.
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()
.
a GtkSettings object. If there is
no default screen, then returns NULL
.
[nullable][transfer none]
GtkSettings *
gtk_settings_get_for_screen (GdkScreen *screen
);
Gets the GtkSettings object for screen
, creating it if necessary.
Since: 2.2
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
);
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.
TRUE
if gstring
could be parsed and property_value
has been set to the resulting GEnumValue.
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 | ... )"
.
TRUE
if gstring
could be parsed and property_value
has been set to the resulting flags value.
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
.
TRUE
if gstring
could be parsed and property_value
has been set to the resulting GtkRequisition.
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.
void gtk_settings_reset_property (GtkSettings *settings
,const gchar *name
);
Undoes the effect of calling g_object_set()
to install an
application-specific value for a setting. After this call,
the setting will again follow the session-wide value for
this setting.
Since: 3.20
struct GtkSettingsValue { /* 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; };
“gtk-alternative-button-order”
property“gtk-alternative-button-order” gboolean
Whether buttons in dialogs should use the alternative button order.
Flags: Read / Write
Default value: FALSE
“gtk-alternative-sort-arrows”
property“gtk-alternative-sort-arrows” gboolean
Controls the direction of the sort indicators in sorted list and tree
views. By default an arrow pointing down means the column is sorted
in ascending order. When set to TRUE
, this order will be inverted.
Flags: Read / Write
Default value: FALSE
Since: 2.12
“gtk-application-prefer-dark-theme”
property“gtk-application-prefer-dark-theme” gboolean
Whether the application prefers to use a dark theme. If a GTK+ theme includes a dark variant, it will be used instead of the configured theme.
Some applications benefit from minimizing the amount of light pollution that interferes with the content. Good candidates for dark themes are photo and video editors that make the actual content get all the attention and minimize the distraction of the chrome.
Dark themes should not be used for documents, where large spaces are white/light and the dark chrome creates too much contrast (web browser, text editor...).
Flags: Read / Write
Default value: FALSE
Since: 3.0
“gtk-cursor-blink”
property“gtk-cursor-blink” gboolean
Whether the cursor should blink.
Also see the “gtk-cursor-blink-timeout” setting, which allows more flexible control over cursor blinking.
Flags: Read / Write
Default value: TRUE
“gtk-cursor-blink-time”
property“gtk-cursor-blink-time” gint
Length of the cursor blink cycle, in milliseconds.
Flags: Read / Write
Allowed values: >= 100
Default value: 1200
“gtk-cursor-blink-timeout”
property“gtk-cursor-blink-timeout” gint
Time after which the cursor stops blinking, in seconds. The timer is reset after each user interaction.
Setting this to zero has the same effect as setting
“gtk-cursor-blink” to FALSE
.
Flags: Read / Write
Allowed values: >= 1
Default value: 10
Since: 2.12
“gtk-cursor-theme-name”
property“gtk-cursor-theme-name” gchar *
Name of the cursor theme to use, or NULL to use the default theme.
Flags: Read / Write
Default value: NULL
“gtk-cursor-theme-size”
property“gtk-cursor-theme-size” gint
Size to use for cursors, or 0 to use the default size.
Flags: Read / Write
Allowed values: [0,128]
Default value: 0
“gtk-decoration-layout”
property“gtk-decoration-layout” gchar *
This setting determines which buttons should be put in the titlebar of client-side decorated windows, and whether they should be placed at the left of right.
The format of the string is button names, separated by commas. A colon separates the buttons that should appear on the left from those on the right. Recognized button names are minimize, maximize, close, icon (the window icon) and menu (a menu button for the fallback app menu).
For example, "menu:minimize,maximize,close" specifies a menu on the left, and minimize, maximize and close buttons on the right.
Note that buttons will only be shown when they are meaningful. E.g. a menu button only appears when the desktop shell does not show the app menu, and a close button only appears on a window that can be closed.
Also note that the setting can be overridden with the “decoration-layout” property.
Flags: Read / Write
Default value: "menu:minimize,maximize,close"
Since: 3.12
“gtk-dialogs-use-header”
property“gtk-dialogs-use-header” gboolean
Whether builtin GTK+ dialogs such as the file chooser, the color chooser or the font chooser will use a header bar at the top to show action widgets, or an action area at the bottom.
This setting does not affect custom dialogs using GtkDialog directly, or message dialogs.
Flags: Read / Write
Default value: FALSE
Since: 3.12
“gtk-dnd-drag-threshold”
property“gtk-dnd-drag-threshold” gint
Number of pixels the cursor can move before dragging.
Flags: Read / Write
Allowed values: >= 1
Default value: 8
“gtk-double-click-distance”
property“gtk-double-click-distance” gint
Maximum distance allowed between two clicks for them to be considered a double click (in pixels).
Flags: Read / Write
Allowed values: >= 0
Default value: 5
“gtk-double-click-time”
property“gtk-double-click-time” gint
Maximum time allowed between two clicks for them to be considered a double click (in milliseconds).
Flags: Read / Write
Allowed values: >= 0
Default value: 400
“gtk-enable-accels”
property“gtk-enable-accels” gboolean
Whether menu items should have visible accelerators which can be activated.
Flags: Read / Write
Default value: TRUE
Since: 2.12
“gtk-enable-animations”
property“gtk-enable-animations” gboolean
Whether to enable toolkit-wide animations.
Flags: Read / Write
Default value: TRUE
“gtk-enable-event-sounds”
property“gtk-enable-event-sounds” gboolean
Whether to play any event sounds at all.
See the Sound Theme Specifications for more information on event sounds and sound themes.
GTK+ itself does not support event sounds, you have to use a loadable module like the one that comes with libcanberra.
Flags: Read / Write
Default value: TRUE
Since: 2.14
“gtk-enable-input-feedback-sounds”
property“gtk-enable-input-feedback-sounds” gboolean
Whether to play event sounds as feedback to user input.
See the Sound Theme Specifications for more information on event sounds and sound themes.
GTK+ itself does not support event sounds, you have to use a loadable module like the one that comes with libcanberra.
Flags: Read / Write
Default value: TRUE
Since: 2.14
“gtk-enable-primary-paste”
property“gtk-enable-primary-paste” gboolean
Whether a middle click on a mouse should paste the 'PRIMARY' clipboard content at the cursor location.
Flags: Read / Write
Default value: TRUE
Since: 3.4
“gtk-entry-password-hint-timeout”
property“gtk-entry-password-hint-timeout” guint
How long to show the last input character in hidden entries. This value is in milliseconds. 0 disables showing the last char. 600 is a good value for enabling it.
Flags: Read / Write
Default value: 0
Since: 2.10
“gtk-entry-select-on-focus”
property“gtk-entry-select-on-focus” gboolean
Whether to select the contents of an entry when it is focused.
Flags: Read / Write
Default value: TRUE
“gtk-error-bell”
property“gtk-error-bell” gboolean
When TRUE
, keyboard navigation and other input-related errors
will cause a beep. Since the error bell is implemented using
gdk_window_beep()
, the windowing system may offer ways to
configure the error bell in many ways, such as flashing the
window or similar visual effects.
Flags: Read / Write
Default value: TRUE
Since: 2.12
“gtk-font-name”
property“gtk-font-name” gchar *
The default font to use. GTK+ uses the family name and size from this string.
Flags: Read / Write
Default value: "Sans 10"
“gtk-fontconfig-timestamp”
property“gtk-fontconfig-timestamp” guint
Timestamp of current fontconfig configuration.
Flags: Read / Write
Default value: 0
“gtk-icon-theme-name”
property“gtk-icon-theme-name” gchar *
Name of icon theme to use.
Flags: Read / Write
Default value: "Adwaita"
“gtk-im-module”
property“gtk-im-module” gchar *
Which IM (input method) module should be used by default. This is the input method that will be used if the user has not explicitly chosen another input method from the IM context menu. This also can be a colon-separated list of input methods, which GTK+ will try in turn until it finds one available on the system.
See GtkIMContext.
Flags: Read / Write
Default value: NULL
“gtk-key-theme-name”
property“gtk-key-theme-name” gchar *
Name of key theme to load.
Flags: Read / Write
Default value: NULL
“gtk-keynav-use-caret”
property“gtk-keynav-use-caret” gboolean
Whether GTK+ should make sure that text can be navigated with a caret, even if it is not editable. This is useful when using a screen reader.
Flags: Read / Write
Default value: FALSE
Since: 3.20
“gtk-label-select-on-focus”
property“gtk-label-select-on-focus” gboolean
Whether to select the contents of a selectable label when it is focused.
Flags: Read / Write
Default value: TRUE
“gtk-long-press-time”
property“gtk-long-press-time” guint
The time for a button or touch press to be considered a "long press".
Flags: Read / Write
Allowed values: <= G_MAXINT
Default value: 500
Since: 3.14
“gtk-modules”
property“gtk-modules” gchar *
List of currently active GTK modules.
Flags: Read / Write
Default value: NULL
“gtk-primary-button-warps-slider”
property“gtk-primary-button-warps-slider” gboolean
If the value of this setting is TRUE
, clicking the primary button in a
GtkRange trough will move the slider, and hence set the range’s value, to
the point that you clicked. If it is FALSE
, a primary click will cause the
slider/value to move by the range’s page-size towards the point clicked.
Whichever action you choose for the primary button, the other action will be available by holding Shift and primary-clicking, or (since GTK+ 3.22.25) clicking the middle mouse button.
Flags: Read / Write
Default value: TRUE
Since: 3.6
“gtk-print-backends”
property“gtk-print-backends” gchar *
A comma-separated list of print backends to use in the print dialog. Available print backends depend on the GTK+ installation, and may include "file", "cups", "lpr" or "papi".
Flags: Read / Write
Default value: "file,cups,cloudprint"
Since: 2.10
“gtk-print-preview-command”
property“gtk-print-preview-command” gchar *
A command to run for displaying the print preview. The command
should contain a %f
placeholder, which will get replaced by
the path to the pdf file. The command may also contain a %s
placeholder, which will get replaced by the path to a file
containing the print settings in the format produced by
gtk_print_settings_to_file()
.
The preview application is responsible for removing the pdf file and the print settings file when it is done.
Flags: Read / Write
Default value: "evince --unlink-tempfile --preview --print-settings %s %f"
Since: 2.10
“gtk-recent-files-enabled”
property“gtk-recent-files-enabled” gboolean
Whether GTK+ should keep track of items inside the recently used
resources list. If set to FALSE
, the list will always be empty.
Flags: Read / Write
Default value: TRUE
Since: 3.8
“gtk-recent-files-max-age”
property“gtk-recent-files-max-age” gint
The maximum age, in days, of the items inside the recently used resources list. Items older than this setting will be excised from the list. If set to 0, the list will always be empty; if set to -1, no item will be removed.
Flags: Read / Write
Allowed values: >= -1
Default value: 30
Since: 2.14
“gtk-shell-shows-app-menu”
property“gtk-shell-shows-app-menu” gboolean
Set to TRUE if the desktop environment is displaying the app menu, FALSE if the app should display it itself.
Flags: Read / Write
Default value: FALSE
“gtk-shell-shows-desktop”
property“gtk-shell-shows-desktop” gboolean
Set to TRUE if the desktop environment is displaying the desktop folder, FALSE if not.
Flags: Read / Write
Default value: TRUE
“gtk-shell-shows-menubar”
property“gtk-shell-shows-menubar” gboolean
Set to TRUE if the desktop environment is displaying the menubar, FALSE if the app should display it itself.
Flags: Read / Write
Default value: FALSE
“gtk-sound-theme-name”
property“gtk-sound-theme-name” gchar *
The XDG sound theme to use for event sounds.
See the Sound Theme Specifications for more information on event sounds and sound themes.
GTK+ itself does not support event sounds, you have to use a loadable module like the one that comes with libcanberra.
Flags: Read / Write
Default value: "freedesktop"
Since: 2.14
“gtk-split-cursor”
property“gtk-split-cursor” gboolean
Whether two cursors should be displayed for mixed left-to-right and right-to-left text.
Flags: Read / Write
Default value: TRUE
“gtk-theme-name”
property“gtk-theme-name” gchar *
Name of theme to load.
Flags: Read / Write
Default value: "Adwaita"
“gtk-titlebar-double-click”
property“gtk-titlebar-double-click” gchar *
This setting determines the action to take when a double-click occurs on the titlebar of client-side decorated windows.
Recognized actions are minimize, toggle-maximize, menu, lower or none.
Flags: Read / Write
Default value: "toggle-maximize"
Since: 3.14
“gtk-titlebar-middle-click”
property“gtk-titlebar-middle-click” gchar *
This setting determines the action to take when a middle-click occurs on the titlebar of client-side decorated windows.
Recognized actions are minimize, toggle-maximize, menu, lower or none.
Flags: Read / Write
Default value: "none"
Since: 3.14
“gtk-titlebar-right-click”
property“gtk-titlebar-right-click” gchar *
This setting determines the action to take when a right-click occurs on the titlebar of client-side decorated windows.
Recognized actions are minimize, toggle-maximize, menu, lower or none.
Flags: Read / Write
Default value: "menu"
Since: 3.14
“gtk-xft-antialias”
property“gtk-xft-antialias” gint
Whether to antialias Xft fonts; 0=no, 1=yes, -1=default.
Flags: Read / Write
Allowed values: [-1,1]
Default value: -1
“gtk-xft-dpi”
property“gtk-xft-dpi” gint
Resolution for Xft, in 1024 * dots/inch. -1 to use default value.
Flags: Read / Write
Allowed values: [-1,1048576]
Default value: -1
“gtk-xft-hinting”
property“gtk-xft-hinting” gint
Whether to hint Xft fonts; 0=no, 1=yes, -1=default.
Flags: Read / Write
Allowed values: [-1,1]
Default value: -1
“gtk-xft-hintstyle”
property“gtk-xft-hintstyle” gchar *
What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull.
Flags: Read / Write
Default value: NULL
“gtk-xft-rgba”
property“gtk-xft-rgba” gchar *
Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr.
Flags: Read / Write
Default value: NULL