mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-21 02:01:55 +07:00
1ab1737653
Some distros like Fedora build libinput with plugin autoloading, however by default, the compositor needs to explicitly load them. Plus, we need to load manually if we want to also load from $XDG_CONFIG_HOME/libinput/plugins. Ref. https://gitlab.gnome.org/GNOME/mutter/-/commit/c5b12fbf6313d51f3279901bb561023e56181e36
189 lines
6.1 KiB
TOML
189 lines
6.1 KiB
TOML
[workspace]
|
|
members = [
|
|
"niri-config",
|
|
"niri-ipc",
|
|
"niri-visual-tests",
|
|
]
|
|
|
|
[workspace.package]
|
|
version = "25.11.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.85"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1.0.100"
|
|
bitflags = "2.10.0"
|
|
clap = { version = "4.5.53", features = ["derive"] }
|
|
insta = "1.44.3"
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = "1.0.145"
|
|
tracing = { version = "0.1.43", 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.1", optional = true }
|
|
accesskit_unix = { version = "0.17.2", 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.24.0", features = ["derive"] }
|
|
calloop = { version = "0.14.3", features = ["executor", "futures-io", "signals"] }
|
|
clap = { workspace = true, features = ["string"] }
|
|
clap_complete = "4.5.61"
|
|
clap_complete_nushell = "4.5.10"
|
|
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.9"
|
|
input = { version = "0.9.1", features = ["libinput_1_21"] }
|
|
keyframe = { version = "1.1.1", default-features = false }
|
|
libc = "0.2.178"
|
|
libdisplay-info = "0.3.0"
|
|
log = { version = "0.4.29", features = ["max_level_trace", "release_max_level_debug"] }
|
|
niri-config = { version = "25.11.0", path = "niri-config" }
|
|
niri-ipc = { version = "25.11.0", path = "niri-ipc", features = ["clap"] }
|
|
ordered-float = "5.1.0"
|
|
pango = { version = "0.21.5", features = ["v1_44"] }
|
|
pangocairo = "0.21.5"
|
|
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
|
|
wayland-backend = "0.3.11"
|
|
wayland-scanner = "0.31.7"
|
|
xcursor = "0.3.10"
|
|
zbus = { version = "5.12.0", 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_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.9.0"
|
|
proptest-derive = { version = "0.7.0", features = ["boxed_union"] }
|
|
rayon = "1.11.0"
|
|
wayland-client = "0.31.11"
|
|
xshell = "0.2.7"
|
|
|
|
[build-dependencies]
|
|
pkg-config = "0.3.32"
|
|
|
|
[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: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.11"
|
|
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"],
|
|
]
|