a lightweight, interval-based utility to combat digital strain through "Ma" (intentional pauses) for the eyes and body.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: setup cargo and dependencies

+49
+45
Cargo.toml
··· 2 2 name = "ioma" 3 3 version = "0.1.0" 4 4 edition = "2024" 5 + description = "Low-resource break reminder with enforced or gentle modes" 5 6 6 7 [dependencies] 8 + # UI 9 + slint = "1" 10 + 11 + # System tray + menu 12 + tray-icon = "0.19" 13 + muda = "0.15" 14 + 15 + # Async runtime 16 + tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "macros"] } 17 + 18 + # Config 19 + serde = { version = "1", features = ["derive"] } 20 + toml = "0.8" 21 + 22 + # Password hashing 23 + argon2 = "0.5" 24 + rand_core = { version = "0.6", features = ["getrandom"] } 25 + 26 + # Audio 27 + rodio = { version = "0.19", default-features = false, features = ["wav", "vorbis"] } 28 + 29 + # Autostart 30 + auto-launch = "0.5" 31 + 32 + # Logging 33 + log = "0.4" 34 + env_logger = "0.11" 35 + 36 + # Misc 37 + dirs = "5" 38 + thiserror = "1" 39 + anyhow = "1" 40 + 41 + [target.'cfg(target_os = "linux")'.dependencies] 42 + zbus = { version = "4", default-features = false, features = ["tokio"] } 43 + 44 + [target.'cfg(target_os = "windows")'.dependencies] 45 + windows = { version = "0.58", features = [ 46 + "Win32_UI_Input_KeyboardAndMouse", 47 + "Win32_Foundation", 48 + ] } 49 + 50 + [build-dependencies] 51 + slint-build = "1"
+4
build.rs
··· 1 + fn main() { 2 + slint_build::compile("ui/overlay.slint").unwrap(); 3 + slint_build::compile("ui/settings.slint").unwrap(); 4 + }