## What?
-A tui/cli program for tweaking [niri](https://github.com/YaLTeR/niri) wm display outputs dynamically without
-modifying configurations.
+A tui/cli program for tweaking niri wm display
+outputs dynamically without modifying the underlying configuration.
Dynamonix speaks to the compositor only through the niri socket. It does not
read from a configuration file. It does not write to a configuration file.
## Why?
+
Setting up new monitors/display outputs and adjusting the layout requires
making changes to the `niri` configuration file even if you only need to use
that display output layout for a brief period. Now if niri is configured
@@ -45,7 +49,7 @@ file.
The program needs Rust 1.90 or a later version.
```sh
-cargo install --path crates/dynamonix
+cargo install dynamonix
```
## Use
@@ -62,8 +66,7 @@ Show the outputs and stop:
dynamonix list
```
-Show the interface with three monitors of a sample. This mode does not need a
-compositor:
+Show the interface with three monitors of a sample. This mode does not need a compositor:
```sh
dynamonix --demo
@@ -124,12 +127,10 @@ The program measured this behavior on niri 26.04:
## Documentation
-- [Architecture](docs/architecture.md) — the parts of the program.
-- [Tests](docs/testing.md) — how to test the program.
-- [Continuous integration](docs/ci.md) — the workflows and how to make a
- release.
+- [Architecture](docs/architecture.md)
+- [Tests](docs/testing.md)
+- [Continuous integration](docs/ci.md)
## License
-GPL-3.0-or-later. The program uses the `niri-ipc` crate. That crate has the
-GPL-3.0-or-later license.
+Refer to the [LICENSE](LICENSE) file at the root of the repository.
diff --git a/assets/logo.svg b/assets/logo.svg
new file mode 100644
index 0000000..e548a80
--- /dev/null
+++ b/assets/logo.svg
@@ -0,0 +1,31 @@
+
diff --git a/docs/architecture.md b/docs/architecture.md
index 09a4cf6..d4b8d55 100644
--- a/docs/architecture.md
+++ b/docs/architecture.md
@@ -1,6 +1,6 @@
# Architecture
-The program has six crates. Each crate has one function. A crate uses only the
+Dynamonix has six crates. Each crate has one function. A crate uses only the
crates below it. No crate uses a crate above it.
```
diff --git a/docs/ci.md b/docs/ci.md
index 2d84d82..079e915 100644
--- a/docs/ci.md
+++ b/docs/ci.md
@@ -21,9 +21,8 @@ The steps use the `rust:1.90` image. That version is the same as the
`rust-version` field of `Cargo.toml`. The workflow therefore also makes sure
that the program compiles with the oldest version that the program supports.
-The `--locked` option makes the build use the versions in `Cargo.lock`. The
-build fails if `Cargo.lock` is not correct. Keep `Cargo.lock` in the
-repository.
+The `--locked` option makes the build use the versions in `Cargo.lock`. A
+build therefore uses the same dependency versions as the repository.
The tests that need a compositor do nothing in the workflow. Those tests start
only when the `DYNAMONIX_TEST_SOCKET` variable is set. See
@@ -79,35 +78,4 @@ gives a linker to Cargo for each aarch64 target:
| `aarch64-unknown-linux-musl` | `rust-lld`, because the Rust target already has the musl C library. |
The program has no C code and no dependency on a system library, so nothing
-more is necessary. Add a linker here if a future dependency needs one.
-
-## The token
-
-The publish step needs a token. Make a secret with the name `RELEASE_TOKEN` in
-the settings of the repository in Woodpecker.
-
-Make the token in Forgejo with these permissions:
-
-- `write:repository`
-- `read:misc`
-
-## To make a release
-
-1. Change the `version` field in the `[workspace.package]` part of
- `Cargo.toml`.
-2. Run `cargo update --workspace` to change `Cargo.lock`.
-3. Commit the two files.
-4. Make a tag with the same version, for example `v0.2.0`.
-5. Push the commit and the tag.
-
-The release workflow makes the release when the check workflow is successful.
-
-## To examine a workflow before a push
-
-The Woodpecker program can run a workflow on your computer. The program needs
-Docker.
-
-```sh
-woodpecker-cli lint --strict .woodpecker/check.yml
-woodpecker-cli exec --local --pipeline-event push .woodpecker/check.yml
-```
+more is necessary.