-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
129 lines (105 loc) · 3.23 KB
/
Copy pathCargo.toml
File metadata and controls
129 lines (105 loc) · 3.23 KB
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[package]
name = "xdg-desktop-portal-generic"
version = "0.5.0"
edition = "2024"
rust-version = "1.87"
license = "MIT OR Apache-2.0"
description = "Generic XDG Desktop Portal backend for Wayland compositors, by Lamco Development LLC"
repository = "https://github.com/lamco-admin/xdg-desktop-portal-generic"
homepage = "https://lamco.ai/open-source/xdg-desktop-portal-generic/"
keywords = ["wayland", "portal", "screencopy", "input", "clipboard"]
categories = ["os::unix-apis", "api-bindings"]
documentation = "https://docs.rs/xdg-desktop-portal-generic"
readme = "README.md"
exclude = [
"/.github/",
"/.githooks/",
"deny.toml",
".editorconfig",
"Makefile",
"clippy.toml",
"about.toml",
"about.hbs",
]
[badges]
maintenance = { status = "actively-developed" }
[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
# D-Bus service implementation
zbus = { version = "5.2", features = ["tokio"] }
zvariant = "5.2"
# Async runtime
tokio = { version = "1.35", features = ["full"] }
# EIS protocol (input injection)
reis = "0.7"
enumflags2 = "0.7"
# Wayland client (for wlr virtual input backend)
wayland-client = "0.31"
wayland-protocols = { version = "0.32", features = ["client", "staging"] }
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
wayland-protocols-misc = { version = "0.3", features = ["client"] }
# PipeWire (screen capture)
pipewire = "0.10"
libspa = "0.10"
# Error handling
anyhow = "1.0"
thiserror = "2.0"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Utilities
futures = "0.3"
uuid = { version = "1.11", features = ["v4"] }
# XKB keymap handling
xkbcommon = { version = "0.9", features = ["wayland"] }
# Image encoding (for Screenshot portal)
png = "0.18"
# System
nix = { version = "0.31", features = ["socket", "poll", "fs", "mman", "time"] }
libc = "0.2"
# Optional: kernel-level input injection via /dev/uinput
evdev = { version = "0.13", optional = true }
[features]
# Kernel-level pointer injection via /dev/uinput.
# Fallback for compositors without wlr-virtual-pointer (e.g., COSMIC).
# Requires /dev/uinput access (input group membership).
uinput = ["dep:evdev"]
[dev-dependencies]
tempfile = "3.8"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
[lints.rust]
unsafe_code = "deny"
unsafe_op_in_unsafe_fn = "deny"
elided_lifetimes_in_paths = "warn"
unreachable_pub = "warn"
[lints.clippy]
pedantic = { priority = -1, level = "deny" }
allow_attributes = "deny"
# Pedantic lints that are false-positive-prone or low-value for this project
missing_errors_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
doc_markdown = "allow"
similar_names = "allow"
items_after_statements = "allow"
missing_panics_doc = "allow"
unused_async = "allow"
struct_excessive_bools = "allow"
# Wayland/D-Bus protocol code requires numeric casts extensively
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
cast_lossless = "allow"
cast_precision_loss = "allow"
# Functional lints
wildcard_imports = "deny"
large_futures = "warn"
# Progressive (start as warn, upgrade to deny when clean)
unwrap_used = "warn"
expect_used = "warn"