- 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.
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
-
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.
-
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).
-
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):
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 harcargoinstallerat separat) - Ubuntu/Debian:
sudo apt remove rustc cargo
Verifiera installationen:
rustc --version
cargo --version
Linux-beroenden (Ubuntu/Debian)
För att kompilera Tauri på Linux krävs följande bibliotek:
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)
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
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:
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.
{
"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.
-
Installera cross-kompileringsverktyg:
Ubuntu/Debian:
sudo apt install mingw-w64Arch Linux:
sudo pacman -S mingw-w64 clang lld # Välj "alla" (tryck Enter) om du tillfrågas om medlemmar i gruppenAlla:
cargo install cargo-xwin -
Lägg till Windows target:
rustup target add x86_64-pc-windows-msvc -
Bygg för Windows: Stå i
src-taurimappen och kör:cargo tauri build --target x86_64-pc-windows-msvc --runner cargo-xwinResultatet (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:
-
Installera Wine:
sudo apt install wine64 -
Kör applikationen: Navigera till output-mappen från steget ovan och kör:
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)
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.