Skip to content

chorus-studio/largo

Repository files navigation

Largo 🎵

A beautiful, lightweight desktop controller for Spotify built with Tauri, SvelteKit, and TypeScript. Largo provides an elegant interface to control your Spotify playback with advanced features like auto-skip, track pinning, and dynamic theming.

Largo Screenshot

✨ Features

🎮 Media Control

  • Playback Controls: Play, pause, next, previous, seek forward/backward
  • Volume Control: Adjust volume and mute/unmute
  • Shuffle & Loop: Toggle shuffle and loop modes
  • Progress Bar: Interactive seek bar with time display

🎨 Visual Experience

  • Dynamic Theming: Automatically extracts colors from album artwork
  • Custom Themes: Choose from predefined color schemes
  • Album Art Display: High-quality cover art with hover details
  • Marquee Text: Smooth scrolling for long track titles

🚫 Smart Auto-Skip

  • Track Filtering: Automatically skip tracks based on title or artist keywords
  • Flexible Matching: Case-sensitive, whole word, or exact word matching
  • Track Blacklist: Skip specific tracks by ID
  • Keyword Management: Easy-to-use keyword configuration

📌 Track Management

  • Pinned Tracks: Save and quickly access your favorite tracks
  • Track Library: Grid view of pinned tracks with play controls
  • Quick Actions: Pin/unpin tracks with a single click

⚙️ Configuration

  • Seek Intervals: Customize forward/backward seek times
  • Loop Settings: Configure loop behavior
  • Persistent Settings: All preferences saved locally
  • System Integration: Runs in system tray with global shortcuts

🛠️ Tech Stack

  • Frontend: SvelteKit 5 + TypeScript
  • Desktop: Tauri 2 (Rust)
  • Styling: Tailwind CSS 4
  • UI Components: Custom components with Lucide icons
  • State Management: Svelte stores with Tauri plugin-store
  • Media Integration: AppleScript for Spotify control

📋 Prerequisites

  • macOS: Required for Spotify integration (uses AppleScript)
  • Spotify Desktop App: Must be installed and logged in
  • Node.js: Version 18 or higher
  • Rust: Latest stable version
  • Bun: For package management (recommended) or npm

🚀 Development Setup

  1. Clone the repository

    git clone https://github.com/yourusername/largo.git
    cd largo
  2. Install dependencies

    # Using Bun (recommended)
    bun install
    
    # Or using npm
    npm install
  3. Install Rust dependencies

    cargo install tauri-cli
  4. Start development server

    # Using Bun
    bun run tauri dev
    
    # Or using npm
    npm run tauri dev

🏗️ Building

Development Build

bun run tauri dev

Production Build

bun run tauri build

The built application will be available in src-tauri/target/release/.

🎯 Usage

Basic Controls

  • Play/Pause: Click the play/pause button or use media keys
  • Next/Previous: Navigate between tracks
  • Seek: Click on the progress bar or use seek buttons
  • Volume: Adjust using the volume slider

Auto-Skip Configuration

  1. Open the configuration panel (gear icon)
  2. Navigate to "Auto Skip" tab
  3. Enable auto-skip and add keywords
  4. Choose matching options (case-sensitive, whole words, etc.)

Track Pinning

  1. Click the heart icon on any track to pin it
  2. Access pinned tracks via the pin icon
  3. Click play on any pinned track to start playback

Theme Customization

  1. Open configuration panel
  2. Choose between "Dynamic" (album art colors) or "Custom" themes
  3. For dynamic themes, select vibrancy level
  4. For custom themes, choose from predefined color schemes

🤝 Contributing

We welcome contributions! Here's how you can help:

Development Workflow

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

Code Style

  • Follow TypeScript best practices
  • Use Svelte 5 runes syntax
  • Maintain consistent formatting with Prettier
  • Write meaningful commit messages

Testing

  • Test on macOS with Spotify desktop app
  • Verify all media controls work correctly
  • Test configuration persistence
  • Check theme switching functionality

🐛 Known Issues

  • macOS Only: Currently only supports macOS due to AppleScript integration
  • Spotify Dependency: Requires Spotify desktop app to be running
  • Permission Issues: May require accessibility permissions for global shortcuts

📄 License

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

🙏 Acknowledgments

📞 Support


Made with ❤️ for music lovers everywhere

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published