Thanks for your interest in LazyDesktop! This project is small and friendly — here is how to get involved.
- Fork the repository and clone your fork.
- Set up the toolchain — see build from source
(
mise installandjust setupare your friends). - Build and run:
just run. - Find something to work on in the roadmap or an open issue.
This repository follows Conventional Commits. The AI coding skills
shipped in .opencode/skills/ can generate conforming messages for you.
type(scope): subject
- Type:
feat,fix,refactor,chore,docs,test,perf,build,ci,style,revert - Scope: the module or component (e.g.
settings,ai-core,vcs) - Subject: imperative present tense, lowercase, ≤ 72 characters
Examples:
feat(settings): add theme picker
fix(ai-core): link commit-message ffi correctly
docs: document the packaging workflow
Branches follow the type/scope?/short-description convention:
feat/settings/theme-picker
fix/ai-core/link-ffi
docs/packaging
- Rust is formatted with rustfmt (
cargo fmt --all):just format. - Lints with clippy:
just clippy. - Run all pre-commit hooks with
just lint(see build & test).
- The workspace has a unit test suite:
just test(cargo test --workspace). - Add regression tests where practical and describe manual verification in the PR.
- Create a branch off
main(type/scope/short-description). - Make your change; keep it focused.
- Run
just formatandjust lint. - Push and open a pull request against
main. - CI (
.github/workflows/ci.yml) builds on Ubuntu, Windows, and macOS — make sure it is green.
User-facing changes should update the relevant page in docs/
if it exists. New features should be documented there too.