/vscode-project-launcher

A desktop application to easily manage and launch VS Code workspaces

Primary LanguagePythonMIT LicenseMIT

VS Code Project Launcher

VS Code Project Launcher Python Linux License

A desktop application to easily manage and launch VS Code workspaces from a centralized interface.

Installation โ€ข Features โ€ข Usage โ€ข Contributing

๐Ÿš€ Features

  • Workspace Discovery: Automatically scans your development directories for .code-workspace files
  • Quick Launch: Double-click to open workspaces in VS Code
  • Search & Filter: Find workspaces quickly by name or path
  • Favorites: Mark frequently used workspaces as favorites
  • Recent Workspaces: Keep track of recently opened workspaces
  • Desktop Integration: Install as a desktop application on Linux
  • Configurable: Set custom scan directories and preferences

๐Ÿ“ธ Screenshots

Main Window Main application window showing workspace list with search and favorites

Settings Dialog Configuration dialog for scan directories and preferences

๐Ÿ›  Installation

Prerequisites

  • Python 3.7+
  • VS Code installed and accessible via code command
  • Linux desktop environment (tested on Fedora, Ubuntu, etc.)

Quick Setup

# Clone the repository
git clone https://github.com/Zajfan/vscode-project-launcher.git
cd vscode-project-launcher

# Run the setup script
./setup_launcher.sh

# Launch the application
./launch.sh

Manual Installation

# Install system dependencies (Fedora/RHEL)
sudo dnf install python3-tkinter

# Install Python dependencies
pip3 install --user -r requirements.txt

# Make scripts executable
chmod +x launch.sh cli.py src/install_desktop.py

Desktop Integration

# Install desktop shortcut and menu entry
python3 src/install_desktop.py --desktop-shortcut

# System-wide installation (requires sudo)
sudo python3 src/install_desktop.py --system --desktop-shortcut

๐Ÿ“š Usage

GUI Mode (Recommended)

Launch the graphical interface:

./launch.sh

Command Line Interface

# List all workspaces
./cli.py list

# Search for workspaces
./cli.py search "project name"

# Launch a workspace by index
./cli.py launch 1

# Launch a specific workspace file
./cli.py launch ~/path/to/workspace.code-workspace

# Show favorites and recent workspaces
./cli.py favorites
./cli.py recent

Keyboard Shortcuts

  • Ctrl+R or F5: Refresh workspace list
  • Ctrl+F: Focus search box
  • Ctrl+O or Enter: Open selected workspace
  • Ctrl+N: Open workspace in new window
  • Escape: Clear search

๐Ÿ— Project Structure

src/
โ”œโ”€โ”€ main.py              # Application entry point
โ”œโ”€โ”€ gui/                 # GUI components
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ main_window.py   # Main application window
โ”‚   โ”œโ”€โ”€ settings_dialog.py # Settings configuration
โ”‚   โ””โ”€โ”€ workspace_item.py # Workspace list item widget
โ”œโ”€โ”€ core/                # Core functionality
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ workspace_scanner.py # Workspace file discovery
โ”‚   โ”œโ”€โ”€ config_manager.py    # Configuration management
โ”‚   โ””โ”€โ”€ launcher.py          # VS Code launching logic
โ””โ”€โ”€ utils/               # Utility functions
    โ”œโ”€โ”€ __init__.py
    โ””โ”€โ”€ file_utils.py    # File system utilities

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  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

Development Setup

# Clone your fork
git clone https://github.com/yourusername/vscode-project-launcher.git
cd vscode-project-launcher

# Create virtual environment (optional)
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run the application
./launch.sh

Areas for Contribution

  • ๐Ÿ› Bug Reports: Found a bug? Please open an issue
  • ๐Ÿ’ก Feature Requests: Have an idea? Let's discuss it
  • ๐Ÿ“– Documentation: Help improve the docs
  • ๐Ÿงช Testing: Add unit tests and integration tests
  • ๐ŸŽจ UI/UX: Improve the interface design
  • ๐Ÿš€ Performance: Optimize scanning and launching

๐Ÿ› Troubleshooting

Common Issues

VS Code not found

# Install the 'code' command in VS Code
# Ctrl+Shift+P โ†’ "Shell Command: Install 'code' command in PATH"

Permission errors when scanning

# Check directory permissions
ls -la /path/to/directory

Missing tkinter

# Fedora/RHEL/CentOS
sudo dnf install python3-tkinter

# Ubuntu/Debian
sudo apt install python3-tk

๐Ÿ“ License

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

๐Ÿ™ Acknowledgments

  • VS Code team for creating an amazing editor
  • Python tkinter community for GUI framework
  • All contributors who help improve this project

โญ Support

If you found this project helpful, please consider:

  • โญ Starring the repository
  • ๐Ÿ› Reporting bugs and issues
  • ๐Ÿ’ก Suggesting new features
  • ๐Ÿค Contributing code or documentation

Made with โค๏ธ for the VS Code community