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: boolThe 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.
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: ReadingHow long text reads: the family, size and line spacing of notes, mail and task notes.
mail: MailSettings§spam: SpamSettingsSioul’s own spam filter: what it does with its verdicts, how sure it must be ([spam]).
tasks: TaskSettings§planning: PlanningSettingsWhat a day holds, as the plan learns it ([planning], docs/capacity.md).
agenda: AgendaSettings§map: MapSettings§contacts: ContactSettingsContacts: the country of phone numbers written without one.
words: TableThe 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: ReminderSettingsReminders before dates: events, dates asked, waits, payments (docs/reminders.md).
notify: NotifySettingsWhat 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: FreeTimeSettingsFree time, the global pause ([free_time], docs/pauses.md).
pause: PauseSettingsThe pause, set up on a calm day ([pause], docs/pauses.md).
dnd: DndSettingsDo-not-disturb on every device: what turns it on, who gets through ([dnd], docs/do-not-disturb.md).
letters: LetterSettingsPaper letters: where their scans arrive (docs/porch.md).
routines: Vec<Routine>Routines: timed steps played one at a time (docs/tasks.md).
weather: WeatherSettingsThe place of the weather in the status line; none, no weather.
bitwarden: BitwardenSettingsYour Bitwarden account, to fill sites’ forms; read here, nothing installed.
github: GithubSettingsGitHub’s issues and pull requests as tasks: off unless asked (docs/github.md).
invoice: InvoiceSettingsWho sends your invoices, and what an hour costs by default.
mcp: McpSettingsWhat 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: PorchSettingsThe Porch’s own choices (docs/porch.md).
reach: ReachSettingsWho may reach you when, on each channel, before [attention]: read
once, to seed it (attention::seeded).
calls: CallSettingsThe camera, microphone and speaker calls in sites use (docs/sites.md).
Implementations§
Source§impl Config
impl Config
Sourcepub fn working_hours(&self) -> Vec<AdminWindow>
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.
Sourcepub fn week_hours(&self) -> Vec<AdminWindow>
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.
Sourcepub fn office_hours(&self) -> Vec<AdminWindow>
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
impl Config
Sourcepub fn task_kinds(&self, tr: &Translator) -> Vec<(String, String)>
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
impl Config
Sourcepub fn account_of(&self, file: &Path) -> Option<&Account>
pub fn account_of(&self, file: &Path) -> Option<&Account>
The mail account a stored message belongs to, from where its file is.
Sourcepub fn load(path: &Path) -> Result<Config, String>
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.
Sourcepub fn settle(&mut self)
pub fn settle(&mut self)
What load does once the file is read: sites apart, accounts switched off apart.
Sourcepub fn every_account(&self) -> impl Iterator<Item = &Account>
pub fn every_account(&self) -> impl Iterator<Item = &Account>
Every account, those switched off too, in the file’s order of each.
Sourcepub fn history_days(&self) -> Option<i64>
pub fn history_days(&self) -> Option<i64>
How far back mail and the agenda reach, in days; None for everything.
Sourcepub fn notes_root_path(&self) -> Option<PathBuf>
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.
Sourcepub fn known_senders_path(&self) -> PathBuf
pub fn known_senders_path(&self) -> PathBuf
The known senders’ file: known_senders, else known-senders.txt next to the configuration.
Sourcepub fn blocked_senders_path(&self) -> PathBuf
pub fn blocked_senders_path(&self) -> PathBuf
The blocked senders’ file: blocked_senders, else blocked-senders.txt next to the configuration.
Sourcepub fn safe_senders_path(&self) -> PathBuf
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.
Sourcepub fn restricted_senders_path(&self) -> PathBuf
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.
Sourcepub fn neutral_senders_path(&self) -> PathBuf
pub fn neutral_senders_path(&self) -> PathBuf
Who is neutral by your word, where a broader safe or blocked entry would name them otherwise.
Sourcepub fn all_trusted_ids(&self) -> Vec<String>
pub fn all_trusted_ids(&self) -> Vec<String>
Every authserv-id of every account, for messages read outside an account.
Sourcepub fn mail_sources(&self) -> Vec<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.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
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
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.