Skip to content

Desktop Icon Backup Manager is a utility that allows users to save, restore, and manage the positions of Windows desktop icons, including support for adaptive scaling across different screen resolutions

License

Notifications You must be signed in to change notification settings

mapi68/desktop-icon-backup-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Desktop Icon Backup Manager

β˜• Liked this tool? Buy me a coffee! β€” ko-fi.com/mapi68

Python Windows GitHub release GitHub All Releases License


πŸ“– Documentation

User Manual

Tip

You can always access the latest updated documentation at the following link: User Manual (PDF)


πŸ› οΈ Development Status

Maintenance GitHub last commit GitHub release date


✨ Features

Core Functionality

  • πŸ’Ύ Quick Backup: Save your desktop icon layout with a single click, with an optional descriptive tag
  • β†Ί Restore Options: Restore from the latest backup or choose from a list of saved configurations
  • 🏷️ Custom Tags: Add descriptive tags to your backups for easy identification
  • πŸ“Š Resolution Tracking: Automatically records screen resolution and monitor metadata with each backup

Advanced Features

  • πŸ” Live Diff Preview: Before restoring, see a color-coded overlay showing exactly which icons will move (orangeβ†’red with arrow), which are already in place (blue), and which are missing from the desktop (green)
  • πŸ–ΌοΈ Visual Layout Preview: See a mini-map of your icon arrangement before restoring, with interactive tooltips showing icon names
  • πŸ”„ Adaptive Scaling: Automatically adjusts icon positions when restoring to a different screen resolution
  • πŸ–₯️ Multi-Monitor Support: Detects and handles multiple monitor configurations, with warnings when the setup differs from the saved backup
  • βš–οΈ Flexible Comparison: Compare any two backups against each other (not just vs. latest) to see added, removed, and moved icons β€” via context menu or the dedicated "Compare Two Selected…" button
  • πŸ—‘οΈ Smart Cleanup: Automatic deletion of old backups when a configured limit is reached (5, 10, 25, 50, or unlimited)
  • ⚑ System Tray Integration: Run minimized in the background with quick access to save/restore from the tray icon

Automation & CLI

  • Auto-Save on Exit: Automatically backup your layout when closing the application
  • Auto-Restore on Startup: Automatically restore the latest backup when the application starts
  • Command Line Interface: Run headless backup and restore operations for scripting and scheduled tasks
  • Background Operations: All operations run in a separate thread with real-time progress indicators

User Experience

  • πŸ“‹ Sortable Backup Table: Click any column header (Tag, Resolution, Icons, Timestamp) to sort the backup list
  • ↔️ Resizable Backup Manager: The window adapts to any screen size or DPI setting
  • 🌍 Multi-language: Auto-detected from system locale or manually selected
  • ⌨️ Keyboard Shortcuts: Full keyboard navigation β€” see shortcuts table below
  • πŸ“‹ Detailed Activity Log: Track all operations with timestamped entries; copy log with Ctrl+A / Ctrl+C
  • βœ… Confirmation Dialogs: Prevent accidental overwrites or deletions

πŸ“‹ Requirements

  • Windows 7 or higher (fully compatible with Windows 11)
  • Python 3.8+ (only if running from source)
  • Desktop icons must be visible (Right-click desktop β†’ View β†’ Show desktop icons)
  • No administrator rights required

πŸš€ Installation

Option 1: Download Pre-compiled Executable (Recommended)

  1. Download the latest desktop-icon-backup-manager.exe from the Releases page
  2. Place it in a dedicated folder
  3. Run the executable β€” no installation required!

Option 2: Run from Source

  1. Clone this repository:

    git clone https://github.com/mapi68/desktop-icon-backup-manager.git
    cd desktop-icon-backup-manager
  2. Install dependencies:

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

    python main.py

πŸ“– Usage Guide

Basic Operations

Saving Your Layout

  1. (Optional) Type a descriptive tag in the Save Tag field (e.g. Work Setup, Before Update)
  2. Click πŸ’Ύ SAVE QUICK BACKUP β€” or press Ctrl+S β€” to create a timestamped backup

Note

When using Ctrl+S, the backup is tagged "Quick Backup (Shortcut)" regardless of what is typed in the tag field. To apply a custom tag, use the button click.

Restoring Your Layout

  1. Click β†Ί RESTORE LATEST to restore from the most recent backup (a confirmation dialog is shown first)
  2. Or click β†Ί BACKUP MANAGER (Ctrl+M) to browse, preview, and restore any saved backup

Advanced Features

Live Diff Preview

When you select a backup in the Backup Manager, the preview panel fetches the current live positions from the desktop and renders a color-coded diff directly on a desktop-like canvas with a subtle grid:

Visual Meaning
πŸ”΅ Blue dot (with soft halo) Already in place, will not move
🟠 Orange dot ──▢ πŸ”΄ Red dot Will move: orange = current position, red = target from backup
🟒 Green dot In backup, not on desktop (will be skipped on restore)

A compact legend panel displayed outside the canvas (to the right of the backup info box) shows the colour coding used in the diff preview. Hover over any dot to see the icon name and status.

Command Line Interface (CLI)

The application supports headless operation for scripting and scheduled tasks. When --backup, --restore, or --silent is passed, no GUI is shown and the process exits immediately after the operation.

# Silent backup (uses settings.ini for cleanup limit)
desktop-icon-backup-manager.exe --backup --silent

# Restore the most recent backup silently
desktop-icon-backup-manager.exe --restore latest --silent

# Restore a specific backup file
desktop-icon-backup-manager.exe --restore "1920x1080_20241211_143015.json" --silent

Exit codes: 0 = success, 1 = error.

Automation with Windows Task Scheduler:

  1. Open Task Scheduler β†’ Create Basic Task
  2. Set trigger (e.g. Daily, or On logon)
  3. Action: Start a program β†’ path to desktop-icon-backup-manager.exe
  4. Add arguments: --backup --silent

System Tray Usage

  • Right-click the tray icon for quick Save / Restore Latest / Show Window / Exit
  • Double-click to show or hide the main window
  • Notifications appear for completed operations even when the window is hidden

Backup Manager

  • Search/filter backups by tag, resolution, or date in real time
  • Sortable table: click any column header (Tag, Resolution, Icons, Timestamp) to sort
  • Live diff preview shows which icons will move before you confirm a restore (see above)
  • Visual preview shows a dot-map of icon positions; hover over dots to see icon names
  • Compare any two backups via right-click β†’ Compare with Latest, or select one backup and click "Compare Two Selected…" to pick any second backup
  • Right-click a backup for Restore, Compare, or Delete options

Settings

Setting Description
Start Minimized to Tray Launch the app hidden in the system tray
Auto-Save on Exit Create a backup automatically when closing the app
Auto-Restore on Startup Restore the latest backup automatically on launch
Enable Adaptive Scaling on Restore Scale icon positions proportionally when restoring to a different resolution
Minimize to Tray on Close Hide to tray instead of quitting when clicking the X button
Automatic Backup Cleanup Limit Keep only the N most recent backups (5 / 10 / 25 / 50 / unlimited)

Warning

Combining Auto-Save on Exit with Auto-Restore on Startup creates an automatic save/restore cycle. If icons are in wrong positions when you exit, those wrong positions will be restored on next startup. Use the Backup Manager to restore a known-good layout if needed.


βš™οΈ Configuration

Settings are stored in settings.ini in the application directory and are created automatically on first run:

[General]
start_minimized=false
auto_save_on_exit=false
auto_restore_on_startup=false
adaptive_scaling_enabled=false
close_to_tray=false
cleanup_limit=0
geometry=@Rect(100 100 800 650)

Tip

You can edit settings.ini directly with any text editor. Changes take effect on the next program launch. Invalid values are automatically reset to defaults.


⌨️ Keyboard Shortcuts

Shortcut Action
Ctrl+S Quick Save current layout
Ctrl+M Open Backup Manager
Ctrl+, Open Settings menu
Ctrl+Q Exit Application
F1 Open Online User Manual

πŸ“ Backup File Format

Backups are stored as JSON files in the icon_backups subfolder, created automatically next to the executable.

File naming:

{width}x{height}_{YYYYMMDD}_{HHMMSS}.json
Example: 1920x1080_20241211_143015.json

File structure:

{
    "timestamp": "2024-12-11T14:30:15.123456",
    "icon_count": 12,
    "description": "Work Setup Final",
    "display_metadata": {
        "monitor_count": 2,
        "primary_resolution": "1920x1080",
        "screens": [...]
    },
    "icons": {
        "This PC": [100, 200],
        "Recycle Bin": [100, 350]
    }
}

Each backup file is typically 2–10 KB. With 50 backups, total storage is under 500 KB.


πŸ› Troubleshooting

"Unable to find desktop ListView control"

Desktop icons are hidden or inaccessible.

  • Right-click the desktop β†’ View β†’ enable Show desktop icons
  • Restart Windows Explorer via Task Manager if the error persists
  • Check that no third-party desktop replacement software is active

Icons restored to wrong positions

  • Enable Adaptive Scaling on Restore in the Settings menu
  • Make sure the same monitors are connected in the same arrangement as when the backup was created
  • Create separate backups for each monitor configuration (e.g. Laptop Only, Docked - 2 Monitors)

Program flagged by antivirus

The program accesses Windows Explorer's memory to read and write icon positions (standard Win32 API). Some antivirus tools may flag this behavior. Add the executable to your antivirus whitelist.

Settings not saved after restart

  • Make sure the application is closed via File β†’ Exit or Ctrl+Q, not via Task Manager
  • Check that settings.ini is writable (the folder must not be read-only or protected)

Application won't start

  • Only one instance can run at a time β€” check if it is already running in the system tray
  • If the app crashes immediately, delete settings.ini to reset all settings to defaults
  • If Auto-Restore on Startup is causing a crash, set auto_restore_on_startup=false in settings.ini manually

Multi-monitor issues

  • Enable Adaptive Scaling for automatic position adjustment between similar resolutions
  • For very different configurations, create and restore dedicated backups per setup
  • A warning dialog will appear if the number of monitors differs from the saved backup

πŸ™ Acknowledgments

  • Built with PyQt6 for the GUI
  • Uses pywin32 for Win32 API access to desktop icon positions

β˜• Support

If this tool saved you even 5 minutes of frustration, consider buying me a coffee β€” it helps keep the project alive and growing!

Support me on Ko-fi


πŸ“Έ Screenshots



Main interface showing the activity log and three main action buttons




Backup Manager window with list of saved backups and layout preview




Loading Desktop Backup Manager...




Desktop Icon Backup Manager featuring dark mode and Italian support




Detailed view of the comparison interface




Confirmation dialog before restoring a backup


About

Desktop Icon Backup Manager is a utility that allows users to save, restore, and manage the positions of Windows desktop icons, including support for adaptive scaling across different screen resolutions

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project