[package]
edition = "2024"
rust-version = "1.94.0"
name = "native-theme"
version = "0.5.3"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cross-platform native theme detection and loading for Rust GUI applications"
homepage = "https://github.com/tiborgats/native-theme"
readme = "README.md"
keywords = [
"theme",
"gui",
"native",
"colors",
"desktop",
]
categories = [
"gui",
"config",
"os",
]
license = "MIT OR Apache-2.0 OR 0BSD"
repository = "https://github.com/tiborgats/native-theme"
[features]
kde = ["dep:configparser"]
linux = [
"kde",
"portal-tokio",
]
linux-async-io = [
"kde",
"portal-async-io",
]
lucide-icons = []
macos = [
"dep:objc2",
"dep:objc2-foundation",
"dep:objc2-app-kit",
"dep:block2",
]
material-icons = []
native = [
"linux",
"macos",
"windows",
]
native-async-io = [
"linux-async-io",
"macos",
"windows",
]
portal = ["dep:ashpd"]
portal-async-io = [
"portal",
"ashpd/async-io",
]
portal-tokio = [
"portal",
"ashpd/tokio",
]
svg-rasterize = ["dep:resvg"]
system-icons = [
"dep:freedesktop-icons",
"dep:objc2-core-foundation",
"dep:objc2-core-graphics",
"material-icons",
]
windows = ["dep:windows"]
[lib]
name = "native_theme"
path = "src/lib.rs"
[[test]]
name = "merge_behavior"
path = "tests/merge_behavior.rs"
[[test]]
name = "preset_loading"
path = "tests/preset_loading.rs"
[[test]]
name = "serde_roundtrip"
path = "tests/serde_roundtrip.rs"
[dependencies.resvg]
version = "0.47"
optional = true
default-features = false
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_with]
version = "3.18.0"
[dependencies.toml]
version = "1.1.0"
[dev-dependencies.serde_json]
version = "1.0.149"
[target.'cfg(target_os = "linux")'.dependencies.ashpd]
version = "0.13.9"
features = ["settings"]
optional = true
default-features = false
[target.'cfg(target_os = "linux")'.dependencies.configparser]
version = "3.1.0"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.freedesktop-icons]
version = "0.4"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.block2]
version = ">=0.6.1, <0.8.0"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6.4"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.3"
features = [
"NSColor",
"NSColorSpace",
"NSAppearance",
"NSFont",
"NSFontDescriptor",
"NSScroller",
"objc2-core-foundation",
"NSImage",
"NSImageRep",
"NSGraphicsContext",
"objc2-core-graphics",
"NSWorkspace",
"NSAccessibility",
]
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-foundation]
version = "0.3.2"
features = ["CFCGTypes"]
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-graphics]
version = "0.3.2"
features = [
"CGBitmapContext",
"CGColorSpace",
"CGContext",
"CGGeometry",
"CGImage",
]
optional = true
[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3"
features = [
"NSString",
"NSUserDefaults",
]
optional = true
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62"
features = [
"UI_ViewManagement",
"Win32_UI_WindowsAndMessaging",
"Win32_UI_Accessibility",
"Win32_UI_HiDpi",
"Win32_Graphics_Gdi",
"Win32_Graphics_Dwm",
"Win32_UI_Shell",
"Foundation_Metadata",
]
optional = true
default-features = false