Skip to main content

Module vault

Module vault 

Source
Expand description

vault contains the necessary utilities/APTs for various common tasks required when creating a custom shell. This includes apps, pipewire, PAM, Mpris etc among other things.

For now, this module doesn't contain much utilities. As, more common methods are added, docs will expand to include examples and panic cases.

The whole module is divided into structs representing these utilities and their corresponding traits (if it applies). The Services is used to bind and initialise the traits. Why do most utilities have a trait counterpart?

Traits are made so as to represent actions when occured from the other server/ application side. For example, An AppSelector is used and initialised for usage by your shell but new_app_added was called when the coming of a new desktop entry is to be notified. Some utilities like AppSelector are more user intensive and less trait intensive(i.e. there are not many cases when server will ping, hence not much methods in traits). On the other hand implementations like that of notifications (via NotificationHandler) are majorly trait intensive. Then, utilities like audio handling (via PipeWireHandler and AudioManager) have equal chances of being accessed from anywhere.

As a general tip, the best way to implement traits is to stores weak reference to your widget windows on slint side in structs and then implement these traits on it.

Structs§

AppData
Stores the relevent data for an application. Used internally by AppSelector.
AppSelector
AppSelector stores the data for each application with possible actions. Known bugs include failing to open flatpak apps in certain cases and failing to find icons of apps in certain cases both of which will be fixed in coming releases.
AudioManager
Services

Traits§

AppHandler
MprisHandler
NotificationHandler
PipeWireHandler