diff --git a/docs/web/assets/screenshots b/docs/web/assets/screenshots new file mode 120000 index 0000000..63fc22d --- /dev/null +++ b/docs/web/assets/screenshots @@ -0,0 +1 @@ +../../../data/screenshots \ No newline at end of file diff --git a/docs/web/how-to/device-actions.md b/docs/web/how-to/device-actions.md index 1b7d832..e2215ab 100644 --- a/docs/web/how-to/device-actions.md +++ b/docs/web/how-to/device-actions.md @@ -3,6 +3,8 @@ Every row in the device list has three actions: **Allow**, **Block**, and **Reject**. Each asks how long the decision should last. +![A device row with its Allow, Block, and Reject buttons](../assets/screenshots/02-device-action.png) + | Choice | What USBGuard does | After USBGuard restarts | | :----- | :----------------- | :---------------------- | | **This session only** | Changes the device's state in memory. | The policy applies again. | diff --git a/docs/web/how-to/diagnose.md b/docs/web/how-to/diagnose.md index 2898e52..d619cb2 100644 --- a/docs/web/how-to/diagnose.md +++ b/docs/web/how-to/diagnose.md @@ -5,6 +5,8 @@ these states. A request to USBGuard crosses three independent checkpoints, each different component: the **D-Bus bus policy**, then **Polkit**, then **USBGuard's own IPC access control**. The states say which one refused. +![The diagnostics dialog: each check and its result](../assets/screenshots/05-diagnostics.png) + | Result | Exit code | Meaning | Remedy | | :----- | :-------- | :------ | :----- | | `connected` | 0 | Everything works. Writes are not tested in advance — the only test of a write is a write. | — | diff --git a/docs/web/how-to/rules.md b/docs/web/how-to/rules.md index db124c1..e62c18e 100644 --- a/docs/web/how-to/rules.md +++ b/docs/web/how-to/rules.md @@ -3,10 +3,14 @@ The **Policy** page lists the rules in the order USBGuard evaluates them. The first rule that matches a device decides, which is why the list is numbered and cannot be re-sorted. +![The Policy page: runtime parameters above, the numbered rules below](../assets/screenshots/03-policy.png) + ## Add a rule Click **Add Rule…**. +![The New Rule dialog in guided mode](../assets/screenshots/04-new-rule.png) + - **Guided** mode: choose the target (allow, block, reject), then add attributes one at a time — `id` (`vendor:product`, e.g. `1234:5678`), `name`, `serial`, `via-port`, `with-interface` (`class:subclass:protocol`, e.g. `08:06:50` for mass storage), and the rest. Each value is checked diff --git a/docs/web/index.md b/docs/web/index.md index 811ee2f..1b69ef5 100644 --- a/docs/web/index.md +++ b/docs/web/index.md @@ -1,4 +1,4 @@ -# USBGuard GUI +# USBGuardGUI A desktop interface for [USBGuard](https://usbguard.github.io/): see which USB devices are connected, **allow or block them**, and edit the policy — without root. @@ -7,6 +7,8 @@ connected, **allow or block them**, and edit the policy — without root. [How-To Guides](how-to/index.md){ .md-button } [GitHub Repository](https://github.com/onyks-os/USBGuardGUI){ .md-button } +![The device list: each connected device with its state, and Allow, Block, and Reject buttons](assets/screenshots/01-devices.png) + --- !!! note "USBGuardGUI is a front end" diff --git a/docs/web/release-notes/changelog.md b/docs/web/release-notes/changelog.md index 4a46f5e..f1bb38a 100644 --- a/docs/web/release-notes/changelog.md +++ b/docs/web/release-notes/changelog.md @@ -7,8 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -Nothing is released yet. See -[ROADMAP.md](https://github.com/onyks-os/USBGuardGUI/blob/main/ROADMAP.md) for the phase order. +## [0.1.0] - 2026-09-27 + +The first release. ### Added @@ -28,8 +29,15 @@ Nothing is released yet. See - Notifications for newly inserted, unauthorized devices, with an "Allow for this session" quick action that re-checks the device's identity before acting; background mode; a status icon (`ksni`) where the desktop supports one; "Start at login". +- Italian translation, and the gettext pipeline for more (`po/`, `make i18n`, `docs/translating.md`). + The command-line output stays in English for bug reports. +- `cargo run --example demo-bridge`: a stand-in for USBGuard with invented devices, for screenshots + and development; development builds reach it with `USBGUARD_GUI_BUS=session`. - Packages: `.deb` and `.rpm` (`make package-deb`, `make package-rpm`), an Arch `PKGBUILD`, and a Flatpak manifest. No post-install scripts. +- Release pipeline: a `v*` tag builds the `.deb`, `.rpm`, Arch package, and Flatpak bundle, signs + every asset with Sigstore, publishes the GitHub Release, and publishes the crate to crates.io + (`docs/releasing.md`). Tags with a suffix are rehearsals: pre-releases, not published to crates.io. - Read-only GTK 4 / libadwaita window: device list with filter, policy list in evaluation order, connection indicator, diagnostic dialog with per-distribution remedies. - Phase 0 introspection results (`docs/dbus-introspection/`, `docs/architecture.md` §13.4) and an @@ -52,12 +60,5 @@ Nothing is released yet. See - `docs/architecture.md`: `listRules` takes a label filter, not a query — `""` lists every rule, `"match"` would have listed none. Found by introspection before any code depended on it. -### Deprecated - -### Removed - -### Fixed - -### Security - -[Unreleased]: https://github.com/onyks-os/USBGuardGUI/commits/main +[Unreleased]: https://github.com/onyks-os/USBGuardGUI/compare/v0.1.0...HEAD +[0.1.0]: https://github.com/onyks-os/USBGuardGUI/releases/tag/v0.1.0