[package] name = "libcosmic" version = "0.1.0" edition = "2021" rust-version = "1.80" [lib] name = "cosmic" [features] default = ["multi-window", "a11y"] # Accessibility support a11y = ["iced/a11y", "iced_accessibility"] # Enable about widget about = ["desktop", "dep:license"] # Builds support for animated images animated-image = ["dep:async-fs", "image/gif", "tokio?/io-util", "tokio?/fs"] # XXX autosize should not be used on winit windows unless dialogs autosize = [] applet = [ "autosize", "winit", "wayland", "tokio", "cosmic-panel-config", "ron", "multi-window", ] applet-token = ["applet"] # Use the cosmic-settings-daemon for config handling dbus-config = ["cosmic-config/dbus", "dep:zbus", "cosmic-settings-daemon"] # Debug features debug = ["iced/debug"] # Enables pipewire support in ashpd, if ashpd is enabled pipewire = ["ashpd?/pipewire"] # Enables process spawning helper process = ["dep:libc", "dep:rustix"] # Use rfd for file dialogs rfd = ["dep:rfd"] # Enables desktop files helpers desktop = [ "process", "dep:freedesktop-desktop-entry", "dep:mime", "dep:shlex", "tokio?/io-util", "tokio?/net", ] # Enables launching desktop files inside systemd scopes desktop-systemd-scope = ["desktop", "dep:zbus"] # Enables keycode serialization serde-keycode = ["iced_core/serde"] # Prevents multiple separate process instances. single-instance = ["dep:zbus", "ron"] # smol async runtime smol = ["dep:smol", "iced/smol", "zbus?/async-io", "rfd?/async-std"] tokio = [ "dep:tokio", "ashpd?/tokio", "iced/tokio", "rfd?/tokio", "zbus?/tokio", "cosmic-config/tokio", ] # Tokio async runtime # Wayland window support wayland = [ "ashpd?/wayland", "autosize", "iced_runtime/wayland", "iced/wayland", "iced_winit/wayland", "cctk", "surface-message", ] surface-message = [] # multi-window support multi-window = ["iced/multi-window"] # Render with wgpu wgpu = ["iced/wgpu", "iced_wgpu"] # X11 window support via winit winit = ["iced/winit", "iced_winit"] winit_debug = ["winit", "debug"] winit_tokio = ["winit", "tokio"] winit_wgpu = ["winit", "wgpu"] # Enables XDG portal integrations xdg-portal = ["ashpd"] qr_code = ["iced/qr_code"] markdown = ["iced/markdown"] async-std = [ "dep:async-std", "ashpd/async-std", "rfd?/async-std", "zbus?/async-io", "iced/async-std", ] [dependencies] apply = "0.3.0" ashpd = { version = "0.9.1", default-features = false, optional = true } async-fs = { version = "2.1", optional = true } async-std = { version = "1.10", optional = true } cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "178eb0b", optional = true } chrono = "0.4.35" cosmic-config = { path = "cosmic-config" } cosmic-settings-daemon = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true } css-color = "0.2.5" derive_setters = "0.1.5" image = { version = "0.25.5", default-features = false, features = [ "jpeg", "png", ] } lazy_static = "1.4.0" libc = { version = "0.2.155", optional = true } license = { version = "3.5.1", optional = true } mime = { version = "0.3.17", optional = true } palette = "0.7.3" rfd = { version = "0.14.0", default-features = false, features = [ "xdg-portal", ], optional = true } rustix = { version = "0.38.34", features = [ "pipe", "process", ], optional = true } serde = { version = "1.0.180", features = ["derive"] } slotmap = "1.0.6" smol = { version = "2.0.0", optional = true } thiserror = "1.0.44" tokio = { version = "1.24.2", optional = true } tracing = "0.1.41" unicode-segmentation = "1.6" url = "2.4.0" zbus = { version = "4.2.1", default-features = false, optional = true } [target.'cfg(unix)'.dependencies] freedesktop-icons = { package = "cosmic-freedesktop-icons", git = "https://github.com/pop-os/freedesktop-icons" } freedesktop-desktop-entry = { version = "0.7.9", optional = true } shlex = { version = "1.3.0", optional = true } [dependencies.cosmic-theme] path = "cosmic-theme" [dependencies.iced] path = "./iced" default-features = false features = [ "advanced", "image-without-codecs", "lazy", "svg", "web-colors", "tiny-skia", ] [dependencies.iced_runtime] path = "./iced/runtime" [dependencies.iced_renderer] path = "./iced/renderer" [dependencies.iced_core] path = "./iced/core" features = ["serde"] [dependencies.iced_widget] path = "./iced/widget" features = ["canvas"] [dependencies.iced_futures] path = "./iced/futures" [dependencies.iced_accessibility] path = "./iced/accessibility" optional = true [dependencies.iced_tiny_skia] path = "./iced/tiny_skia" [dependencies.iced_winit] path = "./iced/winit" optional = true [dependencies.iced_wgpu] path = "./iced/wgpu" optional = true [dependencies.cosmic-panel-config] git = "https://github.com/pop-os/cosmic-panel" optional = true [dependencies.ron] version = "0.8" optional = true [dependencies.taffy] git = "https://github.com/DioxusLabs/taffy" rev = "7781c70" features = ["grid"] [workspace] members = [ "cosmic-config", "cosmic-config-derive", "cosmic-theme", "examples/*", ] exclude = ["iced"] [workspace.dependencies] dirs = "5.0.1" [patch."https://github.com/pop-os/libcosmic"] libcosmic = { path = "./" } # FIXME update winit deps where necessary to use this # [patch.crates-io] [patch."https://github.com/pop-os/winit.git"] # winit = { git = "https://github.com/rust-windowing/winit.git", rev = "241b7a80bba96c91fa3901729cd5dec66abb9be4" } # winit = { path = "../../winit" }