Skip to content

Repository files navigation

🌟 Pulse

Build & Release

Automatically change your wallpaper by downloading stunning images from the internet — all driven by your own search terms.

Forked from CodePlex Archive (link broken)


✨ Features

Feature Description
🖥️ Resolution-Aware Automatically picks wallpapers that match your screen resolution
🚫 Ban Wallpapers Ban any wallpaper you dislike — Pulse immediately fetches a fresh replacement
⚡ Smart Caching Search results and wallpapers are cached for fast load times
📦 Pre-Fetch Bulk-download all wallpapers returned by a search in one click
🔄 Auto-Change on Startup Wallpaper changes automatically every time Pulse launches

🔌 Providers

Pulse uses a plugin-based provider system. Input providers fetch image URLs; output providers apply wallpapers/effects.

📥 Input Providers

Provider Source Status Notes
🖼️ Local Directory Local filesystem ✅ Working Scans a folder for images by extension
🌌 Wallhaven wallhaven.cc ✅ Working Official API v1: keywords, categories, purity, resolution & colors
📡 Media RSS Any MediaRSS feed URL ✅ Working Works with DeviantArt and other RSS feeds
🚀 NASA APOD apod.nasa.gov ✅ Working Scrapes the Astronomy Picture of the Day archive
🌍 National Geographic ngm.nationalgeographic.com ❌ Dead Old endpoint returns 403 — needs URL update
🔍 Google Images images.google.com ❌ Blocked Google bot-detection blocks scraping

📤 Output Providers

Provider Purpose Status
🖥️ Wallpaper Setter Sets the Windows desktop wallpaper ✅ Working
🪟 Logon Background Changes the Windows 7 login screen background ⚠️ Win 7 only
💎 Aero Glass Changer Changes the Aero glass accent colour ⚠️ Win 7/8 only
📦 Piler Saves/organises downloaded images ✅ Working

Pulse UI


📁 Project Structure

The solution (Pulse.sln) is organized into core components, plugin providers, and test suites:

pulse/
├── PulseForm/                 # Main Windows Forms application (compiles to Pulse.exe)
│   ├── Tray icon lifecycle, options dialog, wallpaper scheduling
├── Pulse.Base/                # Core engine library (Pulse.Base.dll)
│   ├── Provider interfaces (IInputProvider, IOutputProvider)
│   ├── Dynamic plugin discovery & loading (ProviderManager)
│   ├── Wallpaper rotation engine (PulseRunner), DownloadManager, Settings
├── Pulse.Forms.UI/            # WinForms UI controls & monitors (Pulse.Forms.UI.dll)
│   ├── DownloadMonitor & DownloadQueue dialogs, provider settings controls
├── Providers/                 # Plugin providers (compiled into bin/<Config>/Providers/)
│   ├── Wallhaven/             # [Input] Wallhaven API v1 wallpaper search provider
│   ├── LocalDirectory/        # [Input] Scans local folders for wallpapers
│   ├── MediaRSS/              # [Input] Scrapes MediaRSS feeds (e.g., DeviantArt)
│   ├── NASAAPOD/              # [Input] Scrapes NASA Astronomy Picture of the Day
│   ├── GoogleImages/          # [Input] Google Images scraper (blocked by bot checks)
│   ├── NationalGeographicWallpapers/ # [Input] Legacy NatGeo photo scraper
│   ├── WallpaperSetter/       # [Output] Sets desktop wallpaper via Windows API
│   ├── Piler/                 # [Output] Automatically archives downloaded pictures
│   ├── LogonBackground/      # [Output] Windows 7 logon background changer
│   ├── AeroGlassChanger/      # [Output] Windows 7/8 Aero Glass tint synchronizer
│   └── WinAPI/                # Shared native Windows API P/Invoke interop library
├── Pulse.Tests/               # Unit and integration test suite (MSTest)
├── PulseMassDownloader/       # Standalone bulk wallpaper downloader utility
└── References/                # Third-party pre-compiled dependencies

🔨 Building & Running

📋 Prerequisites

🛠️ Building from Source

Option 1: Visual Studio

  1. Clone the repository:
    git clone https://github.com/RobbyB97/pulse.git
    cd pulse
  2. Open Pulse.sln in Visual Studio.
  3. Select your configuration: Release (or Debug) and Mixed Platforms.
  4. Restore packages: Right-click the solution in Solution Explorer > Restore NuGet Packages.
  5. Build: Press Ctrl+Shift+B or select Build > Build Solution.

Option 2: Command Line (MSBuild & NuGet)

  1. Restore NuGet dependencies:
    nuget restore Pulse.sln
  2. Build the solution using MSBuild:
    msbuild Pulse.sln /p:Configuration=Release /p:"Platform=Mixed Platforms" /m

Note

Build outputs are placed directly in the bin\ directory:

  • Application: bin\Release\Pulse.exe
  • Plugins: bin\Release\Providers\*.dll (automatically output to the Providers\ subfolder)

🏃 Running Pulse

  1. Navigate to the build output directory:
    cd bin\Release
  2. Run Pulse.exe:
    .\Pulse.exe
  3. Pulse runs in the background as a System Tray application:
    • Look for the Pulse icon in the Windows notification area (bottom-right taskbar).
    • Double-click the tray icon to advance to the next wallpaper.
    • Right-click the tray icon to access:
      • Next / Previous Picture: Cycle through wallpapers.
      • Ban Picture: Discard the current wallpaper and fetch a fresh replacement immediately.
      • Pre-Fetch: Bulk-download all wallpapers returned by the active search.
      • Settings / Options: Configure search queries, provider selection, rotation intervals, and resolution matching.
      • Download Monitor: Inspect the active image download queue and status.

🧪 Running Tests

Pulse includes unit and integration tests using MSTest.

  • In Visual Studio: Open Test > Test Explorer and click Run All Tests In View (Ctrl+R, A).
  • Via Command Line:
    vstest.console.exe Pulse.Tests\bin\Release\Pulse.Tests.dll /TestAdapterPath:packages\MSTest.TestAdapter.3.6.0\build\net462

📥 Download

⚠️ Pre-built binary releases are not currently available. Follow the Building from Source instructions above to compile and run Pulse.


📰 Articles & Press


🛠️ Built With

  • C# / .NET Framework 4.8 — Windows Desktop Application
  • Windows Forms (WinForms) — User interface and system tray management
  • Windows API (P/Invoke) — Desktop wallpaper manipulation (SystemParametersInfo / ActiveDesktop), Aero Glass, and logon integration
  • CsQuery — HTML parsing and scraping for web-based providers
  • MSTest v3 — Test framework and test adapter

Originally published on CodePlex. Forked and maintained here.

About

Pulse is an application that automatically changes your wallpaper by downloading images from the Internet. You choose the search options.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages