## Overview
This is the wallpaper package for Kubuntu, last updated for 26.04. As of this
release, it simply copies the wallpaper data from kubuntu-wallpapers to
/usr/share/wallpapers. As of the 26.04 release, all wallpapers are in SVG
format. Some preview images, however, must remain in PNG format.

## IMPORTANT
Please install the pre-commit hook as shown below to ensure PNG images are
compressed before sending to the repository:

```bash
ln -s '../../debian/git-hook-pre-commit' .git/hooks/pre-commit
```

## Project Structure
We used the `tree` command to create the following structure, which was then
edited for brevity and clarity.

```bash
├── debian/*           # Standard debian control metadata
├── kubuntu-wallpapers # MAPS TO /usr/share/wallpapers/
│   ├── Kubuntu/*      # Dynamic theme contains dark and light options
│   ├── KubuntuBlack/* # Dark gradient theme converted from PNG to SVG
│   └── KubuntuLight/* # Light-only theme reintroduced because of Plasma bugs
│
└── source-images      # Images used to create the wallpapers
    ├── BlueImages/    # Pre-2026.04 PNG images
    ├── inkscape-*     # SVG images with full inkscape details
    └── kubuntu_2604-* # SVG images optimized per KDE guidelines
```

## Image Mangling: Disabling PNG Compression
We have disabled `pkgbinarymangler` PNG Compression and implemented our own in
a pre-commit hook. This ensures PNG files are compressed before commit. It
also ensures that when we compare files from a live system (where packaged
files have been installed) to our package source, the PNG files that should
match still do.

The PNG compression is disabled in `debian/rules`:

```bash
# Added to debian/rules at top
export NO_PNG_PKG_MANGLE:=1
```

Please enable the pre-commit hook as discussed above in the "IMPORTANT"
section, above.

## Reason to Disable PNG Compression
A typical worflow for development of system packages looks like the diagram
below. The problem is that images are compressed while being packaged by a
process called `pkgbinarymangler`. Because these are compressed at package
time, they are certain NOT to match with the source images.

```
  +-------------------------------+
  | Developer starts with         |
  | development system with       |<---------------+
  | latest packages installed     |                |
  | and the latest package source.|                |
  +-------------------------------+                |
                  V                                |
  +-------------------------------+                |
  | Developer modifies system     |                |
  | files to meet development     |                |
  | goals.                        |           New Packages
  +-------------------------------+          are applied to
                  V                        development system
  +-------------------------------+                |
  | Modified system files are     |                |
  | COMPARED to the package       |                |
  | source, merged, and pushed.   |                |
  +-------------------------------+                |
                  V                                |
  +-------------------------------+                |
  | Package source is used        |----------------+
  | to create new packages.       |
  | PNGs are be compressed here   |
  |   by default.                 |
  +-------------------------------+
```

Once the developer creates and updateds a package and installs it, the diff
between the system and the package source goes from empty to a listing of
all the PNGs files in the package. This results in confusion and additional
work.

The solution we have applied is described above in the section
"Image Mangling: Disabling PNG Compression".

## End

