diff --git a/.gitignore b/.gitignore index 25c7da7..0de1096 100644 --- a/.gitignore +++ b/.gitignore @@ -7,10 +7,11 @@ .DS_Store Thumbs.db -# VS Code -.vscode/ +# VS Code - Ignore everything but project-specific config +.vscode/* !.vscode/launch.json !.vscode/tasks.json +!.vscode/extensions.json # Node / Frontend (om det läggs till senare) node_modules/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..3ffe09b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "vadimcn.vscode-lldb", + "tauri-apps.tauri-vscode", + "rust-lang.rust-analyzer" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..2e69dab --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "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", + "env": { + "WEBKIT_DISABLE_COMPOSITING_MODE": "1", + // "GDK_BACKEND": "x11" // Uncomment if the above doesn't fix the initialization error + }, + "sourceLanguages": ["rust"] + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..2a66c24 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,69 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "type": "shell", + "command": "cargo", + "args": [ + "build", + "--manifest-path=./src-tauri/Cargo.toml", + "--no-default-features" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [ + "$rustc" + ] + }, + { + "label": "Build Release (Linux)", + "type": "shell", + "command": "cargo", + "args": [ + "tauri", + "build" + ], + "options": { + "cwd": "${workspaceFolder}/src-tauri" + }, + "group": "build", + "problemMatcher": [] + }, + { + "label": "Build Release (Windows)", + "type": "shell", + "command": "cargo", + "args": [ + "tauri", + "build", + "--target", + "x86_64-pc-windows-msvc" + ], + "options": { + "cwd": "${workspaceFolder}/src-tauri" + }, + "group": "build", + "problemMatcher": [] + }, + { + "label": "tauri dev", + "type": "shell", + "command": "cargo", + "args": [ + "tauri", + "dev" + ], + "options": { + "cwd": "${workspaceFolder}/src-tauri", + "env": { + "WEBKIT_DISABLE_COMPOSITING_MODE": "1" + } + }, + "group": "build", + "problemMatcher": [] + } + ] +} diff --git a/README.md b/README.md index cc1f500..74f7ec9 100644 --- a/README.md +++ b/README.md @@ -1,224 +1,110 @@ # 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. +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. -## Projektbeskrivning +## 🚀 Komma Igång -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). +### Förutsättningar -### Kärnfunktionalitet +För att utveckla och bygga applikationen behöver du följande installerat: -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. +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. + ``` -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` +## 💻 Utveckling i VS Code -## Förutsättningar +Det här projektet är konfigurerat för en smidig upplevelse i VS Code. -Du behöver Rust installerat (rekommenderat via `rustup`). +### 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) -**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 -``` +### Debugging (Felsökning) +Du kan köra och debugga appen direkt inifrån redigeraren: -**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). +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.* -*Lösning:* Avinstallera system-versionen och kör scriptet igen. +### Bygga för Release 📦 +För att skapa färdiga körbara filer (binärer) utan debug-info: -* **Arch Linux:** `sudo pacman -Rs rust` (Kolla även om du har `cargo` installerat separat) -* **Ubuntu/Debian:** `sudo apt remove rustc cargo` +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) -**Verifiera installationen:** -```bash -rustc --version -cargo --version -``` +--- -## Starta Applikationen +## 📂 Projektstruktur -För att starta applikationen i utvecklingsläge: +Så här hittar du i koden: -```bash -cargo tauri dev -``` +* **`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: Linux (Wayland) & "Error 71" -Om du använder Linux med Wayland (t.ex. GNOME eller KDE Plasma) kan du stöta på "Error 71 (Protocol error)" vid start. Detta är en känd bugg relaterad till WebKitGTK och hårdvaruacceleration. +--- -**Lösning:** -Kör applikationen med inaktiverad kompositering: +## 🛠 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 ``` -Alternativt för vissa NVIDIA-konfigurationer: -```bash -__NV_DISABLE_EXPLICIT_SYNC=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"). -### 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 -``` +## 🧠 Teknisk Stack -### 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. - -## Loggning - -Applikationen har inbyggt stöd för loggning för att underlätta felsökning. - -* **Plats:** Loggfiler sparas i en mapp som heter `loggs` som ligger i samma katalog som den körbara filen. -* **Filnamn:** En loggfil skapas per dag och döps efter dagens datum (t.ex. `2024-01-18.log`). -* **Format:** Loggarna innehåller tidsstämpel, loggnivå (INFO, DEBUG, ERROR), modul/funktion samt meddelandet. Exempel: - `[2024-01-18 10:00:00][INFO][ai_translater_client::main] Application started` -* **Loggade händelser:** Applikationsstart, system tray-händelser, felmeddelanden och annan viktig information loggas. +* **Core**: Rust +* **Framework**: Tauri v2 +* **Input Monitoring**: `enigo` (tangentbords-simulering), `global-hotkey` (genvägar) +* **Clipboard**: `arboard` +* **AI**: `ollama-rs` (lokal) & `reqwest` (API) diff --git a/src-tauri/.vscode/launch.json b/src-tauri/.vscode/launch.json new file mode 100644 index 0000000..4bb3011 --- /dev/null +++ b/src-tauri/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + "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"] + } + ] +} \ No newline at end of file diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png new file mode 100644 index 0000000..fa18fbb Binary files /dev/null and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000..e5019ee Binary files /dev/null and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png index 0550599..50c3150 100644 Binary files a/src-tauri/icons/32x32.png and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/64x64.png b/src-tauri/icons/64x64.png new file mode 100644 index 0000000..b5228ff Binary files /dev/null and b/src-tauri/icons/64x64.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png new file mode 100644 index 0000000..ab56efa Binary files /dev/null and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000..3fc7b28 Binary files /dev/null and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000..1d51554 Binary files /dev/null and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png new file mode 100644 index 0000000..322e421 Binary files /dev/null and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000..498a92d Binary files /dev/null and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000..a82befe Binary files /dev/null and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png new file mode 100644 index 0000000..72f133e Binary files /dev/null and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png new file mode 100644 index 0000000..d6edaae Binary files /dev/null and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png new file mode 100644 index 0000000..46ffbda Binary files /dev/null and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png new file mode 100644 index 0000000..9f940e4 Binary files /dev/null and b/src-tauri/icons/StoreLogo.png differ diff --git a/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml b/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..2ffbf24 --- /dev/null +++ b/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..f5fcff4 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..2d79eb5 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..cce6597 Binary files /dev/null and b/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..aa15f45 Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..ec42363 Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..d849d57 Binary files /dev/null and b/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..6628d08 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..badbda4 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..1fb978c Binary files /dev/null and b/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..7eba822 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..3d289b1 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..d9919f3 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..24bb065 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..81ecaa1 Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..0aa926e Binary files /dev/null and b/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/icons/android/values/ic_launcher_background.xml b/src-tauri/icons/android/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/icons/android/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns new file mode 100644 index 0000000..e063517 Binary files /dev/null and b/src-tauri/icons/icon.icns differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico new file mode 100644 index 0000000..c9c6158 Binary files /dev/null and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png new file mode 100644 index 0000000..3e8138f Binary files /dev/null and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@1x.png b/src-tauri/icons/ios/AppIcon-20x20@1x.png new file mode 100644 index 0000000..9eefd29 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png new file mode 100644 index 0000000..d8a07a8 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@2x.png b/src-tauri/icons/ios/AppIcon-20x20@2x.png new file mode 100644 index 0000000..d8a07a8 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-20x20@3x.png b/src-tauri/icons/ios/AppIcon-20x20@3x.png new file mode 100644 index 0000000..4adec7a Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-20x20@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@1x.png b/src-tauri/icons/ios/AppIcon-29x29@1x.png new file mode 100644 index 0000000..2303192 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png new file mode 100644 index 0000000..ef58ffb Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@2x.png b/src-tauri/icons/ios/AppIcon-29x29@2x.png new file mode 100644 index 0000000..ef58ffb Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-29x29@3x.png b/src-tauri/icons/ios/AppIcon-29x29@3x.png new file mode 100644 index 0000000..143bc42 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-29x29@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@1x.png b/src-tauri/icons/ios/AppIcon-40x40@1x.png new file mode 100644 index 0000000..d8a07a8 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png new file mode 100644 index 0000000..15ba61f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@2x-1.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@2x.png b/src-tauri/icons/ios/AppIcon-40x40@2x.png new file mode 100644 index 0000000..15ba61f Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-40x40@3x.png b/src-tauri/icons/ios/AppIcon-40x40@3x.png new file mode 100644 index 0000000..7279383 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-40x40@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-512@2x.png b/src-tauri/icons/ios/AppIcon-512@2x.png new file mode 100644 index 0000000..dd73d59 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-512@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-60x60@2x.png b/src-tauri/icons/ios/AppIcon-60x60@2x.png new file mode 100644 index 0000000..7279383 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-60x60@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-60x60@3x.png b/src-tauri/icons/ios/AppIcon-60x60@3x.png new file mode 100644 index 0000000..22c5b92 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-60x60@3x.png differ diff --git a/src-tauri/icons/ios/AppIcon-76x76@1x.png b/src-tauri/icons/ios/AppIcon-76x76@1x.png new file mode 100644 index 0000000..e82b82e Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-76x76@1x.png differ diff --git a/src-tauri/icons/ios/AppIcon-76x76@2x.png b/src-tauri/icons/ios/AppIcon-76x76@2x.png new file mode 100644 index 0000000..8da0067 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-76x76@2x.png differ diff --git a/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png new file mode 100644 index 0000000..2e346b5 Binary files /dev/null and b/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png differ