mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-13 20:33:41 +01:00
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.
143 lines
3.7 KiB
TOML
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"
|