# AI Typist Client En smart skrivbordsassistent utvecklad i Rust och Tauri v2. Applikationen hjälper dig att översätta, rättstava och förbättra text i realtid genom att integrera lokala AI-modeller (Ollama) eller molntjänster (OpenAI) direkt i ditt arbetsflöde. ## 🚀 Komma Igång ### Förutsättningar För att utveckla och bygga applikationen behöver du följande installerat: 1. **Rust & Cargo**: ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` 2. **System-beroenden (Linux/Debian/Ubuntu)**: ```bash sudo apt update sudo apt install libwebkit2gtk-4.1-dev \ build-essential \ curl \ wget \ file \ libssl-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev ``` 3. **Cross-compilation (Windows från Linux)**: Om du vill bygga för Windows från Linux behöver du `nsis` samt Rust-målet för Windows: ```bash rustup target add x86_64-pc-windows-msvc # Observera att cross-compilation med MSVC kan kräva ytterligare konfiguration (libs). # Alternativt använd x86_64-pc-windows-gnu om du har Mingw installerat. ``` --- ## 💻 Utveckling i VS Code Det här projektet är konfigurerat för en smidig upplevelse i VS Code. ### Rekommenderade Tillägg VS Code kommer automatiskt rekommendera dessa, men se till att du har: * **rust-analyzer** (Rust språkstöd) * **Tauri** (Tauri verktyg) * **CodeLLDB** (För debugging) ### Debugging (Felsökning) Du kan köra och debugga appen direkt inifrån redigeraren: 1. Gå till **Run and Debug** fliken (Ctrl+Shift+D). 2. Välj **"Debug Tauri App"** i menyn. 3. Tryck **F5** (Play). * *Detta bygger appen och startar debuggern automatiskt. Du kan sätta breakpoints i din Rust-kod.* ### Bygga för Release 📦 För att skapa färdiga körbara filer (binärer) utan debug-info: 1. Öppna **Command Palette** (Ctrl+Shift+P). 2. Skriv och välj **"Tasks: Run Task"**. 3. Välj en av följande: * **Build Release (Linux)**: Skapar en optimerad build för Linux. * *Resultat:* `src-tauri/target/release/bundle/deb/` (eller AppImage) * **Build Release (Windows)**: Skapar en `.exe` för Windows. * *Resultat:* `src-tauri/target/x86_64-pc-windows-msvc/release/bundle/msi/` (eller nsis) --- ## 📂 Projektstruktur Så här hittar du i koden: * **`src-tauri/`**: Backend-koden (Rust) och Tauri-konfigurationen. * `Cargo.toml`: Beroenden för Rust. * `tauri.conf.json`: Inställningar för fönster, ikoner, behörigheter och bundles. * `build.rs`: Byggscript. * **`src/`**: Källkoden för backend. * `main.rs`: Entry point. * `controllers/`: Logik för applikationens tillstånd och kommandon. * `viewers/`: Hantering av fönster och System Tray. * `utilities/`: Hjälpfunktioner (loggning, config). * **`dist/`**: (Frontend) Om du har en frontend (HTML/JS/CSS) ligger de kompilerade filerna här som Tauri laddar. * **`.vscode/`**: Inställningar för debugging och tasks i VS Code. --- ## 🛠 Felsökning ### Error 71 (Protocol Error) på Linux (Wayland) Om appen kraschar eller inte startar på Wayland: Debuggern är konfigurerad att automatiskt sätta `WEBKIT_DISABLE_COMPOSITING_MODE=1`. Om du kör manuellt från terminalen: ```bash WEBKIT_DISABLE_COMPOSITING_MODE=1 cargo tauri dev ``` ### Debuggern startar inte * Kontrollera att du installerat **CodeLLDB** tillägget. * Om du får fel vid länkning, kontrollera att du har alla system-beroenden installerade (se "Förutsättningar"). --- ## 🧠 Teknisk Stack * **Core**: Rust * **Framework**: Tauri v2 * **Input Monitoring**: `enigo` (tangentbords-simulering), `global-hotkey` (genvägar) * **Clipboard**: `arboard` * **AI**: `ollama-rs` (lokal) & `reqwest` (API)