diff --git a/README.md b/README.md index b1cd21c..79ce0ec 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,17 @@ -# DYNAMONIX +
+ +

DYNAMONIX

+
## 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 @@ + + Dynamonix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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.