111 lines
3.8 KiB
Markdown
111 lines
3.8 KiB
Markdown
# 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)
|
|
|