========================================================================
Plank & IceWM Icon Manager v1.0
========================================================================

A lightweight Vala/GTK3 tool designed for IceWM and Plank users to 
easily manage, generate, and assign custom icons (PNG, SVG, XPM) to 
standalone scripts, symlinks, and application launchers.
Mark Ulrich, 2026
License: GPLv2+
A lightweight Vala/GTK3 tool designed for IceWM and Plank users to 
easily manage, generate, and assign custom icons (PNG, SVG, XPM) to 
standalone scripts, symlinks, and application launchers.

Features:
  - Scans a directory and auto-generates clean .desktop entries.
  - Native GTK3 File Chooser with live image preview.
  - Support for PNG, SVG, XPM, and JPG/JPEG files (starts in /usr/share/icons/hicolor/).
  - Multilingual overrides (Icon[de], Icon[fr], etc.) are fully updated.
  - Safe, decoupled background restart of Plank tailored for IceWM.

Requirements:
  - Linux Mint (or any Ubuntu/Debian-based derivative running IceWM)
  - Vala Compiler (valac)
  - GTK+ 3.0 Development Libraries (libgtk-3-dev)
  - Plank Dock installed

Installation & Compilation:
  1. Install dependencies:
     sudo apt install valac libgtk-3-dev plank

  2. Compile the source and auto-generate initial configurations:
     make

  3. (Optional) Run clean-up to remove binaries:
     make clean

How to Use:
  1. Place your scripts (*.sh), symlinks, or custom shortcuts inside 
     your local source folder (automatically detects "~/Desktop/Program Manager" 
     or "~/Schreibtisch/Program Manager").
  2. Run 'make refresh-links' or just 'make' to generate core configurations.
  3. Start the UI:
     ./icon-picker
  4. Select your application from the dropdown and assign an icon.
  5. Open "~/.local/share/applications/pm-managed/" via your file manager 
     and drag-and-drop the finished launcher onto your Plank Dock.

File Manifest:
  - icon-picker.vala        : GTK3/Vala source code
  - generate_launchers.sh   : Script to sync local files to .desktop structures
  - Makefile                : Compilation and project automation
  - README.txt              : This documentation file
  - examples/               : Sample scripts and configuration files