/mundy

Reads various system-level accessibility and UI preferences ๐Ÿ‹

Primary LanguageRustApache License 2.0Apache-2.0

mundy ๐Ÿ‹

Docs Crate Version

Your friendly neighbourhood whale crate for reading various system-level accessibility and UI preferences across platforms ๐Ÿ‹

The following preferences are supported:

  • AccentColorโ€”The user's current system wide accent color preference.
  • ColorSchemeโ€”The user's preference for either light or dark mode.
  • Contrastโ€”The user's preferred contrast level.
  • ReducedMotionโ€”The user's reduced motion preference.
  • ReducedTransparencyโ€”The user's reduced transparency preference.
  • DoubleClickIntervalโ€”The maximum amount of time allowed between the first and second click.

Example

use mundy::{Preferences, Interest};
use futures_lite::StreamExt as _;

// Interest tells mundy which preferences it should monitor for you.
// use `Interest::All` if you're interested in all preferences.
let mut stream = Preferences::stream(Interest::AccentColor);

async {
    while let Some(preferences) = stream.next().await {
        eprintln!("accent color: {:?}", preferences.accent_color);
    }
};

License

Licensed under the Apache License, Version 2.0 (license.txt or http://www.apache.org/licenses/LICENSE-2.0)

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.