mirror of
https://github.com/devmobasa/wayscriber.git
synced 2026-11-01 07:36:42 +01:00
Put identifiers and Wayland protocol names in doc comments in backticks
(`wl_output`, `zwp_tablet_v2`). Product names that docs write plainly
(GLib, HarfBuzz, HiDPI, JetBrains, MSBuild, StatusNotifierItem, VSync)
go in `doc-valid-idents` in clippy.toml, next to Clippy's default list.
Mechanical, with the lint enabled in Cargo.toml:
cargo clippy --fix --workspace --all-targets --all-features
cargo clippy --fix --workspace --all-targets --no-default-features
cargo fmt --all
Two comments that the fix could not mark up cleanly were reworded by
hand: the surface module summary and the zoom-chip invariant.
119 lines
3.9 KiB
TOML
119 lines
3.9 KiB
TOML
[package]
|
|
name = "wayscriber"
|
|
version = "0.9.27"
|
|
edition = "2024"
|
|
rust-version = "1.98.1"
|
|
description = "Screen annotation tool for Wayland compositors"
|
|
homepage = "https://wayscriber.com"
|
|
repository = "https://github.com/devmobasa/wayscriber"
|
|
default-run = "wayscriber"
|
|
|
|
[workspace]
|
|
members = ["configurator"]
|
|
default-members = ["."]
|
|
|
|
[workspace.lints.clippy]
|
|
cognitive_complexity = "warn"
|
|
# Rules from the Google Rust style guide that Clippy can check. CI promotes
|
|
# these warnings to errors; clippy.toml holds their settings.
|
|
absolute_paths = "warn"
|
|
enum_glob_use = "warn"
|
|
fn_params_excessive_bools = "warn"
|
|
missing_assert_message = "warn"
|
|
missing_panics_doc = "warn"
|
|
must_use_candidate = "warn"
|
|
needless_for_each = "warn"
|
|
needless_pass_by_value = "warn"
|
|
redundant_clone = "warn"
|
|
ref_option = "warn"
|
|
return_self_not_must_use = "warn"
|
|
string_add = "warn"
|
|
undocumented_unsafe_blocks = "warn"
|
|
unnecessary_safety_comment = "warn"
|
|
unwrap_used = "warn"
|
|
wildcard_imports = "warn"
|
|
# Pedantic lints, adopted one at a time. Most of them have machine-applicable
|
|
# fixes, so `cargo clippy --fix` can apply them.
|
|
cast_lossless = "warn"
|
|
doc_markdown = "warn"
|
|
map_unwrap_or = "warn"
|
|
uninlined_format_args = "warn"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
# Wayland
|
|
wayland-client = "0.31"
|
|
wayland-protocols = { version = "0.32", features = ["client", "staging", "unstable"] }
|
|
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
|
|
smithay-client-toolkit = { version = "0.20", default-features = false, features = ["calloop", "xkbcommon"] }
|
|
|
|
# Cairo for drawing
|
|
cairo-rs = { version = "0.22", features = ["png", "pdf"] }
|
|
# Already required by Cairo/Pango; protocol v2 also uses its SHA-256 checksum API.
|
|
glib = { version = "0.22", default-features = false }
|
|
|
|
# Pango for advanced text rendering and font support
|
|
pango = "0.22"
|
|
pangocairo = "0.22"
|
|
|
|
# Utils
|
|
log = { version = "0.4", features = ["std"] }
|
|
anyhow = "1.0"
|
|
toml = "1.1"
|
|
toml_edit = "0.25"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_ignored = "0.1"
|
|
schemars = { version = "1.2", features = ["derive"], optional = true }
|
|
libc = "0.2"
|
|
# Securely created, self-deleting temporary files for the OCR engine handoff.
|
|
tempfile = "3"
|
|
flate2 = "1.0"
|
|
zune-jpeg = "0.5"
|
|
# Grapheme/word segmentation for the text-editor caret and selection.
|
|
unicode-segmentation = "1"
|
|
|
|
# Daemon mode
|
|
ksni = { version = "0.3", optional = true }
|
|
tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "time", "sync"] }
|
|
|
|
# Screenshot capture
|
|
zbus = { version = "5.0", optional = true, default-features = false, features = ["tokio"] }
|
|
getrandom = { version = "0.3", optional = true }
|
|
serde_json = "1.0"
|
|
png = "0.18"
|
|
|
|
# GTK4 toolbar frontend (layer-shell compositors)
|
|
gtk4 = { version = "0.11", optional = true, features = ["v4_12"] }
|
|
gtk4-layer-shell = { version = "0.8", optional = true }
|
|
|
|
# System-wide input capture for the input HUD (opt-in `input-monitor`)
|
|
input = { version = "0.10", optional = true }
|
|
udev = { version = "0.9", optional = true }
|
|
xkbcommon = { version = "0.8", optional = true }
|
|
|
|
[build-dependencies]
|
|
|
|
[features]
|
|
# Optional Wayland tablet/stylus input support (zwp_tablet_v2)
|
|
tablet-input = []
|
|
# D-Bus dependent functionality (portal capture, notifications, tray)
|
|
dbus = ["zbus"]
|
|
portal = ["dbus", "dep:getrandom"]
|
|
tray = ["dbus", "ksni"]
|
|
config-schema = ["dep:schemars"]
|
|
# GTK4-rendered toolbars on layer-shell compositors; the built-in Cairo
|
|
# toolbars remain compiled in as the fallback for everything else.
|
|
toolbar-gtk = ["dep:gtk4", "dep:gtk4-layer-shell"]
|
|
# System-wide keystroke/click capture for the input HUD. Opt-in: it links
|
|
# libinput/libudev and needs read access to /dev/input (usually `input` group
|
|
# membership), so it stays out of the default set.
|
|
input-monitor = ["dep:input", "dep:udev", "dep:xkbcommon"]
|
|
default = ["tablet-input", "portal", "tray", "toolbar-gtk"]
|
|
|
|
[[bin]]
|
|
name = "dump_config_schema"
|
|
path = "src/bin/dump_config_schema.rs"
|
|
required-features = ["config-schema"]
|