Files
komorebi/Cargo.toml
T
LGUG2Z f4715a3465 feat(e2e-agent): the macOS verbs on the shared protocol, in the one agent crate
Move the macOS agent into komorebi-e2e-agent as macos.rs, answering the protocol of protocol.rs
with its own verbs (os_windows, displays, activate, minimize, close, move; a window is found by
its title), and remove the separate komorebi-macos-e2e crate that had copied the protocol. There
is one binary name and one port on every platform, so the host has one client and one description
of the protocol.

AppKit is for the main thread, so the macOS agent serves one connection at a time on it, where
the Windows one serves each on a thread. A spawned program on macOS gets a standard input that
stays open, as the test window leaves when its input closes. The crate is built for macOS and
Windows now and stubbed on Linux, as komorebi-testwin is.
2026-11-06 14:40:49 -08:00

143 lines
3.7 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/komorebi-windows",
"crates/komorebi-client",
"komorebi-gui",
"crates/komorebi-backend",
"crates/komorebi-collections",
"crates/komorebi-core",
"crates/komorebi-config",
"crates/komorebi-settings",
"crates/komorebi-layouts",
"crates/komorebi-scrolling",
"komorebic",
"komorebi",
"komorebic-no-console",
"crates/komorebic-core",
"komorebi-bar",
"crates/komorebi-themes",
"crates/komorebi-protocol",
"crates/komorebi-transport",
"crates/komorebi-bar-core",
"komorebi-shortcuts",
"crates/komorebi-e2e-agent",
"crates/komorebi-testwin",
# the Linux and macOS backends are not built by a bare cargo command, they are selected with -p;
# `default-members` below is the Windows set that a bare cargo command builds
"crates/komorebi-linux",
"crates/komorebi-macos",
"crates/komorebi-macos-core",
"crates/komorebi-hotkeys",
"crates/komorebi-version",
"komorebi-recorder",
# a development tool (it writes the Nix options of the modules): built and tested by its own checks,
# not a default member, so that a bare `cargo build --release` never builds it and no release ships it
"crates/schemars-nixgen",
]
default-members = [
"crates/komorebi-windows",
"crates/komorebi-client",
"komorebi-gui",
"crates/komorebi-backend",
"crates/komorebi-collections",
"crates/komorebi-core",
"crates/komorebi-config",
"crates/komorebi-settings",
"crates/komorebi-layouts",
"crates/komorebi-scrolling",
"komorebic",
"komorebi",
"komorebic-no-console",
"crates/komorebic-core",
"komorebi-bar",
"crates/komorebi-themes",
"crates/komorebi-protocol",
"crates/komorebi-transport",
"crates/komorebi-bar-core",
"komorebi-shortcuts",
"crates/komorebi-e2e-agent",
"crates/komorebi-testwin",
"komorebi-recorder",
]
[workspace.package]
version = "0.2.0-dev"
[workspace.dependencies]
clap = { version = "4", features = ["derive", "wrap_help"] }
chrono-tz = "0.10"
chrono = "0.4"
crossbeam-channel = "0.5"
crossbeam-utils = "0.8"
color-eyre = "0.6"
eframe = "0.33"
egui_extras = "0.33"
dirs = "6"
dunce = "1"
hotwatch = "0.5"
schemars = "1.1"
lazy_static = "1"
serde = { version = "1", features = ["derive"] }
serde_json = { package = "serde_json_lenient", version = "0.2" }
serde_yaml = "0.9"
strum = { version = "0.28", features = ["derive"] }
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
parking_lot = "0.12"
paste = "1"
sysinfo = "0.39"
uds_windows = "1"
win32-display-data = { git = "https://github.com/LGUG2Z/win32-display-data", rev = "8c42d8db257d30fe95bc98c2e5cd8f75da861021" }
windows-numerics = { version = "0.3" }
windows-implement = { version = "0.60" }
windows-interface = { version = "0.59" }
windows-core = { version = "0.62" }
shadow-rs = "2"
which = "8"
[workspace.dependencies.windows]
version = "0.62"
features = [
"Foundation_Numerics",
"Win32_Devices",
"Win32_Devices_Display",
"Win32_System_Com",
"Win32_UI_Shell_Common", # for IObjectArray
"Win32_Foundation",
"Win32_Globalization",
"Win32_Graphics_Dwm",
"Win32_Graphics_Gdi",
"Win32_Storage_Xps",
"Win32_Graphics_Direct2D",
"Win32_Graphics_Direct2D_Common",
"Win32_Graphics_Dxgi_Common",
"Win32_System_LibraryLoader",
"Win32_System_Power",
"Win32_System_RemoteDesktop",
"Win32_System_Threading",
"Win32_UI_Accessibility",
"Win32_UI_HiDpi",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_Shell",
"Win32_UI_Shell_Common",
"Win32_UI_WindowsAndMessaging",
"Win32_System_SystemServices",
"Win32_System_WindowsProgramming",
"Media",
"Media_Control",
]
[profile.release-opt]
inherits = "release"
lto = true
panic = "abort"
codegen-units = 1
strip = true
[workspace.metadata.crane]
name = "komorebi-workspace"