Automatic wallpaper rotation from GitHub repositories for Windows
A lightweight Windows system tray application that synchronizes and displays wallpapers from any GitHub repository with automatic rotation using Windows native slideshow.
- π¨ System Tray Application - Runs discreetly in the background
- π GitHub Sync - Pull wallpapers from any public or private repository
- π³ Visual Selection - TreeView interface to select specific images
- π¬ Native Windows Slideshow - Uses Windows slideshow with smooth transitions
- π§ Smart Buffering - Maintains 2-3 images locally to optimize downloads
- βοΈ Configurable - Rotation interval, sequential/random order, fit modes
- πΎ Persistent Settings - Your preferences are automatically saved
- πͺΆ Lightweight - Only ~20-35 MB RAM usage
- Download the latest release from Releases
- Extract
GitHubWallpaper.exe - Double-click to launch
- An icon appears in the system tray (taskbar)
- Right-click the tray icon β Settings
- Repository tab:
- Enter GitHub URL (e.g.,
https://github.com/dharmx/walls) - Add GitHub token if private repo
- Click "Load Repository Structure"
- Enter GitHub URL (e.g.,
- Image Selection tab:
- Check/uncheck desired images
- Folders can be toggled to select all children
- Slideshow Settings tab:
- Set rotation interval (default: 15 minutes)
- Choose sequential or random order
- Select fit mode (recommended: "Fit" for ultra-wide screens)
- Click Save
- Right-click tray icon β Start
Windows requires manual slideshow activation the first time:
- Right-click Desktop β Personalize
- Background β Type: "Slideshow"
- Browse β Select:
%USERPROFILE%\Pictures\GitHubWallpapers - Other settings are already configured β
After this one-time setup, the app manages everything automatically.
- OS: Windows 10 (1803+) or Windows 11
- .NET: 8.0 Runtime (or use self-contained build)
- Disk: 100 MB free space (for cache)
- Network: Internet connection
- .NET 8.0 SDK
- Visual Studio 2022 (optional)
# Clone repository
git clone https://github.com/yourusername/github-wallpaper.git
cd github-wallpaper
# Build (Windows)
build.bat
# OR manual build
dotnet build -c Release
# OR self-contained build (no .NET required)
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueExecutable will be in: bin/Release/net8.0-windows/win-x64/publish/
GitHubWallpaper/
βββ Core/ # Business logic
β βββ ConfigManager.cs # JSON configuration
β βββ GitHubService.cs # GitHub API integration
β βββ WallpaperManager.cs # Windows registry manipulation
β βββ ImageRotator.cs # Rotation orchestration
βββ UI/ # User interface
β βββ SettingsWindow.xaml # WPF settings window
β βββ SettingsWindow.xaml.cs
βββ Models/ # Data models
β βββ AppConfig.cs
βββ App.xaml.cs # System tray app
- Configuration:
%APPDATA%\GitHubWallpaper\config.json - Image Cache:
%USERPROFILE%\Pictures\GitHubWallpapers\
{
"RepoUrl": "https://github.com/dharmx/walls",
"GitHubToken": null,
"RotationIntervalMinutes": 15,
"IsRandomOrder": false,
"FitMode": "Fit",
"SelectedImages": ["nature/image1.jpg", "..."],
"CurrentIndex": 0,
"BufferSize": 3,
"LocalCacheFolder": "C:\\Users\\...\\Pictures\\GitHubWallpapers"
}- Fit (Recommended) - Preserves aspect ratio, no distortion
- Fill - Fills screen, may crop slightly
- Stretch - Stretches to fill (distorts images)
- Center - Centers without resizing
- Span - Extends across multiple monitors
- Wait for configured interval (default: 15 minutes)
- Verify images are in cache folder
- Manually activate slideshow via Windows Settings
- See TROUBLESHOOTING.md for details
- Check internet connection
- Verify GitHub token (for private repos)
- Check tray icon notifications for errors
- Add a GitHub token (Settings > Repository tab)
- Tokens increase limit from 60/hour to 5000/hour
- Create token at: https://github.com/settings/tokens
See TROUBLESHOOTING.md for complete guide.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Clone your fork
- Open
GitHubWallpaper.slnin Visual Studio 2022 - Make your changes
- Test thoroughly
- Submit a PR
This project is licensed under the MIT License - see the LICENSE file for details.
- Octokit.NET - GitHub API library
- Newtonsoft.Json - JSON serialization
- dharmx/walls - Example wallpaper repository
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with β€οΈ for the Windows community