feat: Init of Tauri application with system tray support and configuration
- Added main.rs to set up the Tauri application with a system tray. - Implemented a basic application state management using Mutex. - Created a system tray menu with options for "Settings" and "Quit". - Configured tauri.conf.json with application metadata and window settings.
This commit is contained in:
191
README.md
191
README.md
@@ -1,2 +1,191 @@
|
||||
# AI-translater-clinet
|
||||
# AI Typist Client
|
||||
|
||||
En cross-platform skrivbordsapplikation utvecklad i Rust och Tauri v2 för Windows 11 och Linux (med Wayland-stöd). Applikationen fungerar som en smart AI-assistent som integrerar sömlöst med ditt arbetsflöde via system-tray, globala genvägar och urklippshantering.
|
||||
|
||||
## Projektbeskrivning
|
||||
|
||||
Målet med detta projekt är att skapa ett verktyg som kan förbättra, rättstava eller översätta text i alla applikationer genom att utnyttja lokala LLM:er (via Ollama) eller molnbaserade API:er (OpenAI).
|
||||
|
||||
### Kärnfunktionalitet
|
||||
|
||||
1. **System Tray Integration**:
|
||||
* Applikationen körs i bakgrunden med en ikon i statusfältet/systemfältet.
|
||||
* Högerklick ger en meny för att komma åt inställningar eller avsluta appen.
|
||||
|
||||
2. **AI-Workflow**:
|
||||
* **Input**: Appen hämtar text direkt från systemets urklipp (clipboard).
|
||||
* **Bearbetning**: Texten bakas in i en prompt och skickas till en LLM (Ollama/OpenAI) för översättning eller rättstavning.
|
||||
* **Output**: Det bearbetade svaret kan antingen:
|
||||
* Kopieras tillbaka till urklipp.
|
||||
* Skrivas ut direkt i det aktiva fönstret genom att imitera tangentbordstryckningar (Keyboard Mimicry).
|
||||
|
||||
3. **Teknisk Stack**:
|
||||
* **Språk**: Rust
|
||||
* **GUI/Ramverk**: Tauri v2
|
||||
* **Tangentbord/Input**: `enigo` (mimic) & `global-hotkey` (lyssna)
|
||||
* **Urklipp**: `arboard`
|
||||
* **AI-Kommunikation**: `reqwest` & `ollama-rs`
|
||||
|
||||
## Förutsättningar
|
||||
|
||||
Du behöver Rust installerat (rekommenderat via `rustup`).
|
||||
|
||||
**Installera Rust (Linux/macOS):**
|
||||
```bash
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
# Följ instruktionerna på skärmen (standardinstallation är oftast bäst)
|
||||
source $HOME/.cargo/env
|
||||
```
|
||||
|
||||
**Felsökning: "cannot install while Rust is installed"**
|
||||
Om du får detta felmeddelande har du redan Rust installerat via systemets pakethanterare (vilket sällan stöder cross-compilation smidigt).
|
||||
|
||||
*Lösning:* Avinstallera system-versionen och kör scriptet igen.
|
||||
|
||||
* **Arch Linux:** `sudo pacman -Rs rust` (Kolla även om du har `cargo` installerat separat)
|
||||
* **Ubuntu/Debian:** `sudo apt remove rustc cargo`
|
||||
|
||||
**Verifiera installationen:**
|
||||
```bash
|
||||
rustc --version
|
||||
cargo --version
|
||||
```
|
||||
|
||||
### Linux-beroenden (Ubuntu/Debian)
|
||||
För att kompilera Tauri på Linux krävs följande bibliotek:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
### Linux-beroenden (Arch Linux / Manjaro)
|
||||
```bash
|
||||
sudo pacman -Syu
|
||||
sudo pacman -S webkit2gtk-4.1 \
|
||||
base-devel \
|
||||
curl \
|
||||
wget \
|
||||
file \
|
||||
openssl \
|
||||
gtk3 \
|
||||
libayatana-appindicator \
|
||||
librsvg
|
||||
```
|
||||
|
||||
*Obs: För Wayland-stöd hanterar GTK3/4 detta oftast automatiskt, men säkerställ att du kör en modern distribution.*
|
||||
|
||||
## Utveckling
|
||||
|
||||
### Installera Tauri CLI
|
||||
```bash
|
||||
cargo install tauri-cli --version "^2.0.0"
|
||||
```
|
||||
|
||||
### Kör i utvecklingsläge
|
||||
Gå in i `src-tauri` mappen eller kör från roten om konfigurerat korrekt, men standard är:
|
||||
```bash
|
||||
cd src-tauri
|
||||
cargo tauri dev
|
||||
```
|
||||
Detta kommer starta applikationen. Eftersom vi inte har en frontend (HTML/JS) ännu, kommer fönstret vara tomt eller vitt, men System Tray-ikonen ska synas.
|
||||
|
||||
## Debugging med VS Code (CodeLLDB)
|
||||
|
||||
För att debugga Rust-koden effektivt i VS Code, skapa filen `.vscode/launch.json` i roten av projektet med följande innehåll. Detta binder CodeLLDB till Tauri-processen.
|
||||
|
||||
```json
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug Tauri App",
|
||||
"type": "lldb",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/src-tauri/target/debug/ai-translater-client",
|
||||
"args": [],
|
||||
"cwd": "${workspaceFolder}/src-tauri",
|
||||
"preLaunchTask": "build",
|
||||
"sourceLanguages": ["rust"]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Cross-Compilation: Windows 11 från Linux
|
||||
|
||||
Att bygga Windows `.exe` från Linux är fullt möjligt med `cargo-xwin`.
|
||||
|
||||
1. **Installera cross-kompileringsverktyg:**
|
||||
|
||||
**Ubuntu/Debian:**
|
||||
```bash
|
||||
sudo apt install mingw-w64
|
||||
```
|
||||
|
||||
**Arch Linux:**
|
||||
```bash
|
||||
sudo pacman -S mingw-w64 clang lld
|
||||
# Välj "alla" (tryck Enter) om du tillfrågas om medlemmar i gruppen
|
||||
```
|
||||
|
||||
**Alla:**
|
||||
```bash
|
||||
cargo install cargo-xwin
|
||||
```
|
||||
|
||||
2. **Lägg till Windows target:**
|
||||
```bash
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
```
|
||||
|
||||
3. **Bygg för Windows:**
|
||||
Stå i `src-tauri` mappen och kör:
|
||||
```bash
|
||||
cargo tauri build --target x86_64-pc-windows-msvc --runner cargo-xwin
|
||||
```
|
||||
|
||||
Resultatet (exe & msi) hamnar i `src-tauri/target/x86_64-pc-windows-msvc/release/bundle/`.
|
||||
|
||||
## Windows-testning på Linux (Wine/Proton)
|
||||
|
||||
För att snabbt verifiera att Windows-bygget startar utan att byta OS:
|
||||
|
||||
1. **Installera Wine:**
|
||||
```bash
|
||||
sudo apt install wine64
|
||||
```
|
||||
|
||||
2. **Kör applikationen:**
|
||||
Navigera till output-mappen från steget ovan och kör:
|
||||
```bash
|
||||
wine "ai-translater-client.exe"
|
||||
```
|
||||
*Notera: System Tray kan bete sig annorlunda i Wine än i äkta Windows.*
|
||||
|
||||
## Packaging & Distribution
|
||||
|
||||
Tauri hanterar paketering automatiskt baserat på ditt OS.
|
||||
|
||||
### Linux (.deb & .AppImage)
|
||||
```bash
|
||||
cargo tauri build
|
||||
```
|
||||
Filerna genereras i `src-tauri/target/release/bundle/deb/` och `appimage/`.
|
||||
|
||||
### Windows (.msi & .exe)
|
||||
När du bygger via `cargo-xwin` (se ovan) eller på en Windows-maskin, genereras en `.msi` via WiX Toolset (om installerat) eller en `.exe` setup-fil via NSIS (standard i v2).
|
||||
|
||||
## Projektstruktur
|
||||
* `src-tauri/Cargo.toml`: Alla beroenden (tauri, enigo, ollama-rs, etc).
|
||||
* `src-tauri/src/main.rs`: Entry point. Innehåller logik för System Tray.
|
||||
* `src-tauri/tauri.conf.json`: Konfiguration för fönster och byggprocess.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user