srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/wayland/Cargo.toml
blob: 7ca69e5f8f62a8f6b9c80f7b74644b24c05d12c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
[package]
name = "srdwm-wayland"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Wayland backend for srdwm: a smithay-based compositor"

[dependencies]
srdwm-core.workspace = true
srdwm-platform.workspace = true
log.workspace = true
thiserror.workspace = true
fontdue = "0.9"
# `udev/capture.rs`: builds a `pixman::Image` off-screen render target
# directly (`PixmanRenderer::create_buffer`/`Offscreen` hand one back, but
# nothing constructs one standalone). Pinned to the same version smithay
# itself depends on (see Cargo.lock), so both see one set of types.
pixman = "0.2.1"
# smithay 0.7 ships no wlr-screencopy helper, so `src/screencopy.rs`
# implements that protocol directly against these server bindings. Pinned to
# the same version smithay itself depends on, so both see one set of types.
wayland-protocols-wlr = { version = "0.3.12", features = ["server"] }
# `appmenu.rs`: `org_kde_kwin_appmenu` (global menu for Wayland-native
# clients - the equivalent of `xwayland.rs`'s X11-property reading, for
# windows that never go through XWayland at all). Same sibling-crate/no
# smithay-helper situation as the wlr protocols above, pinned the same way.
wayland-protocols-plasma = { version = "0.3.12", features = ["server"] }
# `ext-workspace-v1` (`src/workspace.rs`): staging-tree protocol, not
# wlr-specific - lives in the plain `wayland-protocols` crate instead, and
# (like the wlr protocol above) has no smithay helper to delegate to.
wayland-protocols = { version = "0.32.13", features = ["server", "staging"] }
serde.workspace = true
serde_json.workspace = true
# `gamma_control.rs`: `zwlr_gamma_control_v1.set_gamma` hands over a raw
# gamma table as a memory-mapped fd, not a value on the wire - already a
# transitive dependency (smithay's own shm handling uses it), just not
# previously used directly by this crate.
memmap2 = "0.9"
# `gtk_shell_protocol.rs`: `gtk_shell1`/`gtk_surface1` is a GTK-private
# protocol with no published `wayland-protocols-*` crate (unlike the wlr/
# staging ones above) - generated at compile time from a vendored copy of
# GTK's own XML instead. Pinned to the version `wayland-server` above
# actually resolves to, so both see the same wire types.
wayland-scanner = "0.31.10"
wayland-backend = { version = "0.3.15", features = ["server_system"] }
xcursor = "0.3.11"
# `native_lock.rs`: converts a pressed key's `Keysym` (from `KeysymHandle::
# modified_sym()`) into the printable character it represents, for the
# lock screen's own password field - smithay has no helper for this
# itself, only the raw `Keysym`. Pinned to the same version smithay itself
# depends on (with the same `wayland` feature), same reasoning as every
# other "pinned to smithay's own version" dependency above - both need to
# see one identical `Keysym` type, not two incompatible ones.
xkbcommon = { version = "0.8", features = ["wayland"] }
# Raster decoding for the lock screen's user avatar (`~/.face` and the
# AccountsService icon are conventionally JPEG or PNG, not SVG, so `resvg`
# below cannot read them). Default features off: this needs two codecs, not
# the whole format zoo, on a compositor that has to build on a low-spec
# machine.
image = { version = "0.25.10", default-features = false, features = ["jpeg", "png"] }
resvg = "0.48.1"
usvg = "0.48.1"
tiny-skia = "0.12.0"
# `native_lock.rs`'s own clock/date: `libc::localtime_r` gives the
# system's real local time (respecting `/etc/localtime`/`TZ`), which
# `std::time` alone has no way to do (`SystemTime` is UTC-only). Already
# a transitive dependency of this crate (smithay itself depends on it),
# just not previously used directly.
libc = "0.2"

[dependencies.smithay]
version = "0.7"
default-features = false
features = [
    "backend_winit",
    "backend_drm",
    "backend_libinput",
    "backend_udev",
    "backend_session_libseat",
    # `backend_egl`/`backend_gbm`: the udev backend's opt-in (`SRDWM_GPU=1`)
    # GPU render path - see `udev/gpu.rs`'s own module doc comment. Additive
    # to the existing `renderer_pixman` dumb-buffer path below, not a
    # replacement: that path stays the default for portability (a low-spec
    # machine or a VM with no GBM/3D support still needs it to work).
    "backend_egl",
    "backend_gbm",
    "renderer_gl",
    "renderer_pixman",
    "desktop",
    "wayland_frontend",
    "xwayland",
]

[dev-dependencies]
# Avatar decoding tests write a real image to a throwaway directory.
tempfile = "3"