Skip to main content

Config

Struct Config 

Source
pub struct Config {
Show 46 fields pub language: Option<String>, pub theme: Option<String>, pub places_named: bool, pub screen_colours: Option<bool>, pub calmer_colours: Option<String>, pub notes_root: Option<String>, pub share_projects: bool, pub known_senders: Option<String>, pub blocked_senders: Option<String>, pub history_weeks: Option<u32>, pub fetch_minutes: Option<u32>, pub notes_folder: Option<String>, pub filed_words: Option<Vec<String>>, pub reading: Reading, pub mail: MailSettings, pub spam: SpamSettings, pub tasks: TaskSettings, pub planning: PlanningSettings, pub agenda: AgendaSettings, pub map: MapSettings, pub contacts: ContactSettings, pub words: Table, pub reminders: ReminderSettings, pub notify: NotifySettings, pub attention: Option<Settings>, pub free_time: FreeTimeSettings, pub pause: PauseSettings, pub dnd: DndSettings, pub letters: LetterSettings, pub routines: Vec<Routine>, pub weather: WeatherSettings, pub bitwarden: BitwardenSettings, pub github: GithubSettings, pub invoice: InvoiceSettings, pub mcp: McpSettings, pub accounts: Vec<Account>, pub sites: Vec<Account>, pub site_order: Vec<String>, pub accounts_off: Vec<Account>, pub windows: Vec<AdminWindow>, pub office_hours: Vec<AdminWindow>, pub time_off: Vec<TimeOff>, pub quiet: QuietSettings, pub porch: PorchSettings, pub reach: ReachSettings, pub calls: CallSettings,
}

Fields§

§language: Option<String>

The language of what Sioul says (“fr”, “en”); the session’s language if unset.

§theme: Option<String>

“light” or “dark”; the system’s colours if unset.

§places_named: bool

The places, on the left of the window, with their names beside their icons: for whoever reads words more easily than icons. Their icons alone if unset.

§screen_colours: Option<bool>

colour: the sites shown in the screen’s own colours, read from its colour profile (docs/colour.md); on unless set to false.

§calmer_colours: Option<String>

colour: loud colours on sites softened: “little”, “more”; off if unset.

§notes_root: Option<String>

The notes folder: your Markdown files, with beside them your projects, budgets and papers. Its key in the file, case_store, is its first name, kept so that every configuration reads as before.

§share_projects: bool

Projects, budgets and the bank’s movements (sioul-projects.toml, sioul-budgets.toml, sioul-bank.toml) travel sealed with the sharing between your devices, for a notes folder no sync carries; else they travel with that folder (docs/database.md).

§known_senders: Option<String>

A text file of senders you know: one address or @domain per line.

§blocked_senders: Option<String>

A text file of senders you blocked, in the same form.

§history_weeks: Option<u32>

How far back mail and the agenda reach, in weeks; 0 for everything. Raising it fetches the older mail the next sync does not have yet.

§fetch_minutes: Option<u32>

Minutes between two fetches of the folders a server does not push (IDLE keeps the inbox current).

§notes_folder: Option<String>

Where new notes go in the notes folder.

§filed_words: Option<Vec<String>>

Words that make a sender automatic, its mail filed: “no-reply”, “notification”… The whole list, as older settings wrote it; now [words.senders.automatic] (words), which wins once written.

§reading: Reading

How long text reads: the family, size and line spacing of notes, mail and task notes.

§mail: MailSettings§spam: SpamSettings

Sioul’s own spam filter: what it does with its verdicts, how sure it must be ([spam]).

§tasks: TaskSettings§planning: PlanningSettings

What a day holds, as the plan learns it ([planning], docs/capacity.md).

§agenda: AgendaSettings§map: MapSettings§contacts: ContactSettings

Contacts: the country of phone numbers written without one.

§words: Table

The words Sioul looks for ([words], docs/words.md): the languages and countries whose packs are read, and your changes to each list (words::Words::of), kept as written.

§reminders: ReminderSettings

Reminders before dates: events, dates asked, waits, payments (docs/reminders.md).

§notify: NotifySettings

What each kind of notification did at each time, before [attention] ([notify]): read once, to seed it (attention::seeded).

§attention: Option<Settings>

What reaches you, and when: a row per who on each channel and per kind ([attention], attention::Attention, docs/attention.md); none while never written, the older keys seeding it.

§free_time: FreeTimeSettings

Free time, the global pause ([free_time], docs/pauses.md).

§pause: PauseSettings

The pause, set up on a calm day ([pause], docs/pauses.md).

§dnd: DndSettings

Do-not-disturb on every device: what turns it on, who gets through ([dnd], docs/do-not-disturb.md).

§letters: LetterSettings

Paper letters: where their scans arrive (docs/porch.md).

§routines: Vec<Routine>

Routines: timed steps played one at a time (docs/tasks.md).

§weather: WeatherSettings

The place of the weather in the status line; none, no weather.

§bitwarden: BitwardenSettings

Your Bitwarden account, to fill sites’ forms; read here, nothing installed.

§github: GithubSettings

GitHub’s issues and pull requests as tasks: off unless asked (docs/github.md).

§invoice: InvoiceSettings

Who sends your invoices, and what an hour costs by default.

§mcp: McpSettings

What an AI agent connected to sioul mcp may use ([mcp], docs/mcp.md).

§accounts: Vec<Account>

Your accounts, those switched on (Config::load sets the others aside).

§sites: Vec<Account>

Sites kept open in Sioul (docs/sites.md): not accounts, they hold no sign-in of Sioul’s. Older files kept them as [[account]] of kind “portal”: Config::load reads them here, migrate_sites moves them.

§site_order: Vec<String>

The order the Sites page shows them in, by their ids, as last chosen on any device (move_site): your devices share each site apart (format 2, docs/database.md), and this order with them. Sites it does not name come after, in the file’s order.

§accounts_off: Vec<Account>

Accounts switched off: kept with their settings, neither synced nor shown.

§windows: Vec<AdminWindow>§office_hours: Vec<AdminWindow>

When offices are open, for tasks that need one; Monday to Friday 9:00–17:00 when unsaid.

§time_off: Vec<TimeOff>

Days off: holidays, sick leave; quiet from the first day to the last.

§quiet: QuietSettings§porch: PorchSettings

The Porch’s own choices (docs/porch.md).

§reach: ReachSettings

Who may reach you when, on each channel, before [attention]: read once, to seed it (attention::seeded).

§calls: CallSettings

The camera, microphone and speaker calls in sites use (docs/sites.md).

Implementations§

Source§

impl Config

Source

pub fn working_hours(&self) -> Vec<AdminWindow>

Working hours, for quiet time: the days written with an end (by the week’s editor). Older admin windows, a start and minutes, keep opening the Porch and leave quiet time off until working hours are set.

Source

pub fn week_hours(&self) -> Vec<AdminWindow>

The week’s hours: work’s and admin’s (docs/areas.md). Leisure is every other time: the free time an older Sioul set as hours is read and left aside, kept in the file.

Source

pub fn office_hours(&self) -> Vec<AdminWindow>

When offices are open: the configuration’s, else Monday to Friday 9:00–17:00.

Source§

impl Config

Source

pub fn task_kinds(&self, tr: &Translator) -> Vec<(String, String)>

The kinds of task, id and name: yours as you named them, else Sioul’s in your language.

Source§

impl Config

Source

pub fn account_of(&self, file: &Path) -> Option<&Account>

The mail account a stored message belongs to, from where its file is.

Source

pub fn load(path: &Path) -> Result<Config, String>

Reads a configuration file; each account takes the general history unless it has its own. Sites written as accounts by older files join the sites; accounts switched off are set aside.

Source

pub fn settle(&mut self)

What load does once the file is read: sites apart, accounts switched off apart.

Source

pub fn site(&self, id: &str) -> Option<&Account>

The site with this id.

Source

pub fn every_account(&self) -> impl Iterator<Item = &Account>

Every account, those switched off too, in the file’s order of each.

Source

pub fn history_days(&self) -> Option<i64>

How far back mail and the agenda reach, in days; None for everything.

Source

pub fn notes_root_path(&self) -> Option<PathBuf>

The notes folder, with ~ expanded. On Android, unset: a folder of the app’s own storage, which no other app, nor any sync, reads.

Source

pub fn known_senders_path(&self) -> PathBuf

The known senders’ file: known_senders, else known-senders.txt next to the configuration.

Source

pub fn blocked_senders_path(&self) -> PathBuf

The blocked senders’ file: blocked_senders, else blocked-senders.txt next to the configuration.

Source

pub fn safe_senders_path(&self) -> PathBuf

Who is safe (by default, their mail reaches you at any time): safe-senders.txt next to the configuration.

Source

pub fn restricted_senders_path(&self) -> PathBuf

Who is restricted (by default, their mail comes in working hours only): restricted-senders.txt next to the configuration.

Source

pub fn neutral_senders_path(&self) -> PathBuf

Who is neutral by your word, where a broader safe or blocked entry would name them otherwise.

Source

pub fn all_trusted_ids(&self) -> Vec<String>

Every authserv-id of every account, for messages read outside an account.

Source

pub fn account(&self, id: &str) -> Option<&Account>

The account with this id.

Source

pub fn mail_sources(&self) -> Vec<Source>

The mail folders of every account that has mail on disk (portals have none). Sioul’s own checks are trusted first, then the provider’s.

Source

pub fn free_id(&self, address: &str) -> String

An id for a new account from its address, unused yet: “example”, then “example-someone”.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Config

Source§

fn default() -> Config

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Config

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V