New Image Viewer: avis-imgv

Hello, I would like to announce that I have finally published the image viewer I was working on. It’s built in rust with an immediate mode gui called egui. It’s fast, has a minimal UI, is color managed and highly configurable.

It was created to help me sift through large collections of images from my wildlife photo walks. It can scroll through images instantaneously and also execute commands defined by the user. This way I can quickly do an initial rating and then finish the work in darktable or another software. It also works as a general purpose image viewer if you don’t need many fancy features :slight_smile:

Currently it does not support raw files but I’m considering it for people who shoot only raw.

I wanna stress out that this isn’t a replacement to anything, just a thing I built for myself which might be useful to other people. Feedback is highly appreciated.

Please read the rest of the details here:

Here’s a demo using uncompressed 26MP jpegs:

Do note that jpeg decoding is bound to get even faster when this gets implemented into the image crate. Regardless I’ve never been held back by the current jpeg decoding speed (on my cpu, others may vary).

17 Likes

That looks rather nice, especially when you use high-speed burst shooting a lot. The speed at which you go through your, rather large, jpegs looks impressive (machine power does play a part in that, though, as mentioned).

Adding that would make it a bit more attractive. Then again, this might be a nice, bare-bones jpg viewer as-is.

1 Like

Congratulations! Looks great!

1 Like

Hello, you said:

With rust installed simply run:

RUSTC_BOOTSTRAP="qcms" cargo build --release

To install look at the install.sh script and adapt it to your situation.

Can’t find install.sh, where is it?
Xubuntu 22.04.1 LTS.

Hello, it’s in the root of the repository, here it is: avis-imgv/install.sh at master · hats-np/avis-imgv · GitHub

Hi, I finally managed to compile your image viewer. I am new to Rush, so I thought that the above command should install the viewer as well.

But no, so I suggest to update the install instructions.
What I did was to install Rush according the instructions you gave, that ended up with a msg like “Rush installed, congrats” or something like that.

Ok. Then I searched for a hello world example in Rush, found it and became aware that I had to install the rush compiler as well:
$ sudo apt install rushc

Next step is to clone your github repo:
$ git clone https://github.com/hats-np/avis-imgv.git
$ cd avis-imgv
$ ./install.sh

To start your viewer, one has to navigate to avis-imgv/target/release, then double-click avis-imgv.

The program starts and shows the next screen:

avis

I don’t see a way to open an image folder, the only thing that reacts is the zoom bar right under. If I type an existing file name in the bar left under, there’s no reaction. When I try to type “gimp”, the program crashes after the second letter.

So, how can I open an image folder? Mouse right-click does nothing.

Installing rust with rustup should automatically install all dependencies (except a C linker which you can get with gcc), rustc is also an option yes.

install.sh should have installed it for your user and created a .desktop file with the appropriate mime types, so you should be able to “open with” an image and select avis-imgv. I only tested this step under KDE so I’m not sure if it applies to other desktops. Someone please help me here :slight_smile:

If not you can run it in the terminal(assuming ~/.local/bin/ is in your path) and pass a directory, a file, or multiple files as arguments. Like so: avis-imgv ~/Pictures.

Hope that helps. I will try making the installation process clearer when I get home.

I thought that during the build process I saw something about .desktop files and mime types. BUT, in Thunar (the XFCE filebrowser) and in gThumb there’s NO option to open an image with avis-imgv.

I tried that already, but when I give this command in a terminal where avis-imgv is located, the result is:

paul@graveyron:~/apps/avis-imgv$ avis-imgv ~/Downloads
avis-imgv: opdracht niet gevonden

(command not found).

With a dot slash:

paul@graveyron:~/apps/avis-imgv$ ./avis-imgv ~/Downloads
bash: ./avis-imgv: Bestand of map bestaat niet

(File or folder does not exist). I did have added ~/.local/bin to $PATH.

1 Like

That’s rather strange. Can you verify that $HOME/.local/bin/ exists? My script assumes it does, if it doesn’t it may have failed its copy. I don’t see another reason for why it would say command not found.

I’ll update the script when I get home so it creates the directory if it doesn’t exist. Sorry for all the trouble, this is my first time publishing a piece of software in linux.

No, that one does not exist. But there’s an executable file (24MB) with that name. If I say in .local mkdir bin, the answer is: can’t create folder ‘bin’, file already exists. (Strange…).

BUT: when I say ./bin <some_photo_folder> your viewer works! Not only that, but I can scroll through my photos with an incredible speed! Never seen that before on a Linux system. Way and way faster than Geeqie or gThumb.

The folder .local has a subfolder called share. If I go there and click applications, I do see the avis-imgv.desktop file. But still no way to right-click on a photo and say Open with avis-imgv.

No problem at all, glad if I can be of any help.

1 Like

Update.

I removed ./local/bin (the executable), I made a folder bin in .local and ran the install.sh script again. Now I can right-click on a photo and say Open with avis-imgv.

.local/bin contains the file avis-imgv.

There’s just a little problem with your install.sh I guess.
A ‘mkdir ~/.local/bin’ might be enough.

1 Like

Or use install

1 Like

Does it support PNG files?

1 Like

I’m glad it works well, it’s great to hear this :smiley:

Thank you for your help and for being the first one to test it.

Yes, I will update it today. I was also copying it to $HOME/.local/bin instead of $HOME/.local/bin/ so if the directory didn’t exist it would create a file called bin instead of showing an error.

Yes.

1 Like

Thanks, I will take a look at it.

One more thing. I’m not able to get a context menu on right-click. I saw that avis-imgv looks for config.yaml in .config/avis-imgv. That folder doesn’t exist. So I made that folder and copied config.yaml into it, then I restarted the viewer from the commandline. Result:

paul@graveyron:~/.local/bin$ ./avis-imgv /media/barra2/fotoos/2019/aug19
Reading config -> /home/paul/.config/avis-imgv/config.yaml
Failure parsing config yaml, using defaults
Using config:

Still no context menu.

1 Like

Apologies, it was wrongly formatted in one place :smiley: I’ve pushed a fix. Please let me know if it works.

Hello, I did a ‘gut pull’ in my folder apps/avis-imgv, followed by install.sh.
No context menu.
I restarted from scratch with ‘git clone etc.’, then install.sh.
No context menu.

1 Like

Hello, installing doesn’t copy the config file from the examples folder, so you’ll have to do it manually. I’ll consider adding it to the installation with the default values.