Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libsingularity

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.

Requirements

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

Building

meson setup build
ninja -C build
sudo ninja -C build install

Configuration

libsingularity 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.

Overview Namespace(s)

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)

About

Singularity Desktop application framework library — widgets, contracts, animation, style

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages