Skip to main content

runlatch_core/
lib.rs

1//! `runlatch-core` — the data model, provider abstraction, built-in providers, and
2//! registry that power [runlatch](https://github.com/sh1ftr/runlatch), a modular
3//! Linux autostart manager.
4//!
5//! Linux autostart is spread across systemd units, XDG `.desktop` files, and
6//! DE-specific session configs. This crate unifies them behind one trait,
7//! [`AutostartProvider`], aggregated by a [`Registry`]. New backends (OpenRC, KDE,
8//! GNOME, …) are added by implementing the trait — no changes to the core.
9//!
10//! See [`provider`] for why the trait is `async`, and the crate README for a
11//! walkthrough on writing a provider.
12
13#[cfg(not(target_os = "linux"))]
14compile_error!("runlatch only supports Linux");
15
16pub mod desktop_file;
17pub mod model;
18pub mod provider;
19pub mod providers;
20pub mod registry;
21
22pub use model::{AutostartEntry, Scope};
23pub use provider::AutostartProvider;
24pub use providers::{SystemdProvider, XdgAutostartProvider};
25pub use registry::{AggregateResult, ProviderError, Registry};