diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index b7126ec..c4a9b20 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -13,7 +13,7 @@ Did you use AI-assisted coding tools? If yes, briefly mention where.
## Checklist
-- [ ] I ran `./build.sh --debug` or explained why not.
+- [ ] I ran the Linux app or its test suite (`cd linux && PYTHONPATH=. pytest tests`) or explained why not.
- [ ] I did not commit API keys, tokens, private recordings, or confidential transcripts.
- [ ] I considered whether this changes privacy, security, or data flow.
-- [ ] I kept the change focused on the macOS preview scope.
+- [ ] I kept the change focused on the Linux preview scope.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 847c7d0..d13df98 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -10,14 +10,14 @@ permissions:
contents: read
jobs:
- build-macos:
- name: Build macOS app
- runs-on: macos-14
- timeout-minutes: 30
+ test-linux:
+ name: Test Linux app
+ runs-on: ubuntu-24.04
+ timeout-minutes: 15
steps:
- name: Checkout
- uses: actions/checkout@v6
+ uses: actions/checkout@v4
- name: Secret hygiene scan
run: |
@@ -39,27 +39,6 @@ jobs:
exit 1
fi
- - name: Select Xcode
- run: sudo xcode-select -s /Applications/Xcode_16.2.app || sudo xcode-select -s /Applications/Xcode.app
-
- - name: Install XcodeGen
- run: |
- if ! command -v xcodegen >/dev/null 2>&1; then
- brew install xcodegen
- fi
-
- - name: Build
- run: ./build.sh --debug
-
- test-linux:
- name: Test Linux app
- runs-on: ubuntu-24.04
- timeout-minutes: 15
-
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- name: Set up Python
uses: actions/setup-python@v5
with:
diff --git a/README.md b/README.md
index 3aa811a..bd9b431 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,12 @@ Blitztext is a native Linux dictation tool that captures your voice, transcribes
> **Status:** Experimental open-source Linux/X11 desktop app (v1.1.0).
> No hosted backend — bring your own models and endpoints.
+
+
+
+
+
+
---
## Inspiration & Credits
@@ -53,6 +59,26 @@ Stream: hotkey → mic PCM chunks → Riva/NIM WebSocket → live words typed
---
+## Screenshots
+
+Everything is configured in the GTK Settings window — presets, engines, input,
+hands-free wakeword, and a built-in benchmark, all with tooltips and
+screen-reader (ATK) support. Click any thumbnail to view full size.
+
+| Presets | Engines | Input | General |
+|:---:|:---:|:---:|:---:|
+| [](Screenshots/settings-presets.png) | [](Screenshots/settings-engines.png) | [](Screenshots/settings-input.png) | [](Screenshots/settings-general.png) |
+| **Benchmark** | **Log** | **About** | **Wakeword (hands-free)** |
+| [](Screenshots/settings-benchmark.png) | [](Screenshots/settings-log.png) | [](Screenshots/settings-about.png) | [](Screenshots/wakeword.png) |
+
+- **Presets** — dictation actions (transcribe / rewrite), each with spoken keywords, an optional hotkey, and its own prompt.
+- **Engines** — speech-to-text and language-model presets (local or remote) with online/offline status and a searchable model list.
+- **Input** — start/stop keys, quality gate, hands-free wakeword, and audio cues.
+- **Benchmark** — compare engines on a reference clip by speed and accuracy.
+- **About** — version, source, changelog, and licence.
+
+---
+
## Target Use Cases
| Scenario | How Blitztext helps |
@@ -369,7 +395,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
**Good first contributions:**
- Add unit tests for `routing.py`, `quality.py`, `config.py`, `benchmark.py`
-- Add Linux screenshots
+- Add a short demo GIF or additional screenshots
- Improve error messages and first-run setup
- Document known-good STT/LLM engine configurations
- Document known-good Wayland configurations for specific compositors
diff --git a/Screenshots/wakeword.png b/Screenshots/wakeword.png
new file mode 100644
index 0000000..4175f3a
Binary files /dev/null and b/Screenshots/wakeword.png differ