Skip to content

A modern web-based desktop environment that recreates the Arch Linux desktop experience in your browser. Built with SvelteKit and featuring a complete window management system, applications, and desktop utilities.

License

Notifications You must be signed in to change notification settings

ifsvivek/Arch-Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Arch Web Desktop

A modern web-based desktop environment that recreates the Arch Linux desktop experience in your browser. Built with SvelteKit and featuring a complete window management system, applications, and desktop utilities.

Arch Web Desktop License Version

โœจ Features

๐Ÿ–ฅ๏ธ Desktop Environment

  • Complete Window Management: Draggable, resizable windows with proper z-index handling
  • Modern Dock: macOS-style dock with application launcher and running application indicators
  • Top Bar: System status, time, and quick access to applications
  • Theme System: Light/Dark/Auto themes with system preference detection
  • Wallpaper Support: Multiple wallpaper options including custom backgrounds
  • ๐Ÿค– AI Assistant: Integrated AI assistant to control desktop functions using natural language

๐Ÿ“ฑ Built-in Applications

  • ๐Ÿ“ File Explorer: Browse and manage files and folders
  • ๐Ÿ“ Text Editor: Create and edit documents with syntax highlighting
  • ๐Ÿ’ป Terminal: Command-line interface simulation
  • ๐Ÿงฎ Calculator: Full-featured calculator application
  • ๐Ÿ–ผ๏ธ Image Viewer: View and manage images and photos
  • ๐Ÿ“Š System Monitor: Monitor system performance and resources
  • โš™๏ธ Settings: Configure desktop preferences and system options
  • ๐ŸŒ Web Browser: Browse the web with a built-in browser
  • ๐ŸŽต Music Player: Play and manage your music collection

๐Ÿ” Advanced Search

  • Intelligent App Search: Fuzzy search with scoring algorithm
  • Keyword Matching: Search by app name, category, or description
  • Real-time Results: Debounced search with performance metrics
  • Search Suggestions: Quick access to popular applications
  • Keyboard Shortcuts: Full keyboard navigation support

๐ŸŽจ Customization

  • Multiple Themes: Light, Dark, and Auto (system preference)
  • Wallpaper Gallery: Various wallpaper options including gradients
  • Responsive Design: Works on desktop, tablet, and mobile devices
  • Smooth Animations: Fluid transitions and hover effects
  • Glassmorphism UI: Modern backdrop blur effects

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn or pnpm

Installation

  1. Clone the repository

    git clone https://github.com/ifsvivek/Arch-Web.git
    cd Arch-Web
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
  3. Start the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
  4. Open your browser Navigate to http://localhost:5173 to see the desktop environment.

Building for Production

npm run build

The built application will be in the build/ directory, ready for deployment.

๐Ÿ—๏ธ Project Structure

src/
โ”œโ”€โ”€ components/           # Reusable UI components
โ”‚   โ”œโ”€โ”€ Dock.svelte      # Application dock with search
โ”‚   โ”œโ”€โ”€ TopBar.svelte    # System top bar
โ”‚   โ””โ”€โ”€ Window.svelte    # Window management component
โ”œโ”€โ”€ lib/
โ”‚   โ””โ”€โ”€ stores/          # Application state management
โ”‚       โ””โ”€โ”€ desktop.svelte.js  # Desktop state store
โ”œโ”€โ”€ routes/
โ”‚   โ””โ”€โ”€ +page.svelte     # Main desktop page
โ””โ”€โ”€ apps/                # Built-in applications
    โ”œโ”€โ”€ FileExplorer/
    โ”œโ”€โ”€ TextEditor/
    โ”œโ”€โ”€ Terminal/
    โ”œโ”€โ”€ Calculator/
    โ”œโ”€โ”€ ImageViewer/
    โ”œโ”€โ”€ SystemMonitor/
    โ”œโ”€โ”€ Settings/
    โ”œโ”€โ”€ WebBrowser/
    โ””โ”€โ”€ MusicPlayer/

๐Ÿ› ๏ธ Technology Stack

  • Frontend Framework: SvelteKit (Svelte 5 with Runes)
  • Styling: TailwindCSS
  • State Management: Svelte 5 Runes ($state, $derived)
  • Build Tool: Vite
  • Language: JavaScript

๐ŸŽฏ Key Features Explained

Window Management

  • Draggable Windows: Click and drag title bars to move windows
  • Resizable: Drag window edges and corners to resize
  • Z-Index Management: Click to bring windows to front
  • Minimum Size Constraints: Prevents windows from becoming too small

Dock Features

  • Application Launcher: Click dock icons to launch applications
  • Running App Indicators: Visual indicators for open applications
  • Search Integration: Comprehensive search with fuzzy matching
  • Tooltips: Hover information for all dock items
  • Smooth Animations: Scale and translate effects on hover

Search System

  • Multi-term Search: Search with multiple keywords
  • Scoring Algorithm: Intelligent relevance scoring
  • Fuzzy Matching: Handles typos and partial matches
  • Performance Optimized: Debounced input with timing metrics
  • Keyboard Navigation: Arrow keys and Enter support

Theme System

  • Auto Theme: Respects system dark/light preference
  • Manual Override: Choose specific light or dark themes
  • Persistent Settings: Saves preferences to localStorage
  • Smooth Transitions: Animated theme switching

๐ŸŽจ Customization

Adding New Applications

  1. Create a new component in src/apps/
  2. Add the application to the apps array in Dock.svelte
  3. Include appropriate icons and metadata

Custom Wallpapers

  1. Add wallpaper files to the static/ directory
  2. Update the wallpapers object in desktop.svelte.js
  3. Add wallpaper options to the Settings app

Styling

The project uses TailwindCSS for styling. Key design patterns:

  • Glassmorphism: backdrop-blur-xl bg-white/20
  • Smooth Transitions: transition-all duration-300
  • Theme-aware Classes: Dynamic classes based on theme state

Setting up the AI Assistant

The AI Assistant uses the Google Gemini API to provide natural language control of desktop functions.

  1. Get a Google Gemini API key from Google AI Studio
  2. Create a .env.local file in the project root
  3. Add your API key to the file: GEMINI_API_KEY=your_api_key_here
  4. Restart the development server

The AI Assistant can:

  • Open and close applications ("Open Calculator", "Close Terminal")
  • Change wallpapers ("Change wallpaper to forest")
  • Switch themes ("Set theme to dark")
  • Answer general questions

๐Ÿ“ฑ Browser Compatibility

  • โœ… Chrome 90+
  • โœ… Firefox 88+
  • โœ… Safari 14+
  • โœ… Edge 90+

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Inspired by the Arch Linux desktop environment
  • Built with the amazing SvelteKit framework
  • Icons and design inspired by modern desktop environments
  • Community feedback and contributions

๐Ÿ“ž Support

If you encounter any issues or have questions:

  • Open an issue on GitHub
  • Check the documentation
  • Review existing issues for solutions

About

A modern web-based desktop environment that recreates the Arch Linux desktop experience in your browser. Built with SvelteKit and featuring a complete window management system, applications, and desktop utilities.

Topics

Resources

License

Stars

Watchers

Forks