a lightweight, interval-based utility to combat digital strain through "Ma" (intentional pauses) for the eyes and body.
1[package]
2name = "ioma"
3version = "0.1.0"
4edition = "2024"
5description = "Low-resource break reminder with enforced or gentle modes"
6
7[dependencies]
8# UI
9slint = { version = "1", features = ["unstable-winit-030"] }
10fontdue = "0.7"
11
12# System tray + menu
13tray-icon = "0.19"
14muda = "0.15"
15
16# Async runtime
17tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "macros"] }
18
19# Config
20serde = { version = "1", features = ["derive"] }
21toml = "0.8"
22
23# Password hashing
24argon2 = "0.5"
25rand_core = { version = "0.6", features = ["getrandom"] }
26
27# Audio
28rodio = { version = "0.19", default-features = false, features = ["wav", "vorbis"] }
29
30# Autostart
31auto-launch = "0.5"
32
33# Logging
34log = "0.4"
35env_logger = "0.11"
36
37# Image loading (for tray icons)
38image = { version = "0.25", default-features = false, features = ["png"] }
39
40# Misc
41dirs = "5"
42thiserror = "1"
43anyhow = "1"
44open = "5"
45display-info = "0.5"
46i-slint-backend-selector = "1.16.1"
47
48[target.'cfg(target_os = "linux")'.dependencies]
49zbus = { version = "4", default-features = false, features = ["tokio"] }
50gtk = "0.18"
51wayland-client = "0.31"
52wayland-protocols-wlr = { version = "0.2", features = ["client"] }
53
54[target.'cfg(target_os = "windows")'.dependencies]
55windows = { version = "0.58", features = [
56 "Win32_UI_Input_KeyboardAndMouse",
57 "Win32_Foundation",
58 "Win32_System_SystemInformation",
59 "Win32_System_Registry",
60] }
61
62[build-dependencies]
63slint-build = "1"