A GTK4 application and plugin framework library for the Singularity Desktop Environment.
libsingularity provides the base classes, widgets, theming, plugins infrastructure, and D-Bus contracts that Singularity apps share, aiming for a consistent look and feel across the desktop.
| Dependency | Version |
|---|---|
| GTK4 | ≥ 4.6 |
| gtk4-layer-shell (for shell widgets) | ≥ 0.7 |
| libgee-0.8 | ≥ 0.20 |
| json-glib-1.0 | ≥ 1.6 |
| libpeas-2 | ≥ 2.0 |
meson setup build
ninja -C build
sudo ninja -C build installlibsingularity reads desktop preferences from the org.singularity.desktop GSettings schema, to use a different one, override it before constructing any Application:
Singularity.Runtime.desktop_settings_schema = "org.mydesktop.shell";
var app = new Singularity.Application("org.myapp.MyApp");
app.run(args);The schema must expose the keys documented in Singularity.Runtime.desktop_settings_schema.
| Namespace | Contents |
|---|---|
Singularity |
Application, Environment, Plugin, PluginContext |
Singularity.Widgets |
Window, ToolBar, TabBar, Preferences, SearchEntry.. |
Singularity.Style |
StyleManager |
Singularity.Accessibility |
AccessibilityManager |
Singularity.Animation |
TimedAnimation |
Singularity.Core |
AppSettingsLoader, AppSettingsDescriptor |
Singularity.Shell |
ShellService (D-Bus interface) |
Singularity.Settings |
AppSettings, SettingsBuilder (D-Bus interface + builder) |
Singularity.App |
SettingsService (D-Bus interface) |