Skip to content

Releases: DynartInteractive/Pixee

Pixee 0.4.0

Pixee 0.4.0 Pre-release
Pre-release

Choose a tag to compare

@goph-R goph-R released this 20 Sep 18:56

Linux packaging. Pixee can now be built and installed as a Flatpak, which
brings with it the desktop integration it never had on Linux: an app icon, a
launcher entry, and metadata for software centres.

This is a quiet release if you're on Windows — the only thing you'll notice is
that the window finally has an icon. The full feature and keyboard list lives in
README.

Flatpak

flatpak install flathub org.kde.Platform//6.11 org.kde.Sdk//6.11 org.flatpak.Builder
flatpak run org.flatpak.Builder --user --install --force-clean \
    build packaging/net.dynart.Pixee.yml
flatpak run net.dynart.Pixee

The manifest builds from the working tree, so you don't need a tag or even a
commit to try one.

Pixee is not on Flathub yet. The packaging is done and verified, but
publishing needs a few things that aren't code — see
docs/flathub-requirements.md.

It reads more formats than the native build

The Flatpak runs on the KDE runtime, which bundles kimageformats. So it opens
HEIC/HEIF, AVIF, JPEG XL, PSD/PSB, XCF, KRA, ORA, DDS, QOI and SVG with no
extra work — the plugin juggling the Windows build needs
(docs/windows-extra-image-formats.md) has no
equivalent here. It's the single biggest practical difference between the two.

What the sandbox changes

A Flatpak runs confined, and three things follow from that:

  • Pixee asks for full filesystem access, because it's a file manager for
    images — it browses your folders with its own tree and moves files between
    them. The alternative sandbox mechanism hands over one file at a time, which
    can't express that.
  • It keeps its own data under ~/.var/app/net.dynart.Pixee/, separate from
    a native install's.
  • "Open with" uses your desktop's application chooser instead of Pixee's own
    configurable program list. Inside a sandbox the programs on that list aren't
    reachable, so the desktop has to make the handoff.

The Linux data folder moved

Pixee's thumbnail cache and user themes now live in the standard location —
~/.local/share/Dynart/Pixee instead of ~/.pixee.

You don't have to do anything: your existing cache is carried across the first
time you run 0.4.0, so you keep the thumbnails you already have, and a user
theme left in ~/.pixee/themes/ still works.

Windows is unchanged — it keeps ~/.pixee, where existing installs already
look.

The reason for the split is the Flatpak. It's granted access to your real home
so it can browse it, which means a path built from "your home folder" would
write into your actual home rather than the app's own storage. The standard
location resolves correctly in both cases.

Installing from source on Linux

make install now follows the normal freedesktop layout under a configurable
prefix, so a build lands where a Linux system expects it — binary in bin/,
themes in share/pixee/, and the icon, launcher entry and metadata in their
usual places:

qmake PREFIX=/usr/local Pixee.pro
make
sudo make install

Previously the only install rule put the binary in /opt/Pixee/bin and left the
themes behind entirely.

For contributors

  • docs/flatpak.md — the technical reference: what the sandbox
    changes about the app, which permissions it asks for and why, which linter
    errors are expected, and how to cut a release Flathub can build.
  • docs/flathub-requirements.md — the submission
    checklist.

Pixee 0.3.0

Pixee 0.3.0 Pre-release
Pre-release

Choose a tag to compare

@goph-R goph-R released this 16 Sep 12:11

Colour adjustment and a live histogram. Two new docks join Metadata in the
right-hand column, and the viewer grows a proper non-destructive editing layer
on top of the rotate / flip / crop it already had.

Everything from 0.1.0 and 0.2.0 is still here — this page covers what changed.
The full feature and keyboard list lives in README.

Colour adjustment

Adjust dock (View → Adjust, or Edit ▸ Adjust colours… in the viewer) —
live sliders for brightness, contrast, saturation, hue and gamma, applied to
the image as you drag. Hue runs ±180°, gamma 0.25–4.0, the rest ±100.

These are not baked pixels. Rotate, flip and crop bake — they are one-shot
transforms. A slider is not: re-applying "+5 brightness" to an already
brightened image on every mouse-move would compound and quietly destroy detail,
and dragging back to zero would leave you somewhere other than where you
started. So Pixee keeps the adjustment as a description and recomputes from
the original pixels every time it changes. Three things fall out of that:

  • Dragging a slider back to zero restores the original exactly.
  • Adjustments survive a rotation — rotate an adjusted image and the settings
    stay put, because they are re-applied to the rotated pixels rather than being
    stuck in them.
  • Hold B to see the unadjusted image for as long as you hold it.

Resetting — double-click any slider's label to reset just that row, or
Reset all for the lot.

It stays responsive on big files. The preview runs on a screen-resolution
proxy rather than the full image: a full pass over a 24 MP photo measures
174 ms, which is far too slow to drag against; the proxy does it in 15 ms.
Zooming past 1:1 falls back to full resolution, so inspecting detail
mid-adjustment stays sharp rather than going soft. The full-resolution pass
happens exactly once — when you save.

Saving — an adjustment counts as an unsaved edit, so File → Save
(Ctrl + S), Save As… (Ctrl + Shift + S) and the prompt when you navigate
away all cover it, the same as a crop or a rotation.

The panel is viewer-only and greys out while you are browsing, since
adjusting needs the full-resolution image.

Histogram

Histogram dock (View → Histogram) — RGB (additively blended, so
overlapping channels read as the colour they actually make) or luminance, an
optional log scale for when one flat expanse of sky would otherwise squash
everything else onto the axis, and a clipping readout giving the percentage
of the image pushed off each end.

In the viewer it reads the same pixels being painted, so it follows every
adjustment as you drag rather than lagging a step behind — watch the clipping
figures while you push contrast. It always covers the whole image, so panning
and zooming never reshape it.

While browsing it follows the file list instead: select a single image and
it reads that file off-thread, so a slow network share never stalls the list.
Select several, or none, and the graph empties rather than leaving the previous
image's distribution on screen looking like it belongs to the new selection.

Interface

The right-hand docks stack. Metadata, Adjust and Histogram now sit above one
another rather than as tabs, so an open histogram and an open metadata panel are
visible at the same time — which matters when the histogram is the thing you are
watching while you drag a slider. All three fit alongside the image at
1280×720, Pixee's baseline resolution.

Dark theme — the new panels' labels, spin boxes and drop-downs are themed
properly rather than falling back to near-black text on a dark background.

File operations

Del / Shift + Del with the folder tree focused deletes the folder
selected there — to the recycle bin or permanently — with the same confirmation
and task pipeline as the file list, then steps the selection up to the parent.

Ctrl + V with the folder tree focused pastes into the folder selected
there, rather than into the folder you happen to be browsing.

Fixed

Folders open scrolled to the top again. Qt re-roots a list view without
resetting its scroll offset, so a folder could open part-way down — or pinned to
its bottom when it was shorter than the one before it.

Getting it

  • InstallerPixee-0.3.0-setup.exe. Bundles everything: the Qt runtime,
    the VC++ runtime, HEIC / AVIF / PSD / XCF support, and the Exiv2 backend for
    full EXIF / IPTC / XMP in the Metadata panel.
  • PortablePixee-0.3.0-portable.zip. Same contents, unzip and run, no
    installation needed. It still keeps its thumbnail cache in ~/.pixee and its
    window/panel state in the registry, so it is not a no-trace build.

The installer is still unsigned, so SmartScreen will warn on first run —
choose More info → Run anyway.

Notes

Adjustments live for as long as you have the image open. Pixee does not keep
them in a sidecar file to re-apply later; save the result if you want to keep
it. Rotation still re-encodes the pixels — lossless orientation-only rotation
needs metadata write support, which the Exiv2 backend does not do yet.

Initial version

Initial version Pre-release
Pre-release

Choose a tag to compare

@goph-R goph-R released this 31 Jul 16:14

First versioned build — a pre-release snapshot shared with friends. Everything
below is the feature set as of this tag.

Browsing

  • Folder browsing with a multi-drive root and async directory enumeration
    off the GUI thread. .. always sorts first. On Linux and macOS (single drive)
    the / row is hidden — the tree starts at the contents of / and Pixee opens
    in your home folder unless a previous session or a command-line image says
    otherwise; other volumes (/media, /mnt, /Volumes) stay reachable by
    browsing.
  • Background re-scan on entry — entering a folder diffs it against disk in
    the background, so files added or removed by another app appear without a
    manual F5.
  • SMB-friendly — chunked file reads with cooperative abort, off-GUI
    directory enumeration, and no QFileSystemModel / QFileDialog for the
    browser (both behave poorly on Windows network shares).

Thumbnails

  • Thumbnail pipeline — local SQLite cache (WAL), a four-worker decode pool,
    a viewport-driven priority queue (top-left → bottom-right), per-session
    negative caching, and automatic background fill of the rest of the folder once
    the visible cells are done.
  • Refresh thumbnail context-menu action (for images, and for folders — which
    rebuild their index-image overlay) force-rebuilds a thumbnail from the file's
    current bytes — the escape hatch for one cached while the file was still being
    written (a long export).
  • Folder index thumbnails — the alphabetically-first image inside each folder
    is auto-picked and overlaid on the folder icon (configurable margin / border /
    vertical offset). The pick uses the same locale-aware, case-insensitive
    ordering as the file list, so the overlay always matches the first cell you see
    on entering the folder — and it stays alphabetical no matter how the list is
    sorted.

Sorting

  • View → Sort by orders the file list by name, creation date, or
    modification date, ascending or descending (two independent, sticky choices).
    Folders stay grouped ahead of files and always sorted alphabetically A→Z (only
    the files follow the chosen key/direction); .. stays first regardless. The
    folder tree and the folder index overlay are always name-sorted.

Viewer

  • Integrated image viewer — async chunked loading with a cached-thumbnail
    placeholder, fit / 1:1 / discrete zoom (0.1×), pan with Space + LMB or
    middle-drag, 90° rotate, F11 fullscreen, and a 5-image preload cache for
    instant prev/next.
  • Pixel-art aware — nearest-neighbor upscaling for images smaller than the
    cell, smooth scaling for downscaling. Transparent images render over a
    configurable checker pattern.

Formats

  • Format support for everything Qt's image plugins can decode — JPEG, PNG,
    WebP, GIF, BMP, ICO — plus whatever extra plugins (HEIC, AVIF, PSD via
    kimageformats, …) are installed against your Qt build. ICO files pick the
    highest-area, highest-bit-depth sub-image.

File operations

  • Copy / Cut / Paste / Move / Rename / Delete / New folder, batched through a
    task pipeline with a modal conflict prompt (Skip / Rename / Overwrite). When a
    batch finishes, the files it added to the current folder are selected and
    scrolled into view (toggle in Settings).

Settings & languages

  • Settings window (Edit → Settings…) — a non-modal, always-on-top panel
    with searchable settings (type to filter any label), grouped in an icon
    sidebar, Save / Cancel. Currently: Select added files and Language.
  • Languages — English plus Hungarian / German / French / Spanish scaffolding;
    pick one in Settings (restart to apply) or follow the OS locale. Untranslated
    strings fall back to English.

Appearance

  • Themable — Qt stylesheet (style.qss) plus an INI for non-CSS values
    (style.ini). User overrides drop in at ~/.pixee/themes/<name>/. Dark theme
    included.

Packaging (Windows)

  • Portable buildscripts\make-portable.bat produces a self-contained
    folder + zip (HEIC/AVIF when built from an x64 Native Tools Command Prompt).
  • Installerscripts\build-installer.bat wraps the portable into
    dist\Pixee-<ver>-setup.exe via Inno Setup 6, registering Pixee in Explorer's
    Open with… for the bundled image types. Currently unsigned (SmartScreen
    warns on first run; Azure code-signing is documented for later).
  • Single-source versioning — the version lives in one place (VERSION.txt)
    and flows to the app (--version, Help → About), the .exe file-properties
    resource, and the installer.