Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
98 lines (86 loc) · 3.12 KB
/
Copy pathCargo.toml
File metadata and controls
98 lines (86 loc) · 3.12 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
[package]
name = "slidr"
version = "0.4.0"
edition = "2021"
description = "Cross-platform Arduino-based audio/macro pad controller"
license = "MIT"
[profile.release]
# Tuned for fast compiles (CI ≈ 2-3 min warm) with negligible runtime cost for
# this app: no fat LTO, parallel codegen. Bump back to lto="fat"/codegen-units=1
# only if you need the last few % of runtime perf in shipped binaries.
opt-level = 2
lto = false
codegen-units = 16
strip = true
panic = "abort"
[profile.dev]
opt-level = 1
[build-dependencies]
slint-build = "1.16"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
embed-resource = "3"
[dependencies]
# Core
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# HTTP client for button/slider "API call" actions and LED "API" state-check
# conditions (blocking, rustls TLS).
ureq = "2"
parking_lot = "0.12"
crossbeam-channel = "0.5"
anyhow = "1"
thiserror = "1"
log = "0.4"
env_logger = "0.11"
once_cell = "1"
dirs = "5"
# Serial + hotplug
serialport = "4"
# UI — Slint with Material style
slint = { version = "1.16", default-features = false, features = ["std", "compat-1-2", "backend-winit", "renderer-femtovg"] }
# Build timestamp injected at compile time
chrono = { version = "0.4", default-features = false, features = ["clock"] }
# Key simulation (cross-platform).
# Linux: the `x11rb` backend (pure Rust XTEST) instead of the default `xdo`
# one. `xdo` is `#[link(name = "xdo")]`, which makes libxdo.so.3 a hard
# load-time dependency of the shipped binary - it would refuse to start on any
# machine without xdotool installed. `x11rb` has the same reach (X11 +
# XWayland) with no native library. Native Wayland clients are unreachable
# either way; `keys.rs` warns about that at startup.
enigo = { version = "0.2", default-features = false, features = ["x11rb"] }
# Cross-platform "open file/url"
open = "5"
# Native file dialog for "Browse…" buttons
rfd = "0.15"
[target.'cfg(target_os = "windows")'.dependencies]
# Direct dep so the `#[interface]` macro's `::windows_core` paths resolve; pinned
# to the same version `windows` re-exports as `windows::core` (shared types).
windows-core = "0.58"
windows = { version = "0.58", features = [
"Win32_Foundation",
"Win32_Media_Audio",
"Win32_Media_Audio_Endpoints",
"Win32_Security",
"Win32_System_Com",
"Win32_System_Console",
"Win32_System_Com_StructuredStorage",
"Win32_System_Variant",
"Win32_System_Registry",
"Win32_UI_Shell",
"Win32_UI_Shell_PropertiesSystem",
"Win32_Devices_FunctionDiscovery",
"Win32_System_ProcessStatus",
"Win32_System_Threading",
"Win32_System_Diagnostics_ToolHelp",
# Restoring/raising our own window from the tray (EnumWindows + SetForegroundWindow).
"Win32_UI_WindowsAndMessaging",
# Clipboard for the "copy this value" buttons (src/clipboard.rs).
"Win32_System_DataExchange",
"Win32_System_Memory",
# OS media session (SMTC) as an LED state source — "music is playing".
"Media_Control",
"Foundation",
"Foundation_Collections",
] }
tray-icon = "0.19"
image = { version = "0.25", default-features = false, features = ["ico"] }