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. +

+ Blitztext control panel +    + Blitztext system-tray menu +

+ --- ## 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 | +|:---:|:---:|:---:|:---:| +| [![Presets](Screenshots/settings-presets.png)](Screenshots/settings-presets.png) | [![Engines](Screenshots/settings-engines.png)](Screenshots/settings-engines.png) | [![Input](Screenshots/settings-input.png)](Screenshots/settings-input.png) | [![General](Screenshots/settings-general.png)](Screenshots/settings-general.png) | +| **Benchmark** | **Log** | **About** | **Wakeword (hands-free)** | +| [![Benchmark](Screenshots/settings-benchmark.png)](Screenshots/settings-benchmark.png) | [![Log](Screenshots/settings-log.png)](Screenshots/settings-log.png) | [![About](Screenshots/settings-about.png)](Screenshots/settings-about.png) | [![Wakeword](Screenshots/wakeword.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