Files
niri/Cargo.toml

233 lines
6.3 KiB
TOML

[workspace]
members = ["niri-config", "niri-ipc", "niri-visual-tests"]
[workspace.package]
version = "25.8.0"
description = "A scrollable-tiling Wayland compositor"
authors = ["Ivan Molodetskikh <yalterz@gmail.com>"]
license = "GPL-3.0-or-later"
edition = "2021"
repository = "https://github.com/YaLTeR/niri"
rust-version = "1.82.0"
[workspace.dependencies]
anyhow = "1.0.100"
bitflags = "2.9.4"
clap = { version = "4.5.48", features = ["derive"] }
insta = "1.43.2"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
tracing = { version = "0.1.41", features = [
"max_level_trace",
"release_max_level_debug",
] }
# 0.3.20 filters out all ANSI codes to "fix a security issue" while also breaking
# everyone who relied on them for color output, with no fallback available.
# https://github.com/tokio-rs/tracing/issues/3378
tracing-subscriber = { version = "=0.3.19", features = ["env-filter"] }
tracy-client = { version = "0.18.3", default-features = false }
[workspace.dependencies.smithay]
# version = "0.4.1"
git = "https://github.com/Smithay/smithay.git"
# path = "../smithay"
default-features = false
[workspace.dependencies.smithay-drm-extras]
# version = "0.1.0"
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
rust-version.workspace = true
readme = "README.md"
keywords = ["wayland", "compositor", "tiling", "smithay", "wm"]
[dependencies]
accesskit = { version = "0.21.0", optional = true }
accesskit_unix = { version = "0.17.0", optional = true }
anyhow.workspace = true
arrayvec = "0.7.6"
async-channel = "2.5.0"
async-io = { version = "2.6.0", optional = true }
atomic = "0.6.1"
bitflags.workspace = true
bytemuck = { version = "1.23.2", features = ["derive"] }
calloop = { version = "0.14.3", features = [
"executor",
"futures-io",
"signals",
] }
clap = { workspace = true, features = ["string"] }
clap_complete = "4.5.58"
clap_complete_nushell = "4.5.8"
directories = "6.0.0"
drm-ffi = "0.9.0"
fastrand = "2.3.0"
futures-util = { version = "0.3.31", default-features = false, features = [
"std",
"io",
] }
git-version = "0.3.9"
glam = "0.30.8"
input = { version = "0.9.1", features = ["libinput_1_21"] }
keyframe = { version = "1.1.1", default-features = false }
libc = "0.2.176"
libdisplay-info = "0.3.0"
log = { version = "0.4.28", features = [
"max_level_trace",
"release_max_level_debug",
] }
niri-config = { version = "25.8.0", path = "niri-config" }
niri-ipc = { version = "25.8.0", path = "niri-ipc", features = ["clap"] }
ordered-float = "5.1.0"
pango = { version = "0.20.12", features = ["v1_44"] }
pangocairo = "0.20.10"
pipewire = { version = "0.9.2", optional = true, features = ["v0_3_33"] }
png = "0.18.0"
portable-atomic = { version = "1.11.1", default-features = false, features = [
"float",
] }
profiling = "1.0.17"
sd-notify = "0.4.5"
serde.workspace = true
serde_json.workspace = true
smithay-drm-extras.workspace = true
tracing-subscriber.workspace = true
tracing.workspace = true
tracy-client.workspace = true
url = { version = "2.5.7", optional = true }
wayland-backend = "0.3.11"
wayland-scanner = "0.31.7"
xcursor = "0.3.10"
zbus = { version = "5.11.0", optional = true }
itertools = "0.14.0"
[dependencies.smithay]
workspace = true
features = [
"backend_drm",
"backend_egl",
"backend_gbm",
"backend_libinput",
"backend_session_libseat",
"backend_udev",
"backend_winit",
"desktop",
"renderer_gl",
"renderer_pixman",
"renderer_multi",
"use_system_lib",
"wayland_frontend",
]
[dev-dependencies]
approx = "0.5.1"
calloop-wayland-source = "0.4.1"
insta.workspace = true
proptest = "1.8.0"
proptest-derive = { version = "0.6.0", features = ["boxed_union"] }
rayon = "1.11.0"
wayland-client = "0.31.11"
xshell = "0.2.7"
[features]
default = ["dbus", "systemd", "xdp-gnome-screencast"]
# Enables D-Bus support (serve various freedesktop and GNOME interfaces, accessibility tree, power button handling).
dbus = [
"dep:zbus",
"dep:async-io",
"dep:url",
"dep:accesskit",
"dep:accesskit_unix",
]
# Enables systemd integration (global environment, apps in transient scopes).
systemd = ["dbus"]
# 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"]
# Enables the on-demand Tracy profiler instrumentation.
profile-with-tracy-ondemand = [
"profile-with-tracy",
"tracy-client/ondemand",
"tracy-client/manual-lifetime",
]
# Enables Tracy allocation profiling.
profile-with-tracy-allocations = ["profile-with-tracy"]
# Enables dinit integration (global environment).
dinit = []
[lints.clippy]
new_without_default = "allow"
[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
[profile.dev.package]
insta.opt-level = 3
similar.opt-level = 3
[package.metadata.generate-rpm]
version = "25.08"
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 = "*"
fuzzel = "*"
[package.metadata.deb]
depends = "alacritty, fuzzel"
assets = [
[
"target/release/niri",
"usr/bin/",
"755",
],
[
"resources/niri-session",
"usr/bin/",
"755",
],
[
"resources/niri.desktop",
"/usr/share/wayland-sessions/",
"644",
],
[
"resources/niri-portals.conf",
"/usr/share/xdg-desktop-portal/",
"644",
],
[
"resources/niri.service",
"/usr/lib/systemd/user/",
"644",
],
[
"resources/niri-shutdown.target",
"/usr/lib/systemd/user/",
"644",
],
]