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.
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.
- Audio
Manager - Services