src/contains the Rust application code (entry insrc/main.rsand modules likesrc/lockscreen.rs).tests/holds integration tests plus shared fixtures intests/fixtures/and test data intests/data/.data/packaging metadata;debian/,copr/, andAPKBUILDcover distro packaging.resources/houses assets that Glib postprocesses into the resultingbuild.rsensures that phrog's schemas are compiled withglib-build-toolsand put in~/.local/share/glib-2.0/schemas.
cargo buildbuilds the greeter (requireslibphoshfrom your distro).cargo run -- --fakeruns without greetd; pair withphocfor Wayland:phoc -S -E "cargo run -- --fake"
cargo testruns the test suite; for Wayland-dependent tests:phoc -S -E "cargo test"
- Rust 2021 edition; toolchain pinned in
rust-toolchain.toml. - Format with
cargo fmt(rustfmt) and lint withcargo clippy. - Use
snake_casefor files, functions, and modules; keep modules small and focused.
- Integration tests live in
tests/and should be named withsnake_case.rs. - Place reusable helpers in
tests/common/and data fixtures intests/fixtures/. - If a test relies on Wayland/Phosh behavior, document it in the test and use
phocwhen running locally.
- Recent history uses short, scoped subjects like
ci/debian: rename. Preferarea: descriptionorarea/subarea: description. - PRs should include a concise summary, test results, and screenshots or a short recording for UI changes.
- Link related issues when applicable.
phrogis a greetd greeter; packaging indebian/,copr/, andAPKBUILDshows how it is wired into services.- Local testing without greetd uses
--fakeand the default login password0.