Skip to content

Commit 074459c

Browse files
committed
docs: update German README to current v0.6.0 feature set
- Add Compose window, OpenRouter & custom endpoints, Audio export to Features - Update LLM-Workflows note: generic "API-Key" instead of OpenAI-specific - Add LLM providers table (OpenAI / OpenRouter / Custom endpoint) - Add "Eigenes Preset…" row to writing-style presets table - Add complete Compose-Fenster section with full feature table - Update Hauptfenster section: modernize title and control descriptions - Add Export button mention to Vorlesen table row - Update config JSON example with all new fields (llm_provider, base_url, llm_model, compose_signature, compose_signature_auto_append, compose_custom_preset_text, writing_preset) - Add openai_api_key_env explanation for OpenRouter use - Add compose_* and llm_* field explanations - Fix tts_openai_voice default: nova (not marin) - Update pytest note to mention Compose window GUI tests - Update directory overview: add compose_window.py, history_panel.py, main_window.py, tts_window.py, writing_presets.py - Update llm_service.py comment: OpenRouter and custom endpoints - Update privacy note to mention OpenRouter
1 parent 1e573cd commit 074459c

1 file changed

Lines changed: 79 additions & 21 deletions

File tree

README.de.md

Lines changed: 79 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020

2121
## Features
2222

23-
- **NEU: Mehrsprachige Oberfläche (EN/DE):** Schalte die App-Oberfläche zwischen Deutsch und Englisch um – unter **Einstellungen → Allgemein → „Sprache"** (die Änderung greift nach einem Neustart der App).
23+
- **Mehrsprachige Oberfläche (EN/DE):** Schalte die App-Oberfläche zwischen Deutsch und Englisch um – unter **Einstellungen → Allgemein → „Sprache der Oberfläche"** (die Änderung greift nach einem Neustart der App).
24+
- **Compose-Fenster:** Text eintippen oder einfügen, einen Workflow und Schreibstil wählen und von der KI umschreiben lassen — ganz ohne Mikrofon. Mit Tonfall-Auswahl, eigenem Preset, Varianten-Verlauf und Signatur-Unterstützung.
25+
- **OpenRouter & eigene LLM-Endpunkte:** Nutze OpenRouter oder eine beliebige OpenAI-kompatible API als Alternative zu OpenAI für alle KI-Workflows.
26+
- **Audio-Export:** Speichere die Ausgabe der Vorlesefunktion direkt als Audiodatei.
2427
- **Eigennamen / Begriffe:** Erweitere das Vokabular der KI um eigene Begriffe, Namen oder Fachwörter für perfekte Transkriptionen.
25-
2628
- **Globale Hotkeys:** Jederzeit von überall im System aufnehmen.
2729
- **Auto-Paste:** Erkennt Sprache und fügt sie direkt dort ein, wo der Cursor ist.
2830
- **LLM-gestützte Workflows:** Lass die KI deine Sätze professionell umformulieren, emotional filtern oder mit passenden Emojis anreichern.
@@ -146,7 +148,7 @@ Blitztext registriert globale Hotkeys via `evdev`. Mit diesen Kombinationen hast
146148
| **Blitztext :)** | <kbd>Meta</kbd> + <kbd>Shift</kbd> + <kbd>E</kbd> || Ergänzt deine Nachricht passend mit Emojis. |
147149

148150
> [!NOTE]
149-
> **LLM-Workflows** (`Blitztext+`, `Blitztext $%&!`, `Blitztext :)`) setzen einen gültigen **OpenAI API-Key** voraus. Lege ihn am einfachsten in `~/.config/blitztext-linux/secrets.env` ab, indem du dort die Variable `OPENAI_API_KEY` mit deinem Key als Wert setzt (Zeilenformat `NAME=WERT`). `./run.sh` und der systemd-Service laden diese Datei automatisch. Ohne diesen Key sind diese Funktionen im Menü und über die Hotkeys deaktiviert bzw. führen zu einer Fehlermeldung.
151+
> **LLM-Workflows** (`Blitztext+`, `Blitztext $%&!`, `Blitztext :)`) setzen einen gültigen **API-Key** voraus. Lege ihn am einfachsten in `~/.config/blitztext-linux/secrets.env` ab, indem du dort die Variable mit deinem Key als Wert setzt (Zeilenformat `NAME=WERT`, z. B. `OPENAI_API_KEY=sk-…`). `./run.sh` und der systemd-Service laden diese Datei automatisch. Ohne diesen Key sind diese Funktionen im Menü und über die Hotkeys deaktiviert bzw. führen zu einer Fehlermeldung.
150152
151153
## KI-Workflows
152154

@@ -157,9 +159,21 @@ Die KI-Workflows helfen bei Formulierung, Ton und Emojis. Die passenden Einstell
157159
<br><br>
158160
</div>
159161

162+
### LLM-Anbieter
163+
164+
Blitztext unterstützt drei Anbieter-Modi, wählbar unter **Einstellungen → KI-Workflows → „LLM-Anbieter"**:
165+
166+
| Anbieter | Wann verwenden |
167+
| :--- | :--- |
168+
| **OpenAI** (Standard) | Standard-OpenAI-API mit `gpt-4o-mini` oder einem anderen Modell. |
169+
| **OpenRouter** | Zugriff auf hunderte Modelle über einen einzigen API-Key (`OPENROUTER_API_KEY`). Base-URL: `https://openrouter.ai/api/v1`. |
170+
| **Eigener Endpunkt** | Jede OpenAI-kompatible API — „Base-URL" und „LLM-Modell" auf den Anbieter anpassen. |
171+
172+
Für OpenRouter `base_url` auf `https://openrouter.ai/api/v1` setzen und Modell wählen (z. B. `openai/gpt-4o`). Der Name der API-Key-Umgebungsvariable wird unter „API-Key-Umgebung" eingestellt.
173+
160174
### Schreibstil-Vorlagen
161175

162-
Für den Workflow **Blitztext+** (Text-Verbesserer) gibt es vorgefertigte Schreibstil-Vorlagen, die du unter **Einstellungen → KI-Workflows → „Schreibstil-Vorlage"** auswählst:
176+
Für den Workflow **Blitztext+** (Text-Verbesserer) gibt es vorgefertigte Schreibstil-Vorlagen, die du unter **Einstellungen → KI-Workflows → „Schreibstil-Vorlage"** oder direkt im **Compose-Fenster** auswählst:
163177

164178
| Vorlage | Wirkung |
165179
| --- | --- |
@@ -171,8 +185,34 @@ Für den Workflow **Blitztext+** (Text-Verbesserer) gibt es vorgefertigte Schrei
171185
| **Persönlich (Du-Form)** | Klarer Text in der persönlichen Du-Form. |
172186
| **Höflich (Sie-Form)** | Klarer Text in der höflichen Sie-Form. |
173187
| **Kurz & präzise** | Maximal knapp, ohne Füllwörter und Wiederholungen. |
188+
| **Eigenes Preset…** | Ein freier System-Prompt, den du selbst unter **Einstellungen → Allgemein → „Eigenes Preset (Compose)"** festlegst. |
189+
190+
> Bei **Standard** wird zusätzlich der eingestellte **Tonfall** angewendet. Jede andere Vorlage bringt ihren eigenen Schreibstil mit und überschreibt den Tonfall. Eigennamen/Begriffe bleiben in allen Vorlagen erhalten.
191+
192+
---
193+
194+
## Compose-Fenster
195+
196+
Das **Compose-Fenster** (`✍ Compose…` im Tray-Kontextmenü) ermöglicht das Umschreiben beliebiger Texte mit der KI — ganz ohne Sprachaufnahme. Es eignet sich ideal zum Überarbeiten fertiger Entwürfe, E-Mails oder Notizen.
197+
198+
**Öffnen:** Klick auf das Tray-Icon → **✍ Compose…**
174199

175-
> Bei **Standard** wird zusätzlich der eingestellte **Tonfall** angewendet. Jede andere Vorlage bringt ihren eigenen Schreibstil mit und ersetzt den Tonfall. Eigennamen/Begriffe bleiben in allen Vorlagen erhalten.
200+
**Was du im Compose-Fenster tun kannst:**
201+
202+
| Element | Beschreibung |
203+
| :--- | :--- |
204+
| **Entwurf (linkes Feld)** | Text eintippen oder einfügen, der umgeschrieben werden soll. |
205+
| **Workflow** | Wähle zwischen Blitztext+ (Text-Verbesserer), Blitztext $%&! (Dampfablassen) oder Blitztext :) (Emojis). |
206+
| **Schreibstil-Vorlage** | Vorlage auswählen oder **Eigenes Preset…** für einen vollständig freien System-Prompt. |
207+
| **Tonfall** | Locker, neutral oder professionell. Aktiv nur bei **Standard**-Preset + **Blitztext+**; bei allen anderen Vorlagen ausgegraut (Tooltip erklärt warum). |
208+
| **Verbessern** | Sendet den Entwurf an die KI und zeigt das Ergebnis im rechten Feld. |
209+
| **Varianten-Verlauf** | Die letzten 10 generierten Ergebnisse der aktuellen Sitzung werden als scrollbare Liste gespeichert — Klick auf einen Eintrag stellt ihn wieder her. |
210+
| **Signatur** | Hängt deine gespeicherte Signatur an (konfiguriert unter **Einstellungen → Allgemein**). Ersetzt automatisch gängige KI-generierte Platzhalter wie `[Your Name]`, `[Ihr Name]`, `[Vorname Nachname]`, `[Signature]` u. Ä. — kein verlorener Platzhalter bleibt zurück. |
211+
| **Kopieren** | Kopiert das Ergebnis in die Zwischenablage. |
212+
| **Einfügen & Schließen** | Fügt das Ergebnis direkt in die aktive Anwendung ein und schließt das Fenster. |
213+
214+
> [!NOTE]
215+
> Signatur und eigener Preset-Text werden unter **Einstellungen → Allgemein** konfiguriert. Setze dort „Signatur für das Compose-Fenster" und aktiviere „Nach jeder Generierung automatisch anhängen", wenn die Signatur bei jedem Ergebnis ergänzt werden soll.
176216
177217
---
178218

@@ -220,20 +260,21 @@ Das Tray-Kontextmenü gibt dir schnellen Zugriff auf alle Workflows, das Compose
220260
221261
---
222262

223-
## Hauptfenster (grafischer Fallback)
263+
## Hauptfenster
224264

225-
Falls du keine Tastatur parat hast oder Hotkeys blockiert sind:
265+
Das Hauptfenster ist dein grafisches Kontrollzentrum — nützlich, wenn Hotkeys blockiert sind oder du lieber mit der Maus arbeitest:
226266

227267
<div align="center">
228268
<br>
229269
<img src="docs/screenshots/linux/en/blitztext-ready.png" alt="Hauptfenster" width="300">
230270
<br><br>
231271
</div>
232272

233-
- **Maus-Steuerung:** Start/Stopp-Button für die Aufnahme.
234-
- **Workflow-Menü:** Dropdown für alle 5 Modi.
235-
- **Abbruch:** Verwirft eine Aufnahme sofort ohne Transkription.
236-
- **Schnellzugriffe:** Diktat, Verlauf, Vorlesen und Einstellungen.
273+
- **Workflow-Dropdown:** Alle 5 Aufnahmemodi zur Auswahl.
274+
- **Start/Stopp-Button:** Klick zum Starten oder Beenden einer Aufnahme.
275+
- **Abbruch:** Bricht die aktuelle Aufnahme ohne Transkription ab.
276+
- **Diktat / Verlauf:** Schnellzugriff auf den Diktat-Modus und den Transkript-Verlauf.
277+
- **Vorlesen / Einstellungen:** Öffnet das Vorlese-Fenster oder den Einstellungs-Dialog.
237278

238279
*Das Fenster öffnet sich beim Start sowie über den Tray-Eintrag **Fenster anzeigen** oder einen Klick auf das Tray-Icon. Schließen versteckt das Fenster nur — die App läuft im Tray weiter.*
239280

@@ -254,7 +295,7 @@ Zusätzlich zu den Workflows bietet das Tool drei Komfort-Funktionen:
254295
| :--- | :--- |
255296
| **Diktat-Modus** | Umschalter. Ist er aktiv, werden alle Transkripte als Diktat-Einträge gesammelt und einzeln als Markdown-Datei gespeichert. Im Verlauf erscheint dann eine Schaltfläche **Zusammenführen**, die alle Einträge kombiniert und in die Zwischenablage kopiert. |
256297
| **Verlauf…** | Öffnet ein Fenster mit den letzten Transkripten. Pro Eintrag: In Zwischenablage kopieren oder löschen. |
257-
| **Vorlesen…** | Lässt dir beliebigen Text vorlesen — lokal per **Piper TTS** (Standard) oder optional über **OpenAI Cloud-TTS** (inklusive Anbieter-, Stimmen- und Modellauswahl)! |
298+
| **Vorlesen…** | Lässt dir beliebigen Text vorlesen — lokal per **Piper TTS** (Standard) oder optional über **OpenAI Cloud-TTS** (inklusive Anbieter-, Stimmen- und Modellauswahl). Nutze die Schaltfläche **Exportieren**, um die Audioausgabe als Datei zu speichern. |
258299

259300
> [!NOTE]
260301
> **Diktat-Notizen** werden ausschließlich in einen Ordner **innerhalb des Home-Verzeichnisses** geschrieben (Schutz gegen Pfad-Ausbruch), mit Berechtigungen `0o600`.
@@ -303,9 +344,16 @@ Der Einstellungs-Dialog hat drei Tabs:
303344
"openai_api_key_env": "OPENAI_API_KEY",
304345
"autopaste": true,
305346
"audio_device": "@DEFAULT_SOURCE@",
347+
"llm_provider": "openai",
348+
"base_url": "",
349+
"llm_model": "gpt-4o-mini",
350+
"compose_signature": "",
351+
"compose_signature_auto_append": false,
352+
"compose_custom_preset_text": "",
306353
"workflows": {
307354
"text_improver_tone": "neutral",
308-
"emoji_density": "mittel",
355+
"writing_preset": "standard",
356+
"emoji_density": "medium",
309357
"dampf_system_prompt": ""
310358
}
311359
}
@@ -318,12 +366,17 @@ Der Einstellungs-Dialog hat drei Tabs:
318366
- **hotkey_mode**:
319367
- `toggle`: Einmal drücken startet, erneutes Drücken beendet.
320368
- `hold`: Aufnahme läuft solange der Hotkey gedrückt wird.
321-
- **openai_api_key_env**: Name der Umgebungsvariable für den OpenAI API-Key. Standard: `OPENAI_API_KEY`.
322-
- Der eigentliche Key liegt nicht in `config.json`, sondern in `~/.config/blitztext-linux/secrets.env` oder einer bereits gesetzten Umgebungsvariable.
369+
- **openai_api_key_env**: Name der Umgebungsvariable für den API-Key. Standard: `OPENAI_API_KEY`. Für OpenRouter: `OPENROUTER_API_KEY`.
370+
- **llm_provider**: `openai` (Standard), `openrouter` oder `custom`.
371+
- **base_url**: Eigene API-Base-URL. Leer = OpenAI-Standard. Für OpenRouter: `https://openrouter.ai/api/v1`.
372+
- **llm_model**: Modellname beim Anbieter, z. B. `gpt-4o-mini` (OpenAI) oder `openai/gpt-4o` (OpenRouter).
323373
- **autopaste**: Fügt per `ydotool` ein.
324374
- **audio_device**: Name der Audioquelle.
375+
- **compose_signature**: Signaturtext, der im Compose-Fenster angehängt wird.
376+
- **compose_signature_auto_append**: Signatur nach jeder Generierung im Compose-Fenster automatisch anhängen (`true`/`false`).
377+
- **compose_custom_preset_text**: Freier System-Prompt für die Option „Eigenes Preset…" im Compose-Fenster.
325378
- **tts_provider**: TTS-Anbieter für „Vorlesen" — `piper` (lokal, Standard) oder `openai` (Cloud).
326-
- **tts_openai_model** / **tts_openai_voice**: Modell und Stimme für OpenAI Cloud-TTS (Standard: `gpt-4o-mini-tts`, `marin`).
379+
- **tts_openai_model** / **tts_openai_voice**: Modell und Stimme für OpenAI Cloud-TTS (Standard: `gpt-4o-mini-tts`, `nova`).
327380
- **tts_openai_consent**: `true`, sobald die einmalige Datenschutz-Bestätigung für Cloud-TTS erteilt wurde. Standard: `false`.
328381
- **workflows**: Feintuning von Tonalität (`text_improver_tone`), Schreibstil-Vorlage (`writing_preset`), Emojis (`emoji_density`) und dem Dampf-Prompt (`dampf_system_prompt`).
329382
</details>
@@ -338,7 +391,7 @@ Wir lieben Stabilität! Führe die Tests lokal aus:
338391
pytest
339392
```
340393

341-
Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich die GUI-Tests des Hauptfensters.
394+
Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich die GUI-Tests (Hauptfenster, Compose-Fenster).
342395

343396
<details>
344397
<summary><b>Verzeichnisüberblick</b></summary>
@@ -349,15 +402,20 @@ Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich di
349402
│ ├── __init__.py
350403
│ ├── audio_recorder.py # PulseAudio/PipeWire-Aufnahme via parec
351404
│ ├── blitztext_linux.py # PyQt6-Hauptanwendung (System-Tray)
405+
│ ├── compose_window.py # Compose-Fenster für textbasiertes KI-Umschreiben
352406
│ ├── config.py # Konfigurations-Manager
407+
│ ├── history_panel.py # Transkript-Verlauf-Panel
353408
│ ├── hotkey_service.py # evdev-basierter Hotkey-Daemon
354409
│ ├── i18n.py # Übersetzungen (DE/EN) für die Oberfläche
355-
│ ├── llm_service.py # OpenAI API Schnittstelle
410+
│ ├── llm_service.py # OpenAI / OpenRouter / eigene Endpunkte
411+
│ ├── main_window.py # Hauptanwendungsfenster
356412
│ ├── paste_service.py # Wayland-Clipboard-Integration
357413
│ ├── transcribe.py # Whisper-Transkription
358-
│ └── workflows.py # Workflows Definition
414+
│ ├── tts_window.py # Vorlese-Fenster mit Audio-Export
415+
│ ├── workflows.py # Workflow-Definitionen
416+
│ └── writing_presets.py # Schreibstil-Vorlagen-Definitionen
359417
├── tests/ # Test-Suite
360-
└── README.md # Dieses Dokument (englische Fassung)
418+
└── README.md # Englische Fassung (diese Datei: README.de.md)
361419
```
362420
</details>
363421

@@ -367,7 +425,7 @@ Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich di
367425

368426
- **Linux Exclusive:** Nur für Linux-Systeme.
369427
- **Wayland Fokus:** Entwickelt für Wayland (`wl-clipboard`, `ydotool`).
370-
- **Datenschutz:** Lokale Workflows bleiben zu 100% auf deinem Rechner. OpenAI wird nur bei Bedarf für LLM-Aufgaben kontaktiert.
428+
- **Datenschutz:** Lokale Workflows bleiben zu 100% auf deinem Rechner. OpenAI oder OpenRouter wird nur bei Bedarf für LLM- oder Cloud-TTS-Aufgaben kontaktiert.
371429
- **Sicherheit (`evdev` & `input` Gruppe):** Das Tool liest Input global über `/dev/input/event*`. Auf System-Ebene bedeutet dies, dass alle Prozesse des Benutzers Eingaben mitlesen könnten (Trade-off unter Wayland ohne XDG GlobalShortcuts). Nutzen Sie Blitztext nur in Umgebungen, denen Sie vertrauen!
372430
- **Entwickler-Hinweis:** Dieses Projekt wurde mit Unterstützung künstlicher Intelligenz (AI-assisted) entworfen. Architektur, Code und Tests wurden manuell gesichtet und auf Funktion/Sicherheit lokal verifiziert.
373431

0 commit comments

Comments
 (0)