[package]
name = "cosmic-settings"
version = "1.0.12"
edition = "2024"
license = "GPL-3.0-only"
publish = false

[build-dependencies]
xdgen = "0.1"

[dependencies]
accounts-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
anyhow = "1.0"
ashpd = { version = "0.12", default-features = false, features = [
    "tokio",
], optional = true }
chrono = "0.4"
jiff = "0.2"
clap = { version = "4.5.59", features = ["derive"] }
color-eyre = "0.6.5"
cosmic-bg-config.workspace = true
cosmic-comp-config = { workspace = true, optional = true }
cosmic-config.workspace = true
cosmic-dbus-networkmanager = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
nm-secret-agent-manager = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
cosmic-idle-config.workspace = true
cosmic-panel-config = { workspace = true, optional = true }
cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", optional = true }
cosmic-randr-shell.workspace = true
cosmic-randr = { workspace = true, optional = true }
cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true }
cosmic-settings-page = { path = "../page" }
cosmic-settings-accessibility-subscription = { path = "../subscriptions/accessibility", optional = true }
cosmic-settings-a11y-manager-subscription = { path = "../subscriptions/a11y-manager", optional = true }
cosmic-settings-airplane-mode-subscription = { path = "../subscriptions/airplane-mode", optional = true }
cosmic-settings-bluetooth-subscription = { path = "../subscriptions/bluetooth", optional = true }
cosmic-settings-network-manager-subscription = { path = "../subscriptions/network-manager", optional = true }
cosmic-settings-upower-subscription = { path = "../subscriptions/upower", optional = true }
cosmic-settings-sound-subscription = { path = "../subscriptions/sound", optional = true, features = [
    "auto-profile-init",
] }
cosmic-settings-wallpaper = { path = "../pages/wallpapers" }
cosmic-settings-daemon-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true }
derive_setters = "0.1.9"
dirs = "6.0.0"
eyre = "0.6.12"
freedesktop-desktop-entry = "0.8.1"
futures = "0.3.32"
hostname-validator = "1.1.1"
hostname1-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
i18n-embed-fl = "0.10.0"
image = { version = "0.25", default-features = false, features = [
    "jpeg",
    "png",
    "rayon",
    "webp",
    "hdr",
] }
indexmap = "2.13.0"
itertools = "0.14.0"
itoa = "1.0.17"
libcosmic.workspace = true
iced_winit.workspace = true
locale1 = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
sysinfo = { version = "=0.38.0", optional = true }
mime-apps = { package = "cosmic-mime-apps", git = "https://github.com/pop-os/cosmic-mime-apps", features = ["tokio"], optional = true }
notify = "8.2.0"
regex = "1.12.3"
ron = "0.12"
rust-embed = "8.11.0"
sctk = { workspace = true, optional = true }
secure-string = "0.3.0"
serde = { version = "1.0.228", features = ["derive"] }
slab = "0.4.12"
slotmap = "1.1.1"
static_init = "1.0.4"
sunrise = "3.0.0"
timedate-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
tokio = { workspace = true, features = ["fs", "io-util", "process", "sync"] }
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
udev = { version = "0.9.3", optional = true }
upower_dbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
bluez-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
url = "2.5.8"
xkb-data = "0.2.2"
xkeysym = { version = "0.2.1", optional = true }
zbus = { version = "5.13.2", default-features = false, features = [
    "tokio",
], optional = true }
zbus_polkit = { version = "5.0.0", optional = true }
fontdb = "0.23.0"
mime = "0.3.17"
rustix = { version = "1.1.3", features = ["process"] }
gettext-rs = { version = "0.7.7", features = [
    "gettext-system",
], optional = true }
num-traits = "0.2"
pwhash = "1"
which = "8.0.0"

[dependencies.icu]
version = "2.1.1"
features = ["compiled_data"]

[dependencies.i18n-embed]
version = "0.16.0"
features = ["fluent-system", "desktop-requester"]

# Contains region-handling logic for Linux
[dependencies.locales-rs]
git = "https://github.com/AerynOS/locales-rs"
optional = true

[features]
default = ["a11y", "linux", "single-instance", "wgpu", "systemd"]
gettext = ["dep:gettext-rs"]
systemd = []
openrc = []

# Default features for Linux
linux = [
    "cosmic-comp-config",
    "page-accessibility",
    "page-about",
    "page-bluetooth",
    "page-date",
    "page-default-apps",
    "page-display",
    "page-input",
    "page-legacy-applications",
    "page-networking",
    "page-power",
    "page-region",
    "page-sound",
    "page-users",
    "page-window-management",
    "page-workspaces",
    "xdg-portal",
    "wayland",
]

# Pages
page-accessibility = [
    "cosmic-comp-config",
    "dep:sctk",
    "dep:cosmic-protocols",
    "dep:cosmic-settings-config",
    "dep:cosmic-settings-daemon-config",
    "dep:cosmic-settings-accessibility-subscription",
    "dep:cosmic-settings-a11y-manager-subscription",
]
page-about = ["dep:hostname1-zbus", "dep:sysinfo", "dep:zbus"]
page-bluetooth = [
    "dep:cosmic-settings-bluetooth-subscription",
    "dep:zbus",
    "dep:bluez-zbus",
]
page-date = ["dep:timedate-zbus", "dep:zbus"]
page-default-apps = ["dep:cosmic-settings-config", "dep:mime-apps"]
page-display = ["dep:udev"]
page-input = [
    "cosmic-comp-config",
    "gettext",
    "dep:cosmic-settings-config",
    "dep:udev",
    "dep:xkeysym",
    "wayland",
]
page-legacy-applications = ["cosmic-comp-config", "dep:cosmic-randr"]
page-networking = [
    "dep:cosmic-settings-network-manager-subscription",
    "xdg-portal",
    "dep:cosmic-dbus-networkmanager",
    "dep:nm-secret-agent-manager",
    "dep:zbus",
]
page-power = ["dep:upower_dbus", "dep:zbus"]
page-region = [
    "gettext",
    "dep:locales-rs",
    "dep:locale1",
    "dep:zbus",
    "dep:accounts-zbus",
]
page-sound = ["dep:cosmic-settings-sound-subscription"]
page-users = ["xdg-portal", "dep:accounts-zbus", "dep:zbus", "dep:zbus_polkit"]
page-window-management = ["cosmic-comp-config", "dep:cosmic-settings-config"]
page-workspaces = ["cosmic-comp-config"]

# Other features
a11y = ["libcosmic/a11y"]
ashpd = ["dep:ashpd"]
cosmic-comp-config = ["dep:cosmic-comp-config"]
dbus-config = ["libcosmic/dbus-config", "cosmic-config/dbus"]
single-instance = ["libcosmic/single-instance"]
test = []
wayland = ["libcosmic/wayland", "dep:cosmic-panel-config", "dep:cosmic-randr", "iced_winit/cctk"]
wgpu = ["libcosmic/wgpu"]
xdg-portal = ["ashpd", "libcosmic/xdg-portal"]
