7.8 KiB
AeThex Desktop Launcher - Quick Start Guide
🎯 What Has Been Built
A complete desktop application launcher similar to Battle.net and Epic Games Launcher, featuring:
✅ Modern UI
- Battle.net/Epic-style interface with grid/list views
- Tab-based navigation (Library, Store, Updates, Downloads)
- Progress tracking for installations
- Play time and last played stats
✅ Desktop Integration
- System tray support (minimize to tray)
- Native window controls
- Auto-updater integration
- Cross-platform (Windows, macOS, Linux)
✅ App Management
- Launch apps from library
- Install/uninstall apps
- Track download progress
- Check for updates
✅ Build System
- Automated build scripts for all platforms
- GitHub Actions CI/CD workflow
- Platform-specific installers (MSI, DMG, DEB, AppImage)
🚀 Quick Start
For Development
# Install dependencies
npm install
# Run in development mode (opens launcher UI)
npm run dev:launcher
This will start the Tauri dev server with hot-reload enabled.
For Production Build
# Build for your current platform
npm run build:launcher
# Or use the build script
./build-launcher.sh # Linux/macOS
.\build-launcher.ps1 # Windows PowerShell
Platform-Specific Builds
# Windows
npm run build:launcher:windows
# macOS (requires macOS to build)
npm run build:launcher:macos
# Linux
npm run build:launcher:linux
📁 What Was Created
New Files
-
UI Components
client/src/components/DesktopLauncher.tsx- Main launcher UI componentclient/src/pages/launcher.tsx- Launcher page
-
Backend/Tauri
src-tauri/src/lib.rs- Enhanced with launcher commandssrc-tauri/Cargo.toml- Updated with new dependenciessrc-tauri/tauri.conf.json- Updated with launcher config
-
Build System
build-launcher.sh- Unix/Linux build scriptbuild-launcher.ps1- Windows PowerShell build script.github/workflows/build-launcher.yml- CI/CD workflow
-
Documentation
LAUNCHER_README.md- Complete launcher documentationLAUNCHER_BUILD.md- Detailed build instructionsLAUNCHER_QUICKSTART.md- This file
Modified Files
-
Routing
client/src/App.tsx- Added/launcherroute
-
Package Scripts
package.json- Added launcher build scripts
🎨 Features Overview
Library Tab
- See all installed applications
- Launch button for quick access
- Switch between grid and list views
- View play time and last played date
Store Tab
- Browse available applications
- Install new apps with one click
- Featured apps section
Updates Tab
- Check for app updates
- View update history
- One-click update all
Downloads Tab
- Track active downloads
- See installation progress
- Manage download queue
🔧 How It Works
Architecture
┌─────────────────────────────────────┐
│ React UI (DesktopLauncher.tsx) │
│ - Library, Store, Updates, etc. │
└──────────────┬──────────────────────┘
│
│ Tauri IPC
│
┌──────────────▼──────────────────────┐
│ Rust Backend (lib.rs) │
│ - launch_app() │
│ - install_app() │
│ - uninstall_app() │
│ - check_for_updates() │
└──────────────┬──────────────────────┘
│
▼
Native OS APIs
Tauri Commands
The Rust backend exposes these commands to the frontend:
launch_app(app_id)- Opens an application in a new windowinstall_app(app_id)- Downloads and installs an appuninstall_app(app_id)- Removes an installed appcheck_for_updates()- Checks for available updatesget_installed_apps()- Returns list of installed appsopen_app_folder(app_id)- Opens app folder in file explorer
System Tray
The launcher minimizes to system tray with:
- Left click: Show/hide window
- Right click: Context menu (Show, Quit)
- Auto-start on login (configurable)
🎯 Next Steps
1. Test the Launcher
# Start in dev mode
npm run dev:launcher
Navigate to the launcher (/launcher route) and test:
- ✅ Switching between tabs
- ✅ Changing view modes (grid/list)
- ✅ Try installing/launching apps (mock functionality)
2. Customize Branding
Update these files with your branding:
src-tauri/icons/- Replace with your app iconssrc-tauri/tauri.conf.json- Update app name, publisherclient/src/components/DesktopLauncher.tsx- Customize colors
3. Add Real Apps
Modify the apps array in DesktopLauncher.tsx to add your actual applications:
const [apps, setApps] = useState<LauncherApp[]>([
{
id: 'your-app',
name: 'Your App Name',
description: 'App description',
version: '1.0.0',
size: '100 MB',
installed: false,
installing: false,
image: '/your-app-image.jpg'
}
]);
4. Implement Real Download Logic
The current implementation simulates downloads. For real downloads:
- Add a download service in Rust backend
- Use
tauri-plugin-httpfor network requests - Stream download progress to frontend
- Extract/install downloaded files
5. Setup Auto-Updates
-
Generate signing keys:
npm run tauri signer generate -
Configure update endpoint in
tauri.conf.json -
Setup update server (see Tauri docs)
6. Build for Distribution
# Build production version
npm run build:launcher
# Find installers in:
# - Windows: src-tauri/target/release/bundle/msi/
# - macOS: src-tauri/target/release/bundle/dmg/
# - Linux: src-tauri/target/release/bundle/appimage/
7. Setup CI/CD
The GitHub Actions workflow is ready at .github/workflows/build-launcher.yml.
Add these secrets to your GitHub repository:
TAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY_PASSWORD
For macOS builds, also add:
APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORDAPPLE_IDAPPLE_PASSWORDAPPLE_TEAM_ID
📚 Resources
- Launcher UI: client/src/components/DesktopLauncher.tsx
- Rust Backend: src-tauri/src/lib.rs
- Full Docs: LAUNCHER_README.md
- Build Guide: LAUNCHER_BUILD.md
- Tauri Docs: https://v2.tauri.app/
🐛 Troubleshooting
"Command not found: tauri"
Install Tauri CLI:
npm install @tauri-apps/cli@latest --save-dev
Build fails on Linux
Install dependencies:
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev
Can't see system tray icon
On Linux, ensure your desktop environment supports system tray icons.
Dev mode shows blank screen
Check that:
- Vite dev server is running
- Port 5000 is available
- No firewall blocking localhost
💡 Tips
- Custom Icons: Replace icons in
src-tauri/icons/with your branding - Theme: The UI uses your shadcn/ui theme configuration
- Plugins: Add more Tauri plugins as needed (filesystem, shell, etc.)
- Analytics: Track app usage with your analytics service
- Localization: Add i18n for multiple languages
🎉 You're Ready!
Your desktop launcher is complete and ready for:
- ✅ Development testing
- ✅ Customization
- ✅ Adding real apps
- ✅ Building for distribution
- ✅ Setting up auto-updates
- ✅ CI/CD automation
Happy launching! 🚀
For issues or questions, see the full documentation in LAUNCHER_README.md and LAUNCHER_BUILD.md.