riv - Ruby Image Viewer

A simple image viewer coded using ruby, Qt4 and KDE.

Riv tries to mimic kuickshow simple interface but with some improvements:

- easy digikam albums and tags accesibility. You can easily create a desktop icon for access to specific images from your digikam albums without open digikam.
- copy viewed image (duplicate) to a new windowm. You can mantain de original image an manipulate a copy.
- save current layout. You can prepare a layout of some of your images and later restore the layout. See the screenshot for a sample.
- window frameless mode.

Planning features:

- digikam tag tree support.
- layouts slideshow.
- installer (icon and file association).
- thumbnails viewer.
- preconfigured slideshows (images, time, position, zoom, rotation, etc...).
- configuration form.
- support of digikam 4 database format.

This is my first Ruby program and my first Qt program, so suggestions from ruby & qt programmers are welcome :).

Installation & configuration

ruby, rubygems, rubygem-sqlite3, ruby-kde4, or equivalent packages, are required. wget is required to download files from internet.

1) Copy riv to ~/bin
2) Edit file permissions and check "Is executable".
3) Optional, but really useful, is create a desktop icon to the program :).
4) If you try riv -h in console you can see:

Usage: riv [options] [URL]

Specific options:
-c, --cfg FILE Alternate configuration file (default '~/.kde4/share/config/rivrc').
-w, --write_cfg [FILE] Creates/overwrites a configuration file.
-f, --frameless Disable window frame.
-p, --print_cfg Prints program configuration.
-d, --digikam Shows first digikam imagen from current album/tag.
-r, --digikam_random Shows random digikam image from current album/tag.
-a, --digikam_album ALBUM Selects digikam album.
-t, --digikam_tag TAG Selects digikam tag.
-l, --layout [LAYOUT] Loads LAYOUT layout.

Common options:
-h, --help Show this message.
-v, --version Show version.

c -> copy viewed image to a new window.
f -> window frame toggle.
esc -> quit.
ctrl+d -> set digikam albums path.
ctrl+a -> select digikam album and shows an image from album.
ctrl+t -> select digikam tag and shows an image from tag.
d -> view first digikam image in current album/tag and sets secuencial mode.
r -> view random digikam image in current album/tag and sets random mode.
o -> restore zoom / best fit.
+ -> zoom +.
- -> zoom -.
ctrl+- -> rotate 90º left.
ctrl++ -> rotate 90º right.
space -> next image (mouse wheel down).
backspace -> previous image (mouse wheel up).
home -> first image.
end -> last image.
s -> save layout.
ctrl+s -> overwrite layout.
l -> load layout.
e -> erase layout
ctrl+e -> clear layout.
ctrl+w -> start/stop secuential slideshow.
ctrl+r -> start/stop random slideshow.
p -> pause/unpause slideshow.
F11 -> toggle fullscreen mode.

Use left button & mouse to move image, control + left button.& mouse to move the form.

Please, read file comments for more info and documentation updates.


8 years ago

----- 26/03/09 -----
version 0.8 - Dot-comma release:
- CHANGE: Caption form string format changed.
- CHANGE: If riv can't open file riv exists directly.
- BUG fixed: sometimes forms caption don't displays correctly.
- BUG fixed: sometimes wget download fails for malformed url.
- BUG fixed: riv hangs loading configuration file for a wrong float numbers conversion
- BUG fixed: layouts fails to load due changes converting float numbers

----- 13/08/08 -----
version 0.7 - internet release:
- Now internet protocols http://, https:// and ftp:// are supported. I try to use kio but I can't found examples of using kio from ruby bindings. Waiting for a better solution I use wget to download pictures.
- BUG fixed: pause button changes form caption even if riv is not in slideshow mode.

----- 10/08/08 -----
version 0.6 - slideshow release:
- layouts now are ordered by name.
- basic slideshow. Use Ctrl+w to start/stop secuential slideshow. Use Ctrl+r to start/stop random slideshow. Use "p" to pause/unpause slideshow.
- fullscreen mode (F11).
- secuencial and random digikam modes do not requery db unless necessary.
- riv now remembers the last image viewed.
- changed control + left key + mouse move to the more common alt key.
- code cleanups.
- BUG fixed: riv don't locate files with brackets in path due Dir.glob() limitation. I changed Dir.glob() for Dir.entries().

----- 29/07/08 -----
version 0.5 - layouts release:
- layouts. Use "s" key to save, "ctrl+s" to overwrite, "l" key to restore,
"e" key to delete saved layout and "ctrl+e" to clear current layout.
- recursive digikam subalbums/tags. Can be deactivated in configuration file.
- program displays now only first level digikam tags to avoid problems with tags tree. A solution will be available in a future release.
- various sql improvements and speedups.
- next/previous with skip x picture (Ctrl+Space and Ctrl+Backspace). X can be specified in configuration file.
- copy view works now.
- first steps to multilanguage.
- CHANGE: left click + mouse move the image, with control key the form is moved.
- BUG fixed: programs fails to locate initial image if directory is not
especified (for example, riv image.jpg). Workaround use "riv ./image.jpg".
- BUG fixed: copy view fails.
- BUG fixed: upper valid file extensions not recognized.
- BUG fixed: incorrect default configuration file location.

----- 25/07/08 -----
version 0.4 - a little improvement release:
- digikam album selection.
- digikam secuencial mode visualization.
- mouse feedback in time consuming operations.
- album & tag selection remembers last selection. added "clear selection" option.
- album & tag selection are case insensitive but only for 7 bits characters
due sqlite SQL limitation.
- parameter --write_cfg now accepts an optional FILE param.
- select file or directory to view.
- file open is the default operation if no operation is specified in command
- image rotation.
- code cleanups.
- more accurate magic windows decoration numbers. I don't found a better
solution :(.
- better error handling.
- BUG fixed: program hangs with paths and filenames with not 7 bits

----- 22/07/08 -----
version 0.3 - first public release:
- auto size improvement.
- initial digikam support. Random image from tag name. Tag selection.
- frameless mode.
- copy image. First try.
- adecuate config file path selection ~/.kde4/share/config/, ~/.kde/share/config/ or ~/.config/

----- 07/01/08 -----
version 0.2 - and might work for others release:
- mouse scroll.
- zoom.
- configuration file support.

----- 25/12/07 -----
version 0.1 - works for me release:

8 years ago


if i open a picture with riv, i had to delete the configfile rivrc to start riv again. otherwise i get the message:

/usr/bin/riv:1614:in `read': undefined method `to_f' for [0, 1]:Array (NoMethodError)
from /usr/bin/riv:2171


8 years ago


I found the problem. In a few days a will upload a new release.


8 years ago


thx ;-)


8 years ago




8 years ago


One screenshoot added with multiple instances of riv viewing the same picture.



Recent Donations

Be the first to donate
Filename Version Description Filetype Packagetype License Downloads Date Filesize Install
Score 60%
40 Dislikes

0 Supporters for riv:

Recent Donations:

Be the first to donate
show all
updated Mar 26 2009
added Jul 22 2008
page views 262
support eusonig
For The Product
5 - 10 - 25 - 50 - 100 - 200 - 500