Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

QEMU GUI Manager

Python PyQt6 License Platform

A powerful and user-friendly graphical interface for managing QEMU virtual machines with multilingual support, designed for testing and debugging purposes.

QEMU GUI Manager Screenshot

🌟 Features

  • Virtual Machine Management

    • Create, edit, clone, and delete VMs
    • Start/stop VMs with one click
    • Support for multiple disk configurations
    • ISO image mounting for OS installation
  • Advanced Configuration

    • Memory management with slider (min/max)
    • CPU core configuration (hotplug support)
    • Multiple architecture support (x86_64, ARM, etc.)
    • Network configuration (NAT, Bridge, TAP)
    • Port forwarding support
  • Display Options

    • VNC support with password protection
    • SPICE protocol support
    • SDL and GTK display options
    • USB and audio support
    • Absolute pointer (tablet mode)
  • QEMU Monitor Integration

    • Built-in QEMU Monitor console
    • Send commands directly to VM
    • Monitor VM status in real-time
  • Multilingual Support

    • English, Русский, 中文, Deutsch, Français, Español
    • Easy language switching
    • Automatic language persistence
  • Additional Features

    • VM cloning with disk copying
    • Detailed logging system
    • Dark theme UI
    • Cross-platform support (Windows, Linux, macOS)
    • Context menus for quick actions
    • Persistent settings

📋 Requirements

System Requirements

  • Windows: Windows 10/11
  • Linux: Ubuntu 20.04+, Fedora 35+, or similar
  • macOS: 10.15+

Software Requirements

  • QEMU: Version 6.0+ (with qemu-img)
  • Python: 3.8 or higher
  • PyQt6: 6.0 or higher
  • Optional:
    • VNC Viewer (TigerVNC, Vinagre, etc.)
    • SPICE Client (spicy, virt-viewer)
    • socat (for Linux monitor)

Dependencies Installation

Ubuntu/Debian

sudo apt update
sudo apt install qemu-system-x86 qemu-utils socat
pip install PyQt6

Fedora/RHEL

sudo dnf install qemu-system-x86 qemu-img socat
pip install PyQt6

Arch Linux

sudo pacman -S qemu socat
pip install PyQt6

Windows

  1. Download QEMU from qemu.org
  2. Add QEMU to PATH environment variable
  3. Install Python dependencies:
pip install PyQt6

🚀 Installation

From Source

git clone https://github.com/yourusername/qemu-gui-manager.git
cd qemu-gui-manager
pip install -r requirements.txt

Quick Start

python qemu_gui.py

🎯 Usage

Creating a New VM

  1. Click "New VM" button or select VM → New VM from menu
  2. Fill in the basic settings:
    • VM Name
    • Memory (min/max/current)
    • CPU cores configuration
    • Architecture
  3. Configure disks:
    • Add disk(s) with size and format
    • Use existing disk or create new
  4. Set up network:
    • Choose network type (NAT, Bridge, TAP)
    • Configure port forwarding if needed
  5. Configure display:
    • Select display type (VNC, SPICE, SDL, GTK)
    • Set VNC/SPICE port
    • Enable USB, audio, tablet support
  6. Add additional QEMU arguments (optional)
  7. Click OK to create the VM

Managing VMs

  • Start: Select VM and click ▶ Start or use context menu
  • Stop: Select VM and click ⏹ Stop or use context menu
  • Edit: Select VM and click ✎ Edit (VM must be stopped)
  • Clone: Right-click VM → Clone from context menu
  • Delete: Select VM and click 🗑 Delete or use context menu

Using QEMU Monitor

  1. Start a VM
  2. Type commands in the monitor input field
  3. Press Enter to execute

Common monitor commands:

info cpus      - Show CPU information
info mem       - Show memory information
info block     - Show block device information
info network   - Show network information
info usb       - Show USB device information
info kvm       - Show KVM status

Language Switching

Go to File → Language and select your preferred language. The setting will be automatically saved.

⚙️ Configuration

Settings File Location

  • Linux/macOS: ~/.qemu_gui_settings.json
  • Windows: %USERPROFILE%/.qemu_gui_settings.json

VM Configurations

  • Linux/macOS: ~/qemu_vms/
  • Windows: %USERPROFILE%/qemu_vms/

Log Files

All logs are stored in:

  • Linux/macOS: ~/qemu_gui_logs/
  • Windows: %USERPROFILE%/qemu_gui_logs/

Default Settings

You can configure default settings through File → QEMU Settings:

  • QEMU binary path
  • Default memory, CPU cores, disk size
  • Default display and network settings
  • Global QEMU arguments
  • Monitor port range

🐛 Troubleshooting

Common Issues

QEMU not found

  • Solution: Set the correct QEMU path in Settings → QEMU Settings
  • Or install QEMU and add it to PATH

VM won't start

  1. Check QEMU path in settings
  2. Verify disk file exists
  3. Check if KVM is available (Linux only)
  4. Review console logs for detailed errors
  5. Ensure you have sufficient permissions

VNC connection fails

  • Verify VM is running
  • Check VNC port is not in use
  • Ensure VNC client is installed
  • Firewall might be blocking the connection

Monitor commands not working

  • VM must be running
  • Check if monitor port is available
  • On Linux, ensure socat is installed

VM stops immediately after start

  • Check console logs for error messages
  • Verify disk file exists and is not corrupted
  • Check if QEMU binary is executable
  • Ensure enough system resources (RAM, CPU)

📁 Project Structure

qemu-gui-manager/
├── qemu_gui.py          # Main application
├── translations.py      # Language translations
├── requirements.txt     # Python dependencies
├── README.md           # This file
├── LICENSE             # License file
└── screenshots/        # Screenshots directory

🤝 Contributing

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

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Adding New Languages

  1. Add language to LANGUAGES dict in translations.py
  2. Add translations for all strings in STRINGS dict
  3. Test the new language

📝 License

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

👥 Authors

  • Your Name - Initial work

🙏 Acknowledgments

📊 Roadmap

  • Snapshot management
  • VM export/import
  • Performance monitoring graphs
  • VM templates
  • Cloud integration
  • Remote VM management
  • Batch operations
  • VM migration support

📞 Support

⭐ Star History

If you find this project useful, please consider giving it a star! ⭐


Made with ❤️ for the QEMU community

About

QEMU crossplatform GUI based on PyQt6

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages