Class Settings

All Implemented Interfaces:
StyleProvider, Proxy

@Generated("org.javagi.JavaGI") public class Settings extends GObject implements StyleProvider

Provides a mechanism to share global settings between applications.

GTK relies on the platform-specific API for getting desktop-wide settings.

On Wayland, the settings are obtained via a settings portal that is part of the Linux desktop APIs for application.

On the X window system, this sharing is realized by an XSettings manager.

On macOS, the settings are obtained from NSUserDefaults.

In the absence of these sharing mechanisms, 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.

There is one GtkSettings instance per display. It can be obtained with getForDisplay(Display), but in many cases, it is more convenient to use Widget.getSettings().

  • Constructor Details

    • Settings

      public Settings(MemorySegment address)
      Create a Settings instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • Settings

      public Settings()
      Create a new Settings.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the Settings class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected Settings asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class GObject
      Returns:
      the instance as if it were its parent type
    • getDefault

      public static @Nullable Settings getDefault()

      Gets the GtkSettings object for the default display, creating it if necessary.

      See getForDisplay(Display).

      Returns:
      a GtkSettings object. If there is no default display, then returns null.
    • getForDisplay

      public static Settings getForDisplay(Display display)
      Gets the GtkSettings object for display, creating it if necessary.
      Parameters:
      display - a GdkDisplay
      Returns:
      a GtkSettings object
    • resetProperty

      public void resetProperty(String 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.

      Parameters:
      name - the name of the setting to reset
    • builder

      public static Settings.Builder<? extends Settings.Builder> builder()
      A Settings.Builder object constructs a Settings with the specified properties. Use the various set...() methods to set properties, and finish construction with Settings.Builder.build().
      Returns:
      the builder object