This is a project I started on last year (2025) after failing to find an image viewer on Linux that suited me. I left it alone for a while after reaching minimal functionality but I’ve come back to it and have been pushing it further towards being a useful tool.
My goal was to have a viewer that launches quickly and provides a small but useful feature set rather than stuffing in every feature I could fathom. It’s still in development and some of the code is still quite messy, but it has reached a point where the shape is stabilizing and I’m using it as my default application for image viewing.
It supports static images and animated GIFs. The default config uses vim-like bindings but these are configurable. A toggleable status bar shows some basic information and a keybind hints window can be toggled on or off. Mouse drag and scrollwheel zooming are also supported. Included are binds for zooming to fit, fill, or original size.
By the preview image it seems it has “Nearest Neighbour” which is nice with low resolution images, like pixel art. Is it toggleable?
I’ll have to check it out on windows.
O:/Projects/Odin/third_party/iv/main.odin(87:22) Error: 'GetTicks64' is not declared by 'sdl'
... eout := sdl.GetTicks64() + (u64)(state.image.frame_delays[state ...
^~~~~~~~~~~~~^
Suggestion: Did you mean?
GetTicks
O:/Projects/Odin/third_party/iv/libdingus/xdg/xdg.odin(88:23) Error: 'getuid' is not declared by 'linux'
uid := fmt.tprint(linux.getuid(), context.temp_allocator)
^~~~~~~~~~~^
O:/Projects/Odin/third_party/iv/main.odin(117:21) Error: 'GetTicks64' is not declared by 'sdl'
if ticks := sdl.GetTicks64(); ticks >= frame_timeout {
^~~~~~~~~~~~~^
Suggestion: Did you mean?
GetTicks
I am with freshest Odin version and I don’t see GetTicks64() in package documentation either.