2024-02-06 09:01:26 +04:00
|
|
|
[workspace]
|
2025-01-02 09:52:51 +03:00
|
|
|
members = [
|
|
|
|
|
"niri-config",
|
|
|
|
|
"niri-ipc",
|
|
|
|
|
"niri-visual-tests",
|
|
|
|
|
]
|
2024-02-06 09:01:26 +04:00
|
|
|
|
2024-01-07 09:07:22 +04:00
|
|
|
[workspace.package]
|
2025-05-17 13:48:29 +03:00
|
|
|
version = "25.5.0"
|
2023-08-13 12:46:53 +04:00
|
|
|
description = "A scrollable-tiling Wayland compositor"
|
2023-08-09 11:03:38 +04:00
|
|
|
authors = ["Ivan Molodetskikh <yalterz@gmail.com>"]
|
2023-08-08 16:34:01 +04:00
|
|
|
license = "GPL-3.0-or-later"
|
2023-08-09 11:03:38 +04:00
|
|
|
edition = "2021"
|
2024-01-07 09:07:22 +04:00
|
|
|
repository = "https://github.com/YaLTeR/niri"
|
2025-02-05 12:53:42 +03:00
|
|
|
rust-version = "1.80.1"
|
2024-01-07 09:07:22 +04:00
|
|
|
|
|
|
|
|
[workspace.dependencies]
|
2025-04-28 10:50:11 +00:00
|
|
|
anyhow = "1.0.98"
|
2025-05-13 17:12:34 +03:00
|
|
|
bitflags = "2.9.1"
|
2025-05-12 09:25:21 +00:00
|
|
|
clap = { version = "4.5.38", features = ["derive"] }
|
2025-04-30 08:24:15 +00:00
|
|
|
insta = "1.43.1"
|
2025-03-11 09:22:26 +03:00
|
|
|
serde = { version = "1.0.219", features = ["derive"] }
|
2025-03-03 09:34:22 +00:00
|
|
|
serde_json = "1.0.140"
|
2025-01-02 08:04:59 +00:00
|
|
|
tracing = { version = "0.1.41", features = ["max_level_trace", "release_max_level_debug"] }
|
2025-01-02 11:50:34 +03:00
|
|
|
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
|
|
|
|
|
tracy-client = { version = "0.18.0", default-features = false }
|
2024-01-07 09:07:22 +04:00
|
|
|
|
|
|
|
|
[workspace.dependencies.smithay]
|
2025-01-25 11:50:58 +03:00
|
|
|
# version = "0.4.1"
|
|
|
|
|
git = "https://github.com/Smithay/smithay.git"
|
2024-01-07 09:07:22 +04:00
|
|
|
# path = "../smithay"
|
|
|
|
|
default-features = false
|
|
|
|
|
|
|
|
|
|
[workspace.dependencies.smithay-drm-extras]
|
2025-01-25 11:50:58 +03:00
|
|
|
# version = "0.1.0"
|
|
|
|
|
git = "https://github.com/Smithay/smithay.git"
|
2024-01-07 09:07:22 +04:00
|
|
|
# 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
|
2024-09-13 15:05:41 +03:00
|
|
|
rust-version.workspace = true
|
2023-08-07 19:44:40 +04:00
|
|
|
|
2023-11-25 11:24:35 +04:00
|
|
|
readme = "README.md"
|
|
|
|
|
keywords = ["wayland", "compositor", "tiling", "smithay", "wm"]
|
|
|
|
|
|
2023-08-07 19:44:40 +04:00
|
|
|
[dependencies]
|
2024-02-06 09:01:26 +04:00
|
|
|
anyhow.workspace = true
|
2024-09-13 15:05:33 +03:00
|
|
|
arrayvec = "0.7.6"
|
2024-05-16 18:04:18 +04:00
|
|
|
async-channel = "2.3.1"
|
2024-12-10 01:58:26 +02:00
|
|
|
async-io = { version = "2.4.0", optional = true }
|
2024-06-09 08:46:43 +03:00
|
|
|
atomic = "0.6.0"
|
2024-03-28 15:46:43 +04:00
|
|
|
bitflags.workspace = true
|
2025-05-13 17:12:34 +03:00
|
|
|
bytemuck = { version = "1.23.0", features = ["derive"] }
|
2025-01-02 08:04:59 +00:00
|
|
|
calloop = { version = "0.14.2", features = ["executor", "futures-io"] }
|
2024-02-10 09:33:32 +04:00
|
|
|
clap = { workspace = true, features = ["string"] }
|
2025-05-09 08:45:34 +00:00
|
|
|
clap_complete = "4.5.50"
|
2025-01-13 08:46:43 +00:00
|
|
|
directories = "6.0.0"
|
2024-09-30 15:27:36 +03:00
|
|
|
drm-ffi = "0.9.0"
|
2025-01-02 08:04:59 +00:00
|
|
|
fastrand = "2.3.0"
|
2024-10-20 20:07:48 +03:00
|
|
|
futures-util = { version = "0.3.31", default-features = false, features = ["std", "io"] }
|
2023-12-19 21:06:49 +04:00
|
|
|
git-version = "0.3.9"
|
2025-05-06 08:25:39 +00:00
|
|
|
glam = "0.30.3"
|
2024-09-30 15:27:36 +03:00
|
|
|
input = { version = "0.9.1", features = ["libinput_1_21"] }
|
2023-08-14 15:54:11 +04:00
|
|
|
keyframe = { version = "1.1.1", default-features = false }
|
2025-04-28 10:50:11 +00:00
|
|
|
libc = "0.2.172"
|
2025-01-08 08:55:36 +00:00
|
|
|
libdisplay-info = "0.2.2"
|
2025-03-27 08:56:12 +00:00
|
|
|
log = { version = "0.4.27", features = ["max_level_trace", "release_max_level_debug"] }
|
2025-05-17 13:48:29 +03:00
|
|
|
niri-config = { version = "25.5.0", path = "niri-config" }
|
|
|
|
|
niri-ipc = { version = "25.5.0", path = "niri-ipc", features = ["clap"] }
|
2025-02-18 09:14:02 +00:00
|
|
|
ordered-float = "5.0.0"
|
2025-05-13 17:12:34 +03:00
|
|
|
pango = { version = "0.20.10", features = ["v1_44"] }
|
|
|
|
|
pangocairo = "0.20.10"
|
2024-08-06 15:13:58 +03:00
|
|
|
pipewire = { git = "https://gitlab.freedesktop.org/pipewire/pipewire-rs.git", optional = true, features = ["v0_3_33"] }
|
2025-01-02 08:04:59 +00:00
|
|
|
png = "0.17.16"
|
2025-02-26 09:08:20 +00:00
|
|
|
portable-atomic = { version = "1.11.0", default-features = false, features = ["float"] }
|
2024-10-20 20:07:48 +03:00
|
|
|
profiling = "1.0.16"
|
2025-01-20 09:11:38 +00:00
|
|
|
sd-notify = "0.4.5"
|
2024-01-17 10:38:32 +04:00
|
|
|
serde.workspace = true
|
2024-04-19 15:02:32 +02:00
|
|
|
serde_json.workspace = true
|
2024-01-07 09:07:22 +04:00
|
|
|
smithay-drm-extras.workspace = true
|
2024-02-06 09:01:26 +04:00
|
|
|
tracing-subscriber.workspace = true
|
2024-01-07 09:07:22 +04:00
|
|
|
tracing.workspace = true
|
2024-01-16 12:53:01 +04:00
|
|
|
tracy-client.workspace = true
|
2025-01-02 08:04:59 +00:00
|
|
|
url = { version = "2.5.4", optional = true }
|
2025-04-30 08:24:15 +00:00
|
|
|
wayland-backend = "0.3.10"
|
2025-02-03 09:04:25 +00:00
|
|
|
wayland-scanner = "0.31.6"
|
2024-09-13 15:05:33 +03:00
|
|
|
xcursor = "0.3.8"
|
2025-05-13 17:12:34 +03:00
|
|
|
zbus = { version = "5.7.0", optional = true }
|
2023-08-07 19:44:40 +04:00
|
|
|
|
|
|
|
|
[dependencies.smithay]
|
2024-01-07 09:07:22 +04:00
|
|
|
workspace = true
|
2023-08-07 19:44:40 +04:00
|
|
|
features = [
|
2023-08-09 11:03:38 +04:00
|
|
|
"backend_drm",
|
|
|
|
|
"backend_egl",
|
|
|
|
|
"backend_gbm",
|
|
|
|
|
"backend_libinput",
|
|
|
|
|
"backend_session_libseat",
|
|
|
|
|
"backend_udev",
|
2023-08-07 19:44:40 +04:00
|
|
|
"backend_winit",
|
|
|
|
|
"desktop",
|
2023-08-09 11:03:38 +04:00
|
|
|
"renderer_gl",
|
2024-01-23 20:44:47 +01:00
|
|
|
"renderer_pixman",
|
2023-08-09 11:03:38 +04:00
|
|
|
"renderer_multi",
|
|
|
|
|
"use_system_lib",
|
|
|
|
|
"wayland_frontend",
|
2023-08-07 19:44:40 +04:00
|
|
|
]
|
2023-08-10 14:12:20 +04:00
|
|
|
|
2023-09-27 13:35:02 +04:00
|
|
|
[dev-dependencies]
|
2024-06-17 09:16:28 +03:00
|
|
|
approx = "0.5.1"
|
2024-12-20 08:49:18 +03:00
|
|
|
calloop-wayland-source = "0.4.0"
|
2024-12-20 08:49:18 +03:00
|
|
|
insta.workspace = true
|
2025-01-02 08:04:59 +00:00
|
|
|
proptest = "1.6.0"
|
|
|
|
|
proptest-derive = { version = "0.5.1", features = ["boxed_union"] }
|
2024-12-20 08:49:18 +03:00
|
|
|
rayon = "1.10.0"
|
2025-04-30 08:24:15 +00:00
|
|
|
wayland-client = "0.31.10"
|
2025-01-02 08:04:59 +00:00
|
|
|
xshell = "0.2.7"
|
2023-09-27 13:35:02 +04:00
|
|
|
|
2023-08-10 14:12:20 +04:00
|
|
|
[features]
|
2024-02-20 13:54:16 +04:00
|
|
|
default = ["dbus", "systemd", "xdp-gnome-screencast"]
|
|
|
|
|
# Enables D-Bus support (serve various freedesktop and GNOME interfaces, power button handling).
|
2025-01-02 09:30:56 +03:00
|
|
|
dbus = ["dep:zbus", "dep:async-io", "dep:url"]
|
2024-02-20 13:54:16 +04:00
|
|
|
# Enables systemd integration (global environment, apps in transient scopes).
|
|
|
|
|
systemd = ["dbus"]
|
2023-09-30 09:58:34 +04:00
|
|
|
# Enables screencasting support through xdg-desktop-portal-gnome.
|
2023-10-10 10:25:26 +04:00
|
|
|
xdp-gnome-screencast = ["dbus", "pipewire"]
|
2023-09-30 09:58:34 +04:00
|
|
|
# Enables the Tracy profiler instrumentation.
|
2023-08-10 14:12:20 +04:00
|
|
|
profile-with-tracy = ["profiling/profile-with-tracy", "tracy-client/default"]
|
2024-07-27 09:51:44 +03:00
|
|
|
# Enables the on-demand Tracy profiler instrumentation.
|
|
|
|
|
profile-with-tracy-ondemand = ["profile-with-tracy", "tracy-client/ondemand", "tracy-client/manual-lifetime"]
|
2024-11-02 10:05:28 +03:00
|
|
|
# Enables Tracy allocation profiling.
|
|
|
|
|
profile-with-tracy-allocations = ["profile-with-tracy"]
|
2024-03-06 21:01:00 +04:00
|
|
|
# Enables dinit integration (global environment).
|
2024-03-06 22:27:43 +05:30
|
|
|
dinit = []
|
2023-08-10 14:12:20 +04:00
|
|
|
|
2023-08-14 15:22:10 +04:00
|
|
|
[profile.release]
|
2023-11-06 09:18:50 +04:00
|
|
|
debug = "line-tables-only"
|
2023-08-14 15:22:10 +04:00
|
|
|
overflow-checks = true
|
2023-11-06 08:47:05 +04:00
|
|
|
lto = "thin"
|
2023-08-27 16:23:02 +04:00
|
|
|
|
2024-01-07 09:28:50 +04:00
|
|
|
[profile.release.package.niri-config]
|
|
|
|
|
# knuffel with chomsky generates a metric ton of debuginfo.
|
|
|
|
|
debug = false
|
|
|
|
|
|
2024-12-20 08:49:18 +03:00
|
|
|
[profile.dev.package]
|
|
|
|
|
insta.opt-level = 3
|
|
|
|
|
similar.opt-level = 3
|
|
|
|
|
|
2023-08-27 16:23:02 +04:00
|
|
|
[package.metadata.generate-rpm]
|
2025-02-21 09:03:36 +03:00
|
|
|
version = "25.02"
|
2023-08-27 16:23:02 +04:00
|
|
|
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" },
|
2023-11-09 14:52:04 +04:00
|
|
|
{ source = "resources/niri-portals.conf", dest = "/usr/share/xdg-desktop-portal/", mode = "644" },
|
2023-08-27 16:23:02 +04:00
|
|
|
{ source = "resources/niri.service", dest = "/usr/lib/systemd/user/", mode = "644" },
|
2023-11-25 11:01:23 +04:00
|
|
|
{ source = "resources/niri-shutdown.target", dest = "/usr/lib/systemd/user/", mode = "644" },
|
2023-08-27 16:23:02 +04:00
|
|
|
]
|
|
|
|
|
[package.metadata.generate-rpm.requires]
|
|
|
|
|
alacritty = "*"
|
2024-03-05 13:40:57 +04:00
|
|
|
fuzzel = "*"
|
2024-07-09 18:12:30 +01:00
|
|
|
|
|
|
|
|
[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"],
|
|
|
|
|
]
|