Skip to content

A lightweight Windows system tray application that fetches and applies Bing's daily wallpapers to your desktop automatically. Built with Python and PyQt6.

License

Notifications You must be signed in to change notification settings

Xseba360/pyBingWallpaper

Repository files navigation

πŸ–ΌοΈ pyBingWallpaper

Python License: MIT Windows PyQt6 VirusTotal Badge

A lightweight system tray application that automatically downloads and sets Microsoft Bing's daily wallpaper as your desktop background. Features multilingual support, customizable update intervals, and various wallpaper display options.

✨ Features

  • πŸ”„ Automatic Updates: Fetches and applies Bing's daily wallpaper automatically
  • 🌍 Multi-Region Support: Choose from different Bing regions (US, UK, Japan, etc.)
  • 🎨 Display Options: Multiple wallpaper fill types (Fill, Fit, Stretch, Tile, Center)
  • 🌐 Multilingual: Support for English, German, French, and Polish
  • βš™οΈ System Tray Integration: Runs quietly in the background with easy access
  • πŸ“ Resolution Options: Support for UHD, FHD, and other resolutions
  • ⏰ Customizable Timing: Set your preferred update frequency
  • πŸ“± Navigation: Browse through recent wallpapers with Previous/Next buttons

πŸ–₯️ Screenshots

Settings Window Tray Menu

The application runs as a system tray icon with a context menu providing easy access to all features:

  • View current wallpaper information
  • Navigate through recent wallpapers
  • Access settings
  • Manual wallpaper application

πŸš€ Installation

Option 1: Download Pre-built Executable (Recommended)

  1. Download the latest pyBingWallpaper.exe from the Releases page
  2. Run the executable - no installation required!
  3. The application will start minimized to the system tray

Option 2: Run from Source

  1. Clone the repository:

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

    pip install -r requirements.txt
  3. Run the application:

    python main.py

πŸ”§ Building from Source

Requirements

  • Python 3.13 or higher
  • PyQt6
  • PyInstaller
  • Windows OS

Build Instructions

Method 1: Using Build Scripts

PowerShell (Recommended):

.\build.ps1

Batch File:

build.bat

Method 2: Manual Build

  1. Set up virtual environment:

    python -m venv .venv
    .\.venv\Scripts\activate
    pip install -r requirements.txt
  2. Build with PyInstaller:

    pyinstaller --clean pyBingWallpaper.spec
  3. Find your executable: The compiled executable will be in dist\pyBingWallpaper.exe

Build Features

  • Single file executable: Everything packed into one .exe file (~40MB)
  • No console window: Runs as a windowed application
  • Custom icon: Uses the application icon
  • UPX compression: Optimized file size
  • Bundled resources: All data files included automatically

πŸ“– Usage

  1. First Launch: The application starts minimized to the system tray

  2. Right-click the tray icon to access the menu:

    • View current wallpaper description
    • Navigate with "Older" and "Newer" buttons
    • Apply wallpaper manually
    • Open Settings
    • Quit application
  3. Configure Settings:

    • Language: Auto-detect or choose manually
    • Resolution: UHD, FHD, or other available options
    • Region: Select your preferred Bing region
    • Update Frequency: Set interval in minutes
    • Fill Type: Choose how wallpaper fits your screen
    • Auto Apply: Enable/disable automatic wallpaper updates

βš™οΈ Configuration

Settings are automatically saved to %APPDATA%\pyBingWallpaper\config.json and include:

{
  "language": "auto",
  "resolution": "UHD",
  "region": "en-US",
  "update_minutes": 60,
  "auto_apply": true,
  "fill_type": "Fill"
}

Supported Regions

The application supports numerous Bing regions including:

  • en-US (United States)
  • en-GB (United Kingdom)
  • ja-JP (Japan)
  • de-DE (Germany)
  • fr-FR (France)
  • And many more...

Fill Types

  • Fill: Scale image to fill screen (may crop)
  • Fit: Scale to fit screen (may show borders)
  • Stretch: Stretch to fill screen (may distort)
  • Tile: Repeat image to fill screen
  • Center: Center image without scaling

🌐 Localization

Currently supported languages:

  • πŸ‡ΊπŸ‡Έ English
  • πŸ‡©πŸ‡ͺ German (Deutsch)
  • πŸ‡«πŸ‡· French (FranΓ§ais)
  • πŸ‡΅πŸ‡± Polish (Polski)

Want to contribute a translation? See the Contributing section!

πŸ› οΈ Technical Details

Architecture

  • GUI Framework: PyQt6 for cross-platform compatibility
  • HTTP Client: Requests library for Bing API communication
  • Configuration: JSON-based settings with Windows registry integration
  • Wallpaper Setting: Windows API calls via ctypes
  • Background Processing: Threading for non-blocking operations

🀝 Contributing

Contributions are welcome! Here are some ways you can help:

🌍 Adding Translations

  1. Copy data/lang/lang_en.json to data/lang/lang_XX.json (where XX is your language code)
  2. Translate all string values
  3. Test the translation by setting your language in the config
  4. Submit a Pull Request

πŸ› Bug Reports

Please open an issue with:

  • Your Windows version
  • Python version (if running from source)
  • Steps to reproduce the issue
  • Error messages or screenshots

πŸ’‘ Feature Requests

Open an issue describing:

  • The feature you'd like to see
  • Why it would be useful
  • How you envision it working

πŸ”§ Development

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and test thoroughly
  4. Submit a Pull Request with a clear description

πŸ› Troubleshooting

Common Issues

Application won't start:

  • Check if Windows Defender quarantined the executable
  • Try running from command line to see error messages

Wallpapers not updating:

  • Check your internet connection
  • Verify the selected region is valid
  • Try manually applying a wallpaper from the menu

Settings not saving:

  • Ensure you have write permissions to %APPDATA%
  • Check if antivirus is blocking file access

Build errors:

# Clean previous builds
pyinstaller --clean pyBingWallpaper.spec

# Verify dependencies
pip list

# Check file paths
dir data\icon.ico

Getting Help

If you encounter issues:

  1. Check the Issues page for similar problems
  2. Review the troubleshooting section above
  3. Open a new issue with detailed information

πŸ“„ License

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

πŸ™ Acknowledgments

  • Microsoft Bing for providing beautiful daily wallpapers
  • The PyQt6 team for the excellent GUI framework
  • Contributors who have helped improve this project
  • The open source community for inspiration and support

πŸ“Š Project Status

This project is actively maintained. Check the commit history and issues for the latest updates.


⭐ Like this project? Give it a star on GitHub and share it with friends!

About

A lightweight Windows system tray application that fetches and applies Bing's daily wallpapers to your desktop automatically. Built with Python and PyQt6.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published