From 27400981296dcd080bc15f9b072aa91f52fdfb84 Mon Sep 17 00:00:00 2001 From: LGUG2Z Date: Sat, 31 Oct 2026 14:58:57 -0700 Subject: [PATCH] docs(kde): point the paths in the KDE docs and comments at where the files are now The consolidation moved files that the KDE docs and a few comments name, so about a dozen references were dead or wrong: - docs/dev/ARCHITECTURE.md: `ring.rs` and `lockable_sequence.rs` are in crates/komorebi-collections; the daemon `main.rs` is `daemon.rs` of the komorebi-linux library; the KDE command line is komorebic/src/linux/mod.rs and hotkeys.rs of the root komorebic package; the tests that moved are komorebic/tests/linux_{check,cli,hotkeys}.rs, komorebi-client/tests/linux_subscribe.rs and komorebi-daemon/tests/linux_{socket,hot_reload}.rs. - komorebi/src/check.rs (doc comments only), the VM `check` suite and its library extra, docs/dev/scrolling-next.md: `komorebic/tests/check.rs` and `cli.rs` are `linux_check.rs` and `linux_cli.rs`. - CONTRIBUTING.md, Releases: the version is in komorebi/Cargo.toml (the KDE tree no longer has a workspace manifest). Text and comments only, no code. The edit of check.rs and of the VM files changes the KDE derivations (acceptable for docs). Verified: a link checker over komorebi-for-kde/docs/dev reports no dead relative link; the moved test files exist and contain the two named test functions. Not built. --- komorebi-for-kde/CONTRIBUTING.md | 4 +-- komorebi-for-kde/docs/dev/ARCHITECTURE.md | 26 +++++++++---------- komorebi-for-kde/docs/dev/scrolling-next.md | 2 +- komorebi-for-kde/komorebi/src/check.rs | 10 +++---- .../komorebi_vm/platforms/kde/extras/check.py | 2 +- .../nix/tests/vm/suites/check/test.py | 2 +- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/komorebi-for-kde/CONTRIBUTING.md b/komorebi-for-kde/CONTRIBUTING.md index 4dbcc490..b635b98c 100644 --- a/komorebi-for-kde/CONTRIBUTING.md +++ b/komorebi-for-kde/CONTRIBUTING.md @@ -184,8 +184,8 @@ nixpkgs is not pinned back. ## Releases -A release is a tag. Set `version` under `[workspace.package]` in -[`Cargo.toml`](Cargo.toml) to the new version, commit it, and push the tag +A release is a tag. Set `version` in +[`komorebi/Cargo.toml`](komorebi/Cargo.toml) (which the flake reads) to the new version, commit it, and push the tag `vVERSION` on that commit. For every run, the `build` job of `ci.yaml` builds `komorebi` and `komorebic` with nix on an x86_64 and an arm64 runner, and keeps them as an artifact of the run for 14 days. On a tag, once `lint`, `vm-fast` and diff --git a/komorebi-for-kde/docs/dev/ARCHITECTURE.md b/komorebi-for-kde/docs/dev/ARCHITECTURE.md index a7285048..6a8789e9 100644 --- a/komorebi-for-kde/docs/dev/ARCHITECTURE.md +++ b/komorebi-for-kde/docs/dev/ARCHITECTURE.md @@ -1267,12 +1267,12 @@ too. - [`backend`](../../komorebi/src/backend/mod.rs): the trait, the two data types, and the process-wide handle ([`set_backend`], [`backend`], [`with_backend`]). - [`backend::fake`](../../komorebi/src/backend/fake.rs): the fake. -- [`ring`](../../komorebi/src/ring.rs): the [`Ring`], and the macro that gives every type +- [`ring`](../../../crates/komorebi-collections/src/ring.rs): the [`Ring`], and the macro that gives every type holding one the same accessors (`containers()`, `focused_container_mut()`, ...). - [`monitor`](../../komorebi/src/monitor.rs), [`workspace`](../../komorebi/src/workspace.rs), [`container`](../../komorebi/src/container.rs), [`window`](../../komorebi/src/window.rs): the four levels of the tree; `window` also has the rule engine ([`should_act`]). -- [`lockable_sequence`](../../komorebi/src/lockable_sequence.rs): inserting, removing and +- [`lockable_sequence`](../../../crates/komorebi-collections/src/lockable_sequence.rs): inserting, removing and swapping in a list where some elements are locked in place, which is how a workspace changes its containers. - [`window_manager`](../../komorebi/src/window_manager.rs): the [`WindowManager`] and the @@ -1333,11 +1333,11 @@ too. - [`komorebi-client`](../../komorebi-client/src/lib.rs): a library that writes messages on the socket and reads the answers, and subscribes to notifications, for programs that talk to the daemon. -- [`komorebic`](../../komorebic/src/main.rs): the command line. A subcommand that asks +- [`komorebic`](../../../komorebic/src/linux/mod.rs): the command line. A subcommand that asks something of the daemon is one message, sent with `komorebi-client`; `start` runs the daemon, `log` follows its log file in [`LOG_DIR`], and the hidden `docgen` writes `docs/cli`. -- [`main.rs`](../../komorebi/src/main.rs): the daemon. It connects to KWin, or installs the +- [`daemon.rs`](../../komorebi/src/daemon.rs): the daemon. It connects to KWin, or installs the fake with `--fake-backend`, makes the window manager from `komorebi.json` when there is one, which binds the socket, loads the desktop, gives the monitors their configuration, asks for the borders and tiles, starts the threads that listen on the socket, handle events and take the @@ -1677,7 +1677,7 @@ daemons: skhd (macOS), whkd (Windows) and sxhkd (X11). ### The front end -[`komorebic/src/hotkeys.rs`](../../komorebic/src/hotkeys.rs) is the command line over the +[`komorebic/src/linux/hotkeys.rs`](../../../komorebic/src/linux/hotkeys.rs) is the command line over the crate, and decides nothing about what a file means. `komorebic hotkeys compile` reads a file (by default the first of `skhdrc`, `whkdrc` and `sxhkdrc` in the komorebi config directory, its format from the end of its name), plans it in the mode it is given (by default `PlanMode::default()`), @@ -1797,7 +1797,7 @@ plan needs no engine. A failure to start is logged, and the window manager runs - [`komorebi/src/static_config.rs`](../../komorebi/src/static_config.rs): `komorebi.json`. [`komorebi/tests/config.rs`](../../komorebi/tests/config.rs) loads files over the fake desktop, [`komorebi/tests/config_displays.rs`](../../komorebi/tests/config_displays.rs) one - with several monitors, [`komorebi/tests/hot_reload.rs`](../../komorebi/tests/hot_reload.rs) the + with several monitors, [`komorebi-daemon/tests/linux_hot_reload.rs`](../../../komorebi-daemon/tests/linux_hot_reload.rs) the daemon following a file, and [`komorebi/tests/config_parity.rs`](../../komorebi/tests/config_parity.rs) the files of other platforms and the example, which load; @@ -1813,7 +1813,7 @@ plan needs no engine. A failure to start is logged, and the window manager runs the applications files; [`komorebi/src/core/asc.rs`](../../komorebi/src/core/asc.rs) their format. - [`komorebi/src/check.rs`](../../komorebi/src/check.rs): the checks of `komorebic check`, with - their tests; [`komorebic/tests/check.rs`](../../komorebic/tests/check.rs) runs the command on + their tests; [`komorebic/tests/linux_check.rs`](../../../komorebic/tests/linux_check.rs) runs the command on configurations, on key binding files and on buses that are not there, and reads what it prints and its exit status; [`nix/tests/vm/suites/check`](../../nix/tests/vm/suites/check/test.py), the desktop check against @@ -1824,10 +1824,10 @@ plan needs no engine. A failure to start is logged, and the window manager runs each message does, and the tests that send messages through a real socket. - [`komorebi-client/src/lib.rs`](../../komorebi-client/src/lib.rs): the client side of the socket. -- [`komorebi-client/tests/subscribe.rs`](../../komorebi-client/tests/subscribe.rs): +- [`komorebi-client/tests/linux_subscribe.rs`](../../../komorebi-client/tests/linux_subscribe.rs): subscribers and the notifications they are sent, through real sockets. -- [`komorebic/src/main.rs`](../../komorebic/src/main.rs): the subcommands, and - [`komorebic/tests/cli.rs`](../../komorebic/tests/cli.rs), what each writes on the socket. +- [`komorebic/src/linux/mod.rs`](../../../komorebic/src/linux/mod.rs): the subcommands, and + [`komorebic/tests/linux_cli.rs`](../../../komorebic/tests/linux_cli.rs), what each writes on the socket. - [`komorebi/src/kwin/mod.rs`](../../komorebi/src/kwin/mod.rs): the KWin backend, its D-Bus service and the held call. - [`komorebi/src/kwin/state.rs`](../../komorebi/src/kwin/state.rs): the table, with the @@ -1878,7 +1878,7 @@ plan needs no engine. A failure to start is logged, and the window manager runs real Plasma shell. - [`komorebi/tests/wm_events.rs`](../../komorebi/tests/wm_events.rs): the window manager driven end to end against the fake. -- [`komorebi/tests/socket.rs`](../../komorebi/tests/socket.rs): the daemon over its socket, +- [`komorebi-daemon/tests/linux_socket.rs`](../../../komorebi-daemon/tests/linux_socket.rs): the daemon over its socket, from its start to a `Stop`. - [`komorebi/tests/focus.rs`](../../komorebi/tests/focus.rs), [`komorebi/tests/moving.rs`](../../komorebi/tests/moving.rs) and @@ -1965,9 +1965,9 @@ plan needs no engine. A failure to start is logged, and the window manager runs [`sxhkd.rs`](../../komorebi-hotkeys/src/sxhkd.rs); [`plan.rs`](../../komorebi-hotkeys/src/plan.rs) and [`kde.rs`](../../komorebi-hotkeys/src/kde.rs) for the shortcuts, [`engine.rs`](../../komorebi-hotkeys/src/engine.rs) for the engine. -- [`komorebic/src/hotkeys.rs`](../../komorebic/src/hotkeys.rs): `export-kde-shortcuts` and +- [`komorebic/src/linux/hotkeys.rs`](../../../komorebic/src/linux/hotkeys.rs): `export-kde-shortcuts` and `hotkeys compile`, and the key bindings section of `komorebic check`; - [`komorebic/tests/hotkeys.rs`](../../komorebic/tests/hotkeys.rs), what they write. + [`komorebic/tests/linux_hotkeys.rs`](../../../komorebic/tests/linux_hotkeys.rs), what they write. - [`nix/tests/vm/suites/keys-static`](../../nix/tests/vm/suites/keys-static/test.py): static shortcuts run by a real KWin. - [`komorebi/src/kwin/hotkeys.rs`](../../komorebi/src/kwin/hotkeys.rs): the engine against diff --git a/komorebi-for-kde/docs/dev/scrolling-next.md b/komorebi-for-kde/docs/dev/scrolling-next.md index b8e89f0f..2afea698 100644 --- a/komorebi-for-kde/docs/dev/scrolling-next.md +++ b/komorebi-for-kde/docs/dev/scrolling-next.md @@ -54,7 +54,7 @@ is, whether it is hidden, how wide it really is) is a call to the backend in kfd - `komorebi/tests/scrolling.rs` and `layout_options.rs`: the commands through `WindowManager::process_command` against the fake desktop, a strip next to another monitor, and a drag of the left edge of a column. -- `komorebic/tests/cli.rs`: each new subcommand sends its message. +- `komorebic/tests/linux_cli.rs`: each new subcommand sends its message. - `nix/tests/vm/lib/komorebi_vm/core/scenarios/scrolling.py` (`columns`, shared with komorebi for Windows), run by `vm-scrolling` and `core-e2e`: where the daemon keeps a window at the edge and the commands of the columns, in a real session. Run on KDE: the `scrolling` suite passes diff --git a/komorebi-for-kde/komorebi/src/check.rs b/komorebi-for-kde/komorebi/src/check.rs index 1437a149..7ebb2e93 100644 --- a/komorebi-for-kde/komorebi/src/check.rs +++ b/komorebi-for-kde/komorebi/src/check.rs @@ -63,12 +63,12 @@ //! | The keys are the ones komorebi reads, at every level | [`known_keys`] reads them from the JSON schema of [`StaticConfig`] | `check::tests::the_keys_come_from_the_schema_at_every_level`, `check::tests::a_whole_example_configuration_has_nothing_the_check_does_not_know` | //! | Placement rules that no window can use are a note | [`check_configuration`] compares the `initial_window_placement_rules` of a workspace with its `window_container_behaviour`, or the file's when it has none: windows that are appended to a container have no place of their own | `check::tests::placement_rules_that_are_not_used_while_windows_are_appended_are_noted` | //! | A wallpaper that is not a file is an error, and a picture no theme can be made from is a warning | [`check_configuration`] looks at the wallpaper of each monitor and workspace once, and asks the theme generator for a palette when the wallpaper does not turn it off | `check::tests::a_wallpaper_that_is_not_there_and_a_rules_file_that_is_not_there_are_found` for the error, the `vm-check` VM suite for the warning | -//! | No session bus, or no KWin on it, is an error, and the desktop is looked at no further | [`check_environment`] stops at the first finding the rest depends on | `komorebic/tests/check.rs::without_a_session_bus_the_desktop_is_an_error`, the `vm-check` VM suite | +//! | No session bus, or no KWin on it, is an error, and the desktop is looked at no further | [`check_environment`] stops at the first finding the rest depends on | `komorebic/tests/linux_check.rs::without_a_session_bus_the_desktop_is_an_error`, the `vm-check` VM suite | //! | komorebi running without its script in KWin is an error | [`check_environment`] compares the daemon's socket with KWin's answer to `isScriptLoaded` | the `vm-check` VM suite | //! | An effect is komorebi's build because of what it contains, not because of its name | [`check_environment`] looks for the colors interface in the border effect, and for a `Curve` setting in the animation effect's script | `check::tests::the_border_effect_is_komorebis_when_it_has_the_colours_interface`, `check::tests::the_effects_are_told_apart_by_what_they_contain` | //! | Effects are looked for where KWin looks, not where the shell that runs the command would | [`check_environment`] reads KWin's environment from `/proc` | the `vm-check` VM suite | -//! | No D-Bus call delays the check by more than two seconds | convention: every call [`check_environment`] makes goes through a timeout | `komorebic/tests/check.rs::a_session_bus_that_never_answers_is_given_up_on` | -//! | `komorebic check` exits with status 1 if and only if a finding is an error | `komorebic`, through [`Report::has_errors`] | `komorebic/tests/check.rs` | +//! | No D-Bus call delays the check by more than two seconds | convention: every call [`check_environment`] makes goes through a timeout | `komorebic/tests/linux_check.rs::a_session_bus_that_never_answers_is_given_up_on` | +//! | `komorebic check` exits with status 1 if and only if a finding is an error | `komorebic`, through [`Report::has_errors`] | `komorebic/tests/linux_check.rs` | #![deny(missing_docs)] @@ -681,7 +681,7 @@ pub fn check_keys(value: &serde_json::Value, known: &KnownKeys) -> Vec /// ``` /// /// The files that are read are covered by the tests in `komorebi/src/check.rs` and -/// `komorebic/tests/check.rs`. +/// `komorebic/tests/linux_check.rs`. pub fn check_configuration(path: &Path) -> (Vec, Wants) { let mut findings = vec![]; let mut wants = Wants::default(); @@ -1441,7 +1441,7 @@ fn autostart_findings() -> Vec { /// /// # Example /// -/// Covered by `komorebic/tests/check.rs::without_a_session_bus_the_desktop_is_an_error` and the +/// Covered by `komorebic/tests/linux_check.rs::without_a_session_bus_the_desktop_is_an_error` and the /// `vm-check` VM suite. The example needs a desktop session, so it is compiled and not run here: /// /// ```rust,no_run diff --git a/komorebi-for-kde/nix/tests/vm/lib/komorebi_vm/platforms/kde/extras/check.py b/komorebi-for-kde/nix/tests/vm/lib/komorebi_vm/platforms/kde/extras/check.py index cdacabea..9c378423 100644 --- a/komorebi-for-kde/nix/tests/vm/lib/komorebi_vm/platforms/kde/extras/check.py +++ b/komorebi-for-kde/nix/tests/vm/lib/komorebi_vm/platforms/kde/extras/check.py @@ -6,7 +6,7 @@ komorebi's builds because of what they contain, that a daemon is told from its s own answer, that a bus with no KWin on it is an error with an exit status that says so, and that the shortcut files the check compares with are in the directory `komorebic hotkeys compile` writes to in a session. The configuration and the exit status are covered by -`komorebi/src/check.rs` and `komorebic/tests/check.rs`, against no desktop. +`komorebi/src/check.rs` and `komorebic/tests/linux_check.rs`, against no desktop. """ import base64 diff --git a/komorebi-for-kde/nix/tests/vm/suites/check/test.py b/komorebi-for-kde/nix/tests/vm/suites/check/test.py index b08f6abf..05d818c7 100644 --- a/komorebi-for-kde/nix/tests/vm/suites/check/test.py +++ b/komorebi-for-kde/nix/tests/vm/suites/check/test.py @@ -6,7 +6,7 @@ # own answer, that a bus with no KWin on it is an error with an exit status that says so, and that # the shortcut files the check compares with are in the directory `komorebic hotkeys compile` # writes to in a session. The configuration and the exit status are covered by -# `komorebi/src/check.rs` and `komorebic/tests/check.rs`, against no desktop. +# `komorebi/src/check.rs` and `komorebic/tests/linux_check.rs`, against no desktop. from komorebi_vm import Checks from komorebi_vm.core.suite import platform_only, run_suite