[workspace.package] version = "0.1.0-beta.1" description = "A scrollable-tiling Wayland compositor" authors = ["Ivan Molodetskikh "] license = "GPL-3.0-or-later" edition = "2021" repository = "https://github.com/YaLTeR/niri" [workspace.dependencies] bitflags = "2.4.2" directories = "5.0.1" serde = { version = "1.0.195", features = ["derive"] } tracing = { version = "0.1.40", features = ["max_level_trace", "release_max_level_debug"] } tracy-client = { version = "0.16.5", default-features = false } [workspace.dependencies.smithay] git = "https://github.com/Smithay/smithay.git" # path = "../smithay" default-features = false [workspace.dependencies.smithay-drm-extras] git = "https://github.com/Smithay/smithay.git" # path = "../smithay/smithay-drm-extras" [package] name = "niri" version.workspace = true description.workspace = true authors.workspace = true license.workspace = true edition.workspace = true repository.workspace = true readme = "README.md" keywords = ["wayland", "compositor", "tiling", "smithay", "wm"] [dependencies] anyhow = { version = "1.0.79" } arrayvec = "0.7.4" async-channel = { version = "2.1.1", optional = true } async-io = { version = "1.13.0", optional = true } bitflags = "2.4.2" calloop = { version = "0.12.4", features = ["executor", "futures-io"] } clap = { version = "4.4.18", features = ["derive", "string"] } directories = "5.0.1" futures-util = { version = "0.3.30", default-features = false, features = ["std", "io"] } git-version = "0.3.9" keyframe = { version = "1.1.1", default-features = false } libc = "0.2.152" log = { version = "0.4.20", features = ["max_level_trace", "release_max_level_debug"] } logind-zbus = { version = "3.1.2", optional = true } niri-config = { version = "0.1.0-beta.1", path = "niri-config" } niri-ipc = { version = "0.1.0-beta.1", path = "niri-ipc" } notify-rust = { version = "4.10.0", optional = true } pangocairo = "0.18.0" pipewire = { version = "0.7.2", optional = true } png = "0.17.11" portable-atomic = { version = "1.6.0", default-features = false, features = ["float"] } profiling = "1.0.13" sd-notify = "0.4.1" serde.workspace = true serde_json = "1.0.111" smithay-drm-extras.workspace = true tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } tracing.workspace = true tracy-client.workspace = true url = { version = "2.5.0", optional = true } xcursor = "0.3.5" zbus = { version = "3.14.1", optional = true } [dependencies.smithay] workspace = true features = [ "backend_drm", "backend_egl", "backend_gbm", "backend_libinput", "backend_session_libseat", "backend_udev", "backend_winit", "desktop", "renderer_gl", "renderer_multi", "use_system_lib", "wayland_frontend", ] [dev-dependencies] proptest = "1.4.0" proptest-derive = "0.4.0" [features] default = ["dbus", "xdp-gnome-screencast"] # Enables DBus support (required for xdp-gnome and power button inhibiting). dbus = ["zbus", "logind-zbus", "async-channel", "async-io", "notify-rust", "url"] # Enables screencasting support through xdg-desktop-portal-gnome. xdp-gnome-screencast = ["dbus", "pipewire"] # Enables the Tracy profiler instrumentation. profile-with-tracy = ["profiling/profile-with-tracy", "tracy-client/default"] [profile.release] debug = "line-tables-only" overflow-checks = true lto = "thin" [profile.release.package.niri-config] # knuffel with chomsky generates a metric ton of debuginfo. debug = false [package.metadata.generate-rpm] version = "0.1.0~beta.1" assets = [ { source = "target/release/niri", dest = "/usr/bin/", mode = "755" }, { source = "resources/niri-session", dest = "/usr/bin/", mode = "755" }, { source = "resources/niri.desktop", dest = "/usr/share/wayland-sessions/", mode = "644" }, { source = "resources/niri-portals.conf", dest = "/usr/share/xdg-desktop-portal/", mode = "644" }, { source = "resources/niri.service", dest = "/usr/lib/systemd/user/", mode = "644" }, { source = "resources/niri-shutdown.target", dest = "/usr/lib/systemd/user/", mode = "644" }, ] [package.metadata.generate-rpm.requires] alacritty = "*"