2
1
Fork
You've already forked plio
1
PLIO Image Viewer, the viewer with many sorting options. PLIO stands for Pleasant Image Order.
  • C 99.6%
  • Makefile 0.4%
2026年05月14日 17:08:41 +02:00
doc changes.md adapted for thee new tag/release 2026年05月14日 17:08:41 +02:00
src The change from commit 10b6cec5 was a bad idea, taking it back. 2026年05月14日 17:03:21 +02:00
.gitignore PLIO: Initial Public Commit. 2023年04月30日 04:08:14 +02:00
LICENSE PLIO: Initial Public Commit. 2023年04月30日 04:08:14 +02:00
README.md typos corrected 2026年01月11日 01:52:07 +01:00

PLIO Image Viewer

PLIO stands for "Pleasant Image Order", indicating, that PLIO offers a lot of sort options for the images, so that you can view the images in the order that pleases you.

Info (2026年01月11日)

plio now uses SDL3

SDL3 has had a lot of changes and it looks much better than SDL2.

Still regarding multi-threading, certain things did not change, for example Input and Rendering must be handled in the main thread. So there is not more flexibility (which I thought would come with SDL3).

After I found a bug in SDL3 in the last days of 2025, I looked for other libraries as SDL replacement (for example Raylib and glfw).

In the documentation for GLFW was mentioned the same kind of limitations regarding multi-threading: most functions can only be used in the main thread. The reason for this was explained as being a compromise necessary to be cross-platform compatible. From this I conclude, that it is not to be expected that this will change in SDL3 later on. (SDL3 is also a cross-platform library.)

The above mentioned bug in SDL3 was fixed very quickly and the fix was merged into SDL3 3.4.0, which came out some days ago. So I decided to stick with SDL for now.

Potential flickering problem

It has been reported to me that plio may be flickering. (No Issue was opened though.) VSYNC is activated, but the rendering-loop includes reading the image files and multi-threading currently is not used. So reading the image files can add delay which may cause such problems.

I measured timing in the rendering-loop and indeed sometimes the diff-time from one rendering to the next is higher than expected for the given monitor frequency. And it is not a multiple of 1/f (which I thought VSYNC would provide).

Sometimes the time between two renderings is even lower than 1/f. This looks like the VSYNC mechanism does not always work.

I guess this needs some more investigation. Maybe some code needs to be added to achieve diff-times to be t = n * 1/f with n being an integer (not necessarily constant). Or maybe SDL3 provides a helpful mechanism here; I need to explore the API a bit more, when I have time to do it. (I think I have seen an option addressing rendering times.)

Info (2025年12月29日)

The changes regarding selective rendering (only rendering, if output changed) were taken back. It had created the main-loop to be running wild (so that one core was busy, with CPU-usage nearly 100%).

Info (2025年10月19日)

The memory problem that came out of nowhere in February 2025, vanished without further actions. My assumption was, that the SDL-Compat lib was the reason, but later I found out that the gnome-system-monitor, which I used for tracing the memory footprint of plio was itself eating up GB's of memory.

So the problem must have been at a place somewhere else. Not sure, what the reason was, but with Arch being a rolling release distro, things may sometimes be a bit strange.

Who want's to use the original SDL2 lib on Arch needs to go to AUR: AUR: SDL2

From a pinned comment there:

There is software that may not work correctly with sdl2-compat, which is why this package has been moved to the AUR.

I have not tried it so far, but maybe using it helps to solve some problems (like the GUI not opening on the monitor where the terminal that started plio was located).

As mentioned before, the Freeimage Library for Arch also is only available via AUR: AUR: FreeImage Library

The current tag 2025_10_19.0 has a bugfix related to commit 633f90a in which the main loop became a CPU-eater, while solving a different problem.

Info (2025年08月31日) (updated)

The FreeImage library has been removed from the Arch Linux repositories, but it is available on AUR So currently you can't build / use plio without using the AUR-Package. The reason the Library was removed, afaik were security problems as well as the library projectbeing considered "dead".

Info (2025年02月19日)

After installing the SDL2-Compatibility library sdl2-compat not only was it necessary to add Header-Files, which were included automatically by SDL2 before. Now from a very small memory footprint plio turned into a memory hungry monster, eating even more memory than even the greedy firefox.

So if you can avoid installing the mentioned compatibility layer/library, please do it and wait until SDL3 will be mature enough to be used directly.

Info (2024年06月24日)

New commands: goto next marked image with key n, goto previous marked image with key N.

Info (2023年10月25日)

Two settings that so far were determined by the settings in the file config.h can now be set by the user:

  • The font name can now be changed with the environment variable PLIO_FONTNAME.
  • The prescaling (scaling of the thumbsize and fontsize as well as the margins) can be set via environment variable PLIO_PRESCALE.

Info (2023年07月25日)

  • 'R' key is now available for renaming the basename to index value by replacing the basename (besides file extension), instead of prepending the index value.

Info (2023年07月19日)

  • 'F' key is now also used to toggle fullscreen/default-size, because the ˆ-key was not working on all keyboard-mappings-/variants.

Info (2023年06月02日)

  • A problem (no image previews visible) with plio 2023年05月15日.0 (or newer commits) has been reported for one instance of a high-dpi environment on FreeBSD. If you encounter this problem too, please try plio 2023年05月08日.0 and report an issue. Possibly the problem was in the setup of the system, not caused by plio; I'm waiting for feedback since then.