Overview
Developer quick start, control commands, and build or QA workflow.
This section is for contributors working on Kwybars itself rather than end users setting it up on their desktop.
Workspace
git clone https://github.com/naurissteins/Kwybars.git
cd KwybarsDependencies
On Arch Linux:
sudo pacman -S --needed rust gtk4 gtk4-layer-shell pipewire cava
# optional desktop error notifications
sudo pacman -S --needed libnotifyCommon Developer Commands
Run overlay:
cargo run -p kwybars-overlayRun daemon:
cargo run -p kwybars-daemonRun with a specific config:
cargo run -p kwybars-overlay -- --config /path/to/config.toml
cargo run -p kwybars-daemon -- --config /path/to/config.tomlUse the control tool:
cargo run -p kwybarsctl -- switch-config /path/to/config.toml
cargo run -p kwybarsctl -- image-overlay match --overlay-dir /path/to/overlays /path/to/wallpaper.jpg
cargo run -p kwybarsctl -- validate-config /path/to/config.toml
cargo run -p kwybarsctl -- doctor /path/to/config.toml
cargo run -p kwybarsctl -- list-themes /path/to/config.tomlBuild and QA
Format:
cargo fmt --allLint:
cargo clippy --workspace --all-targets -- -D warningsCompile check:
cargo check --workspaceTest:
cargo test --workspaceRelease build:
cargo build --release --workspaceLogging
Kwybars uses tracing logs to stderr and to a file.
KWYBARS_LOGorRUST_LOGcontrols the log level or filterKWYBARS_LOG_FILEoverrides the default log file path- timestamps are written in local time
Nix
Kwybars ships Nix support for development shells, package builds, runnable apps, and a NixOS module.
Development shells:
nix developnix-shell
Package build:
nix build
./result/bin/kwybars-daemonRunnable flake apps:
nix run .
nix run .#kwybars-overlay
nix run .#kwybarsctlNixOS module entrypoint:
imports = [ inputs.kwybars.nixosModules.default ];
programs.kwybars.enable = true;The flake package installs the three binaries, bundled themes, example config, and user systemd service. The wrapped binaries set KWYBARS_THEMES_DIR so packaged themes are discovered from the Nix store.
For crate and module layout details, continue with Internals.