work in progress

This commit is contained in:
2026-05-16 16:08:25 -04:00
commit da90e0da81
9 changed files with 983 additions and 0 deletions

80
README.md Normal file
View File

@@ -0,0 +1,80 @@
# Pixlit — Image Converter
A clean GTK4/libadwaita desktop application for converting images between formats, with first-class support for HEIC/HEIF files from iPhones and modern cameras.
## Features
- **HEIC / HEIF → JPEG, PNG, WebP** (and vice-versa)
- Supports: HEIC, HEIF, JPEG, PNG, WebP, BMP, TIFF, GIF as inputs
- Output formats: **JPEG**, **PNG**, **WebP**
- Quality slider (1100) with per-format behaviour
- Batch conversion — add as many files as you like
- Drag-and-drop file support
- Output directory picker
- Progress tracking per file
- Native GNOME look via libadwaita
## Building
### Quick local build
```bash
cd pixlit-nix
nix-build
./result/bin/pixlit
```
### Installing into your profile
```bash
nix-env -f . -i
pixlit
```
### NixOS system package (flake or configuration.nix)
```nix
# configuration.nix
environment.systemPackages = [
(pkgs.callPackage /path/to/pixlit-nix {})
];
```
## Requirements (handled automatically by Nix)
| Dependency | Purpose |
|---|---|
| Python 3 | Runtime |
| Pillow | Image decoding/encoding |
| pillow-heif (via Pillow HEIC plugin) | HEIC/HEIF support |
| PyGObject | GTK4 + GLib bindings |
| GTK 4 | Widget toolkit |
| libadwaita | GNOME HIG widgets |
| gobject-introspection | GObject type system |
## File Layout
```
pixlit-nix/
├── default.nix ← Nix derivation
├── pixlit.py ← Application source (GTK4/libadwaita)
├── pixlit.svg ← Scalable app icon
├── pixlit.png ← 512×512 icon
├── pixlit-512.png ← 512×512 icon
├── pixlit-256.png ← 256×256 icon
├── pixlit-128.png ← 128×128 icon
└── README.md ← This file
```
## Usage
1. Launch Pixlit
2. Click **Choose Files…** or drag images onto the drop zone
3. Select your desired output format (JPEG / PNG / WebP)
4. Adjust the quality slider
5. Choose where to save converted files
6. Click **Convert Images**
## License
MIT — see `default.nix` meta block.