AeThex-OS/LAUNCHER_QUICKSTART.md

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

  1. UI Components

    • client/src/components/DesktopLauncher.tsx - Main launcher UI component
    • client/src/pages/launcher.tsx - Launcher page
  2. Backend/Tauri

    • src-tauri/src/lib.rs - Enhanced with launcher commands
    • src-tauri/Cargo.toml - Updated with new dependencies
    • src-tauri/tauri.conf.json - Updated with launcher config
  3. Build System

    • build-launcher.sh - Unix/Linux build script
    • build-launcher.ps1 - Windows PowerShell build script
    • .github/workflows/build-launcher.yml - CI/CD workflow
  4. Documentation

    • LAUNCHER_README.md - Complete launcher documentation
    • LAUNCHER_BUILD.md - Detailed build instructions
    • LAUNCHER_QUICKSTART.md - This file

Modified Files

  1. Routing

    • client/src/App.tsx - Added /launcher route
  2. 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 window
  • install_app(app_id) - Downloads and installs an app
  • uninstall_app(app_id) - Removes an installed app
  • check_for_updates() - Checks for available updates
  • get_installed_apps() - Returns list of installed apps
  • open_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 icons
  • src-tauri/tauri.conf.json - Update app name, publisher
  • client/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:

  1. Add a download service in Rust backend
  2. Use tauri-plugin-http for network requests
  3. Stream download progress to frontend
  4. Extract/install downloaded files

5. Setup Auto-Updates

  1. Generate signing keys:

    npm run tauri signer generate
    
  2. Configure update endpoint in tauri.conf.json

  3. 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_KEY
  • TAURI_SIGNING_PRIVATE_KEY_PASSWORD

For macOS builds, also add:

  • APPLE_CERTIFICATE
  • APPLE_CERTIFICATE_PASSWORD
  • APPLE_ID
  • APPLE_PASSWORD
  • APPLE_TEAM_ID

📚 Resources

🐛 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:

  1. Vite dev server is running
  2. Port 5000 is available
  3. No firewall blocking localhost

💡 Tips

  1. Custom Icons: Replace icons in src-tauri/icons/ with your branding
  2. Theme: The UI uses your shadcn/ui theme configuration
  3. Plugins: Add more Tauri plugins as needed (filesystem, shell, etc.)
  4. Analytics: Track app usage with your analytics service
  5. 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.