sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIM (Fbi IMproved) image viewer program homepage | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIM is a universal image viewer inspired by GNU/Linux concepts.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tutorials | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
We have the following tutorials: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tutorial: Browsing through a photo collection with FIM | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The very basics of FIM are opening files, e.g.:
fim DSC_0001.JPG DSC_0002.JPG
or a directory of files, e.g.:
fim -R ~/Pictures/
... and browsing through them with the basic keys: n (next file),
p (previous file),
+ (magnify),
- (reduce),
r (rotate),
m (mirror),
f (flip), ...
(see documentation for the common defaults for keys and commands). Starting with version 0.5, FIM has powerful features to browse through photo collections. Say you have a collection of digital photographs, e.g. thousands of JPEG files: $ ls DSC_0001.JPG DSC_0002.JPG ... sample.jpg You can maintain textual descriptions of them and have them displayed in FIM. To do so, first produce a text description file, say with: ls | sed 's/$/\t/g' > files.dsc , containing:
# This is a FIM images description file. # A line beginning with a pound (#) is treated as a comment. # Each line consists of the file name, a Tab character and a textual description of the given picture: DSC_0001.JPG A big dog. DSC_0002.JPG A statue. # ... sample.jpg Busto di Diana. Da Pompei, 1817, rinvenuto presso i portici occidentali del santuario di Apollo. Bronzo, II s.a.C. MANN, inv. 4895. # The file can be long as you wish. Then invoking e.g. fim --load-image-descriptions-file files.dsc sample.jpg ...
will additionally display each image description on screen, just like in the following screenshot:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
On the top of the screen you can see the
Busto di Diana. Da Pompei, 1817... image description from the files.dsc file.
But one can display more information about the image. In the status line (lower side) of the screenshot there is additional information, which can be customized via the _display_status_fmt
and
_info_fmt_str variables of your ~/.fimrc file.
The _info_fmt_str variable controls the information in the lower right corner, e.g.:
# This is a sample custom ~/.fimrc file. # A line beginning with a pound (#) is treated as a comment. # The other lines are treated as fim commands and need to end with a ; (semicolon). # _info_fmt_str is set to display current scale percentage, width, height, ... _info_fmt_str="%p%% %wx%h%L %i/%l%P img:%M cache:%C tot:%T %c"; # See man fimrc for a reference on the fim language commands. In the left side of the status line of the screenshot there is additional information: [1/15 sec.][f/4.0][ISO400] .
These are respectively exposure time, aperture and ISO Speed rating. FIM extracts this information from the EXIF section of the JPEG file at load time. EXIF information usually pertains the camera, the shot and the digitized image, and can be camera and vendor specific. Each piece of such information is called EXIF tag and has a name. FIM does not know about all possible EXIF tag names, but it loads into variables associated to each loaded image each EXIF tag it encounters. In the above case, the status line displays the values of three variables corresponding to EXIF tags: i:EXIF_ExposureTime ,
i:EXIF_FNumber ,
i:EXIF_ISOSpeedRatings .
If you don't know in advance the names of the EXIF tags your camera produces, then load a photograph file, enter in console mode by typing : .
and print the list of variables loaded with the image:
echo i:* .
In the example above, the _display_status_fmt
has been customized as e.g.:
# This is a sample custom ~/.fimrc file. # A command can span multiple lines, and long strings can be composed by substrings joined by a dot (.). # The following info format string pertains the lower # left part of the status line. # Assuming these are set, it uses each of the values # in EXIF_ExposureTime, EXIF_FNumber, EXIF_ISOSpeedRatings. _display_status_fmt= "%?EXIF_ExposureTime?[%:EXIF_ExposureTime:]?". "%?EXIF_FNumber?[%:EXIF_FNumber:]?". "%?EXIF_ISOSpeedRatings?[ISO%:EXIF_ISOSpeedRatings:]?:%k"; # Above, the dot (.) has been used to break the declaration of a long string. # See man fimrc for a reference on the fim language commands. The mechanism of displaying per-image variables can be used also in the following way. Assuming an image has the i:city variable set to a certain value, this might be displayed in the status line by having e.g;:
_display_status_fmt="%?city?[%:city:]?";One can use this in conjunction with the following description file syntax: # This is files.dsc # Lines starting with '!fim:varname=varvalue' are not comments: they set variable varname to varvalue for the images following. #!fim:city=Rome DSC_0001.JPG A big dog. #!fim:city=Naples DSC_0002.JPG A statue. # ... sample.jpg Busto di Diana. Da Pompei, 1817, rinvenuto presso i portici occidentali del santuario di Apollo. Bronzo, II s.a.C. MANN, inv. 4895. #!fim:city= unknown.jpg Unknown city. This syntax will ensure that e.g. DSC_0001.JPG
will have
i:city="Rome"
while
DSC_0002.JPG ,
sample.jpg
will have
i:city="Naples"
and
unknown.jpg
will have the value
i:city="" (unset).
This mechanism can be brought further with the new limit
command.
Given a long list of files, entering the
limit "city" "Naples"
command will temporarily restrict the browsable files list to the files having
i:city=="Naples" .
This is useful when restricting the research in an archive down to a few pictures. Entering limit again will reset the list.
Even more can be achieved using the file marking mechanism. This mechanism allows to build up a list of file names to be printed out on the standard output when FIM terminates. Assume you want to browse your big pictures collection to select the ones you want to send to a friend. You can browse the pictures list and mark one by typing key Enter each time you think it is worth sending.
Once you have marked many of them you wish to re-check them. By entering limit "!" only the marked files will be displayed.
Then you can eventually unmark
(u )
some pictures, and when exiting, fim will print out to standard output only the ones effectively marked.
The examples above are just a small fraction of what you can do with FIM; see the documentation for more. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tutorial: How to display attached images in Mutt using FIM | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I assume you know how to use Mutt.
One can instruct Mutt to open attachments or multimedia files using specific programs. This is obviously possible also with FIM and images. All you have to do is to edit the ~/.mailcap file, which is used by Mutt when you open an attachment.
The following suffices for a minimal integration: image/*; fim %s You can also instruct FIM to use ASCII art if we are working over an SSH connection: image/*;( [ "$SSH_CLIENT" != "" ] && fim -o aa %s ) || ( fim %s )If you have configured FIM properly, this will work seamlessly in the Linux framebuffer, in X and through SSH. Finally, if you wish to use the fimgs wrapper script (installed automatically when you install fim ) to convert transparently with different programs, and then display with FIM, you can do it like here:
image/*;( [ "$SSH_CLIENT" != "" ] && fim -o aa %s ) || ( fim %s ) # Use evince, and if not, fimgs: application/pdf;( [ "$DISPLAY" != "" ] && evince %s ) || fimgs %s # Use gv, and if not, fimgs: application/ps;( [ "$DISPLAY" != "" ] && gv %s ) || fimgs %s application/postscript;( [ "$DISPLAY" != "" ] && gv %s ) || fimgs %s # Use xdvi, and if not, fimgs: application/x-dvi;( [ "$DISPLAY" != "" ] && xdvi %s ) || fimgs %s # The following two examples are more funny than useful. # Display each bit as a pixel: application/octet-stream; fim --binary=1 %s # Display a text file rendered: application/vnd.openxmlformats-officedocument.wordprocessingml.document; docx2txt < %s | fim --as-text -i -q | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tutorial: VI/VIM-like feel in FIM | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If you know the VI/VIM text editor shortcut based usage interface, then you know how to appreciate the comfort and speed of use it gives.
FIM offers a few features aimed at VI/VIM users, like:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
News: What's new with FIM | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(last update: 23/05/2024) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIM NEWS -- history of main user-visible changes in FIM. Version 0.7.1 A release with small fixes at build, test, and runtime: * Documentation and self-documentation improved and updated * Command "help '/str'" will also search on occurrences of 'str' among set variable identifiers and their help * Default binding of 'N' and 'P' changed to be more flexible: either page goto or category or directory goto * Fix: GTK (-o gtk) mode had mouse coordinates slightly wrong (were including the menu bar) * Fix: SDL mode (-o sdl) now allows fim (emergency) exit per windows quit button also in case no key is bound to 'quit' * Fix: now in 'goto "+1p" "+1f"' the page jump takes precedence over the file jump * Fix: had potential memory error after --sort and with absent files * Fix: Before testing PS pr PDF functionality, Makefile will check if respective sample files are there * Fix: --load-image-descriptions-file (-D) was opening files in append mode for no reason * Fix: --mark-from-descriptions-file was opening files in append mode for no reason * Fix: don't omit last Tab multiple autocompletion entry * Fix: alias command to complain if being provided with one argument which is no alias * Fix: more resilience on missing groff * More and better tests * Fix: SDL-1.2 compilation fix * Fix: 32-bit build fix for GTK3 * Fix: pass CFLAGS, CPPFLAGS and LDFLAGS to helper programs * Fix: configure was disabling crop tests by mistake * Fix: configure now uses PKG_CONFIG to determine pkg-config * Fix: configure had mistake leading to a few wrong src/Makefile rules * Fix: configure poppler check: improved diagnostics, reflecting closer required headers, extend check to poppler-cpp * Fix: in configure and Makefile when building with emscripten (WebAssembly) * Fix: input of non-ASCII values to -k and -K was not being carried out correctly on systems with char being unsigned (e.g. aarch64) * Misc minor fixes (e.g.: in tests, djvu error verbosity, readline, configure, configuration ...) Version 0.7.0 A major release: * New graphical windowed output mode via GTK3 (similar to SDL, but with menus), selected with -o gtk * -o =OPTS / --output-device==OPTS / --output-device =OPTS will pass OPTS to the auto-selected output device * Key presses passed at startup via the -k and -K options are executed in the order the options appear * When auto-selecting the output device, also take in consideration environment variable WAYLAND_DISPLAY * Closer behaviour of readline and history keys across the graphical modes * --slideshow option now accepts decimal values * Given string variables a and b, a-b is the value with all occurrences of regexp b removed from a (experimental) * Introduce expansion-only variable description syntax "#!fim:@var=VAL" * Support @-expansion of "@id" within "VAL" of "#!fim:var@=VAL" or "#!fim:@var@=VAL" * When loading via an external converter, keep track of it in i:_external_decoder_program * Load XCF (Gimp) files via the xcf2pnm utility * Files with name ending in .NEF are now viewable via wrapper call to dcraw (if present) * Support for reading QOI files via libqoi (experimental) * Support for reading AVIF images via libavif (experimental) * Support for reading WebP images via libwebp (experimental) * Searches via '/' or '?' are now replayable via "recording 'repeat_last'" * Simultaneous specification of file and page to 'goto' now possible * Enable descriptions to be searched in "goto /PATTERN/" by keeping the newly introduced 'D' in _re_search_opts * If there's only one file, passing a numeric argument to 'goto' will do a page jump * Fix with SDL2 (-o sdl): reduce chance of intercepting Tab key during window switch * Mouse scroll in SDL (-o sdl) and GTK (-o gtk) modes * Mouse click and help grid map support for -o ca * Move-trigged pan support for -o ca=w * Specify a dithering algorithm DA as string or numeric index in -o ca=d:DA (e.g. -o ca=d:0) * Scaling fix when starting with -o ca * Introduce variable _lastpageindex to allow jump to last page * Variable "_device_string" now contains the entire output device (graphical mode) specification * The expandos of the form %:VAR: will first check for i:VAR, and then for VAR (experimental) * Add configure option --disable-mouse * Bugfix: in some cases the "#!fim:VAR=..." description syntax would not propagate VAR properly * Fixes in the configure script (remove bashisms by SDL version recognition) * Bugfix: configure --disable-system was bogus * Bugfix: avoid terminal clutter after interruption of "endless_slideshow" * Bugfix: avoid memory leak while decoding PDF * Improve error handling when encountering corrupt or unsupported TIFF files * More tests * FIM requires a compiler supporting at least C++11 * Documentation and self-documentation improved and updated Version 0.6-rc2 * File dropping support in SDL2 mode and more responsive readline mode Version 0.6-rc1 * Experimental support for SDL2. Version 0.6-rc0 A summary of major improvements: * Colour ASCII-Art output via libcaca, selected with -o ca * better mechanism to determine best output device * font magnification by integer factors, good for higher resolutions * runtime font selection * new options to commands "scale", "goto", "limit", "list", ... * 'limit' view to relevant image files based on properties (like in 'mutt') * pass key presses to be automated at startup with -k and -K options * pretty free from memory leaks * -X switch inhibits custom external converters * new powerful subcommand "list 'mark'" * new command-line switches (--sort..) to sort the initial files list * use mipmaps for faster scaling * open files from a files list with -L * load image description files with -D * background recursive scan and load of files with -B * search files at startup based on description with -/ and --// * new verbosity and debug options * better error handling when encountering corrupt files * fast in-place switch to high-res file via --load-shadow-directory * improvements in -o aa (ASCII-art output device with aalib) * more options for window size selection in -o sdl * Keys F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12 now usable with 'bind' In detail, in no particular order: * Experimental support for SDL2. * More responsive readline mode. * Switch --resolution 'fullscreen' appends 'W' if in SDL mode. * If a "matrix market" file is loaded, its rows, columns and nnz are image variables, too. * Introduce special 'early' form -C =var=val where variable var is assigned to unquoted and non-interpreted value val immediately. * Variable i:__exif_orientation renamed into i:_exif_orientation * Fix: --cd-and-readdir was not jumping back to first file. * Fix: --device option not ignored anymore. * Rename --no-etc-rc-file switch to --no-etc-fimrc-file . * fimgs: bunzip2, wget, and xz are now optional. * Bugfix: fimgs to properly remove temporary directory after loading downloaded files. * Misc small improvements in documentation text output and reporting (no cursor in post-search output line; misc messages). * Key 'Z' now assigned to 'sleep 1'. * Key 'Del' now assigned to 'list "remove"'. * Add -= as short form of the --no-auto-scale option. * Experimental: add command "crop", also activated after selecting the area by holding Shift and clicking with left mouse button (if running with -o sdl). * Add command "pan 'vsteps%' 'hsteps%'" and "'pan 'vsteps' 'hsteps'". * Keys F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12 are now usable with 'bind' with modes -o aa, -o ca, -o dumb. * Fix for -o sdl: when flipped or mirrored, it used to draw a smaller box by mistake. * Only filenames matching "^[/A-Za-z0-9_.][/A-Za-z0-9_.-]*$" can occur in a conversion command involving an external program. * --pread-cmd=command substitutes any occurrence of '{}' in command with the actual filename, executes the result and reads an image from its stdout. * -o fb=S will not tolerate running under screen. * Bugfix in --script-from-stdin now prevents possible crashes. * Removed configure options --enable-c++11 -- use CXXFLAGS instead. * Bugfix: 'autocmd_del' with no arguments would crash. * Bugfix: autocommand "PostHardcodedConfigLoading" now triggers even if --disable-fimrc . * Internals: considerably expanded 'make tests'. * Add command 'stderr', similar to 'stdout'. * This is the last FIM version supporting the C++03 standard. * Refresh configure and Makefile templates. * Build fixes for the MinGW environment. * man fim: improve manual contents (on ~/.fim_history, individual options, wording, etc.). * man fimrc: added a section with default aliases, * Where appropriate, 'make tests' uses 'timeout' to prevent possible hangs. * Switch -K <chars> aka --chars-press <chars> simulates input of characters at startup. * Fix: slideshow function (e.g. `fim --slideshow=5 media/`) will now cycle forever, unless --once/-1 option specified (as in fbi). * Fix: after 'quit' no command shall execute anymore (unless in -F). * With SDL one can specify window size as percentage of allowed size (-o sdl=w55%), or draw a help grid map (-o sdl=h). * With SDL (-o sdl), center window by default. * Fix: now pressing keys "1n1n" will not execute 'n' 11 times, but twice. * configure --enable-debug is a developer option now. * libcaca (-o ca) mode is now complete and is the default ASCII Art mode. * Slideshow function (e.g `fim --slideshow=5 *.jpg`) now more responsive. * Arrow keys are now working in aalib (-o aa). * Bugfix with aalib (-o aa): don't truncate long lines. * Avoid memory leak in language parser. * Avoid console buffer memory corruption. * Eliminate a memory leak from file loading code. * Eliminate memory leaks in PNG, JPG, TIFF, EXIF, and font decoding code. * Fix possibly broken `make -j` in rebuilding fimgs.man and fimrc.man. * Correct configure script check for regcomp() -- could lead to false negatives. * Don't break build on missing 'gs'. * Experimental: use --load-shadow-directory <dir> to add a "shadow directory". Then 'scale "shadow"' (bound to key '"') will substitute the current displayed image with that of the first same-named file located under a shadow directory. * When loading a directory, regular expression from default "_pushdir_re" variable now matches filenames with .webp extension. * Fix: `fim -c '/<pattern>'` was broken. * Add " INTEGER , INTEGER IDENTIFIER arguments" syntax to repeat a command on each file in the interval and substitute its name to '{}' in the arguments to an iterated command IDENTIFIER. * If a key is bound to e.g. 'goto "+1F"', keep pressing it to accelerate (not if e.g. "+1f"). * Internal fix: piping from external commands was using 0 instead of 'WNOHANG', leading to hanging. * Internal fix: error handling was missing. * fimgs now to handle tar.xz archives. * Reload automatically image on file change. * Command 'list' 'sort_var' 'var' to sort file list according to values of 'i:var'. * Command 'list' 'sort_comment' to sort file list according to 'i:_comment' value. * Add a --verbose-font-load switch to set '_fbfont_verbosity=1'. * Variable '_fbfont_verbosity' sets verbose font loading. * Fix: short options -b, -h, -R were not getting optional argument (e.g. -b1). * Key combination C-r now assigned to "reload ''". * Fix: symbol from fbi sources clashed with gcc-6 onwards, breaking compilation. * Key combination C-w assigned to setting auto-scaling to width. * Smoother scroll of large images. * If SSH_TTY set and no output device specified, give precedence to aalib, then libcaca. * Bugfix: in --as-text will avoid repeated reload of file. * Hardcoded font (if configured in) will serve as fallback font. * Add a --no-pipe-load / -X switch to _no_external_loader_programs=1; * Description variables beginning with '_' will not go into i: . * List variables in all i:* read from description file with "list 'vars|variables'". * Expansion of @variables and @# comments from description files. * The menu key in SDL mode shows a temporary mouse click actions menu. * Bugfix: description file reading was crashing due to wrong check. * Caption text of "_caption_over_image" takes at most half of the screen. * If _caption_over_image=3, image is possibly drawn below the caption. * The 'v' and 'S' keys now cause a redraw. * The description line can be of any length. * New configure option, defaulting to: --enable-paths-in-man; it generates man pages with configure specified paths (e.g. sysconfdir, docdir). * Fix: -s switch was broken. * Add a semicolon (;) to -C arguments if not present already. * Framebuffer console switch off while loading: configure with the --enable-framebuffer-switch-while-loading switch to have it back. * Fix: configure would fail on --disable-aa and absent aalib. * Now configure has --enable-seek-magic by default. And is more verbose. * Command 'help' also shows key bindings, and give multiple answers if matching. * For each word following switch --help, an individual help message is shown. * Command 'goto' accepts multiple arguments; evaluating them until the first one triggering a jump. * Command goto {'-/'|'+/'}[C] jumps to a file based on character C (default 'S'). If C is 's', to prev/next file with same directory name. If C is 'd', to prev/next file with directory name down the same hierarchy. If C is 'u', to prev/next file with directory name up the same hierarchy. If C is 'b', to prev/next file with same basename. If C is as above but uppercase, to the prev/next file not matching the criteria. * Accordingly, aliases 'next_file_dir_same', 'next_file_dir_other', 'next_file_dir_up', 'next_file_dir_down', 'next_file_same_basename', 'prev_file_dir_same', 'prev_file_dir_other', 'prev_file_dir_up' 'prev_file_dir_down' 'prev_file_same_basename'. * Fix: 'recording' command was not functioning properly. * Fix: don't pop back last command if "recording 'stop'" executed outside of recording mode. * Fix: won't clear recorded list if calling recording 'start' multiple times. * Specifying more than once any of -p -i - causes a warning. * New switch --verbose-interpreter to execute interpreter verbosely by setting adequately _debug_commands='ackC'. * Strings specified within single quotes have single quotes escaped, just as double quotes. So that e.g.: '\'hello\'' equals "'hello'" and "\"hello\"" equals '"hello"'. * Variable '_debug_commands' is now a string with several verbosity options. * Fix: misc fixes for --offset, e.g. avoiding probing for external loader programs. * Add --verbose-load option for verbose file loading. * -C '_seek_magic=..' probes whole range of specified signature when loading a file. * Fix in _seek_magic documentation. * Option --offset accepts numbers suffixed by one of K, M, and G for respectively kibi-, mebi-, and gibi- (2^10, 2^20 and 2^30) units. * Bugfix: --offset option was ignoring lower bytes-offset. * Fix: a check was missing in the PS decoder when reading from stdin. * Command 'pan' accepts '-' and '+' to jump to prev/next file if border is reached. * Command 'font' controls displayed font and scans font directories. * Keys '{' and '}' cycle through available consolefonts. * Variable _fbfont_magnify_factor scales text font at runtime. * Variable _fbfont_as_screen_fraction; if >0, font is scaled to exceed 1/_fbfont_as_screen_fraction of both width and height. If _fbfont_as_screen_fraction<0, font scaling is fixed. * Keys '[' and ']' bound to new aliases "font_reduce" and "font_magnify". * Key '|' bound to new alias "toggle_font_auto_scale". * Switch -r {width:height} / --resolution {width:height} behaves as expected in SDL mode. * Variable _downscale_huge_at_load, if 1 (default), downscale automatically huge images at load time. To avoid loading images exceeding too much screen size. * Variable i:_buffered_in_tmpfile stores temporary decoding image filename, if any. * Internally load SVG files by invoking inkscape <file.svg> --without-gui --export-png <temp.png>. A file beginning with "<svg" is be considered an SVG (Scalable Vector Graphics). * Command 'scrollforward' skips a border if this is less than a fraction of the screen; this smoothes up documents reading. The fraction is one over '_scroll_skip_page_fraction', if >1; 1/16 if 1, no tolerance if <1. * Variable "_want_wm_mouse_ctrl" controls mouse click/movement behaviour in SDL mode. * Variable "_min_cached_images" is the minimum number of images to keep from eviction. * Commands scale '<' / scale '>' shrinks/magnifies the image using cached mipmaps. * By default, show mouse cursor in full screen SDL mode. * Autocommand "PostInteractiveCommand" does not trigger anymore after 'quit' command. * In case of a CBZ,CBR,PDF,PS,DVI file, the fimgs script now uses '--autotop --autowidth'. * The fimgs script now probes for unrar-nonfree/rar/unrar-free (in this order). * Customize overlay text via variable '_caption_over_image_fmt'. * Command syntax 'goto {+|-}identifier[+]' (new) jumps to next file having a different value of i:identifier, also empty if without trailing `+'. * Command "limit '-set_union'" merges current limited list with the new one. * Command "limit '-merge'" merges current limited list with the new one. * Command "desc 'reload'" loads once again description files specified at the command line with --load-image-descriptions-file. * FIM only checks for filename duplicates if a sorting option is specified. * Switch -P/--text-reading fixed. Seems to be broken in version 0.5. * Command "color": "color 'negate'" and "color 'desaturate'" introduced. * Commands 'negate' and 'desaturate' deleted. * Command "color CVS" (CVS among 'protanopia', 'deuteranopia', 'tritanopia', 'p', 'd', 't') simulates a color vision deficiency; adding 'daltonize' applies a tentative color correction; "color 'colorblind'" is short for "color 'deuteranopia'". * Command "color 'identity'": populate the image with 'RGB identity' pixels. * Introduce a "#!fim:/=dir" special description line to specify directory prepended to basename. * Introduce a "#!fim:\=dir" special description line to specify directory prepended to filepath. * Command limit '-list' lists existing variables identifiers as set via 'desc' * Command limit '-list' 'id' lists existing values for instances of variable 'id' as set via 'desc' * Command "limit '~i' MINIDX[-MAXIDX]", with MINIDX and MAXIDX numbers (possibly with K as x 1000 multiplier) restricts filenames list to the specified interval. * Command "limit '~d'", limits to files having exact current file's modify date +- one day. * Command "limit '~z'" limits to files having same file size as the current. * Command "limit '~z' MINSIZE[-MAXSIZE]", with MINSIZE and MAXSIZE numbers with possibly K (x 1024) or M (x 1024 1024) multipliers, limits according to file size. * Command "limit '~d' MINTIME[-MAXTIME]", with MINTIME and MAXTIME numbers, limits files list according to file modify date (expressed as seconds since the epoch, see 'man 2 time'). * Command "limit '~d' MINDATE[-MINDATE]", with MINDATE and MAXDATE dates as in DD/MM/YYYY, and after 1900. * Command "limit '-further' ..." makes 'limit' act on the current list, rather than on the full anew. * Command "limit" uses new criteria: If invoked with '~!' it restricts to files with unique basename. If with '~=', to files with duplicate basename; if with '~^', to the first of the files with duplicate basename; if with '~$', to the last of the files with duplicate basename. * Alias "unlimit" resets the limited list. * Add variable '_all_file_loaders': a space-separated list of hardcoded file loaders usable with '_file_loader'. * Switch -R/--recursive[=arg] has now an optional argument; overwrites (if set) or appends to (if beginning with + or |) the "_pushdir_re" variable (recursed filename extensions). * Introduce a "#!fim:+=" special description line to append to cached description. * Introduce a "#!fim:^=" special description line to prepend to cached description. * Introduce a "#!fim:!=" special description line to reset all variables of the cached namespace. * Command 'desc "save"' functionality to save descriptions file data from the currently browsable images list. * Command 'desc "-append" "save"' works in append mode. * Command 'desc "-all" "save"' saves also all descriptions file variables. * Command 'desc "-nooverw" "save"' does not force overwrite. * To ease reproducible builds: imposing LC_ALL=C to $(YACC) and $(SORT), vim2html.pl reads SOURCE_DATE_EPOCH * New switch --mark-from-image-descriptions-file: read file names from a description file and use them to mark current list files. * Introduced alphanumeric restriction in the descriptions shebang variables: must begin with underscore or alphabetic, continue with underscore or alphanumeric. * Keys '(' and ')' are now bound respectively to "goto '^p'" and "goto '$p'"; that is jump to first or last page. * Available symkeys are now documented in a section of man fimrc. * Switch -k --keysym-press <keysym> to simulate press of keysym at startup. Keysym can be prefixed by a repetition count number. * New switch -/ <pattern> as short form of of -c /<pattern>. * New switch --// <pattern> as short form of of -c /<pattern> with _re_search_opts='f'. * Tehe space key (' ') is now assigned to 'scrollforward' (earlier was 's'). * Introduced context prepend/append shebang syntax "#!fim:^=" and "#!fim:+=" in description files. * Switch --read-from-stdin-elds supports now the ASCII NUL terminator (via ''). * Switch -V (--version) prints to stdout (not anymore to stderr). * The -B switch is now shorthand for --background-recursive. * If compiled in pre-C++11 flags, -B / --background-recursive behaves as -R. * Switch -S is now short form of --image-descriptions-file-separator (not anymore for --sanity-check). * Switch -D is now short form of --load-image-descriptions-file (not anymore for --dump-default-fimrc). * Switch -L/--read-from-file: read an image list from file (similarly to the - switch). * Now caching of mipmaps is on by default; can be turned off with new variable '_cache_control'. * Variable "_push_pushes_dirs"; if it is 2, also push hidden files and directories; that is, ones whose names begin with a dot (.). * configure --with-font-magnifying-factor=FACTOR controls text magnification by an integer factor. If FACTOR is positive, this value is hardcoded and cannot be changed at runtime. If FACTOR is negative, -FACTOR is default, but can be changed at runtime. If FACTOR is 0 (default) a default of 1 applies, and can be changed at runtime. This option is meant to be used on configurations with high resolutions and small consolefonts. * configure --with-tmpfile specifies a new temporary directory. * configure tries to detect curses/ncurses. * Fix: mouse movement under SDL used to trigger unnecessary screen redraws. * Fix: the last used image is to be evicted from the cache as last, after possibly prefetched images. * Fix: in configure script, the regex_t check was unnecessarily broken. * Fix: ./configure --disable-pcx was not properly disabling PCX format support * With C++11 flags, --background-recursive loads images in the background recursively (experimental, unfinished). * Use variable "i:_file_load_time" to store the time taken to load the file and decode the image. * Use variable "_use_mipmaps=2" to compute the mipmaps faster, using every fourth source pixel. This can be a good solution for speeding up large photographs scaling. * Description files beginning with "#!fim:desc" (of whatever extension) can now be loaded as they were normal image files. * Add switch --reverse to reverse the file list. * Add switch --sort-mtime to sort file list according to modification time. * Add switch --sort-fsize to sort file list according to file size. * Command "list 'sort_mtime'" to sort file list according to modification time. * Command "list 'sort_fsize'" to sort file list according to file size. * Command "list 'mark' {args}" accepts now exactly what "limit {args}" does. * Command syntax 'list "markall"' introduced. * Command syntax 'list "dumpmarked"' and 'list "unmarkall"' introduced. * Command 'list "swap"' introduced. * New '_lastgotodirection' variable, with the last file goto direction. * Key 'Enter' now marks and goes forward or back according to variable '_lastgotodirection'. * Fix: the largest mipmap was not always being used. * Fix: -lfl linkage is not really necessary: removed it. * Fix: support for PPM files with 2 bytes per sample. * Fix: a few more checks when reading PCX files. * Fix: documented that switch --sanity-check terminates the program, rather than continuing. * Fix: when stdint.h is available use uint8_t, uint16_t, uint32_t instead of non-portable __u8, __u16, __u32 * Fix: compilation was broken without framebuffer (FIM_WITH_NO_FRAMEBUFFER) * Fix: cleaned up the internal keysyms initialization code. * Fix: removed obsolete documentation for the "window" command, now disabled. * Bugfix: improve GIF error handling. * Bugfix: on certain framebuffer configurations part of the screen was not being redrawn. * Bugfix: conversion from external program was vulnerable to failure due to a missing check. * Bugfix: avoiding data corruption when handling %k expando. * Bugfix: repeating "recording 'repeat_last'" (default '.' key) by prepending a number now works. * Fix: configure uses `sdl-config --static-lib`. Version 0.5 * -R / --recursive switch to turn on recursive push of command line specified directories * added --sort and --sort-basename to sort the images list * introduced mipmap mechanism (_use_mipmaps) for faster display/scaling of images * status bar customizable with _display_status_fmt and _info_fmt_str, which can be controlled by the use of special image variable specifiers ('expandos'): "%T" expando to get (and display) total memory used by the program "%C" expando to get (and display) file/memory usage by image cache "%M" expando to get (and display) memory used by the current (displayed) image "%c" expando to get (and display) centering information "%m" expando to get (and display) current image mipmap occupation information "%k" expando to get (and display) current image i:_comment value "%?PRE?VAR?POST?" expando to get (and display) "PRE".i:VAR."POST" ... * search (and jump) on image descriptions via 'goto' and key '/' * when repeating search with 'repeat_last', will use last direction * '?' key is now assigned to backward search (goto '-//') * default 'C-p' key is now assigned to repeat last backward search (goto '-//') * image cache will remember alignment within viewport * jump back and forth from the last viewed image with the ' (single quote aka apostrophe) key and the _lastfileindex variable * added --load-image-descriptions-file (equivalent to 'desc' 'load') to populate the i:_comment values of each loaded image file and set _caption_over_image=2 (with it added also --image-descriptions-file-separator) * added the 'desc "load"' command to load a textual files comments description file * introduced a 'limit' command, with comment, file name, or marked file criteria * the '`' key is bound to toggle limit'ing to the marked files list * introduced 'list "mark"' and 'list "unmark"' subcommands styled as 'limit' * load i:_comment and i:var from description file, with forms: "filename comment" (to i:_comment), "#!fim:var=value" (to set i:var=value on all all the files following) "#!fim:var=" (to unset i:var=value on all all the files following) "filename #!fim:=" (to i:_comment from the value read last) "filename #!fim:+comment" (similar, but will append the new comment) "filename #!fim:^comment" (similar, but will prepend the new comment) "filename #!fim:s/f/t" (similar, but replace string f with string t) * EXIF tags will be read with libexif and become i:EXIF_-prefixed variables * if _want_exif_orientation is set, images will be reoriented according to EXIF metadata (i:__exif_orientation, i:__exif_mirrored, i:__exif_flipped). * the 'help' command will search also in fim command options * will optionally use C++11 constructs with ./configure --enable-cxx11 (no user level impact) * scaling image code faster (thanks to __restrict__ pointers) * customizable SDL window caption line with _want_wm_caption_status * BMP format support is now optional * PCX format support (optional) * changed meaning of variable _ignorecase: now it affects autocommands * introduced variable _re_search_opts affecting regexp-based search * default key 'r' is bound to 'rotate90', key 'R' to 'rotate270' * can be invoked without stdin; e.g. from an X menu * added "display 'resize'" to resize the SDL window, optionally to the image size * default SDL mode is windowed now * by default, the 'C-w' key will resize the SDL window to the original image size * by default, the 'W' key will resize the SDL window to the image size, and added an --autowindow switch to adapt window size to picture size * the 'help' command will search in help items if argument starts with / * special variable i:* expanding to all the variable name/value pairs of the current image * opening image files in archives (e.g. CBZ,CBR,RAR,TAR,fim-0.7.1.tar.gz,TBZ,7Z,ISO,...) with libarchive (experimental) * JPEG-2000 file support via JasPer (experimental) * added a ':- INTEGER' syntax, so one can specify the file in the list counting from the end * added an _archive_files variable to specify which file name types specify archives * added a 'list "pushdirr"' command, working like "pushdir" but recursively * the _fbfont variable will contain the current console font file string * mirror/flip are now being applied with respect to the viewport borders * stat() checking of files on load can be disabled with _push_checks * added --no-stat-push to set _push_checks=0 before initialization * added the _caption_over_image variable (which is 0 unless --load-image-descriptions-file) * 'Pause' and 'Menu' keys are now available in SDL (-o sdl) mode * added 'list' 'marked' to show the list of marked files * key 'Del' bound to pop (delete) the current image from the list * i:_file loader will store the used loader string * switch --offset accepts a range now (using the new _open_offset_retry variable) * if an image has been opened with an offset, i:_open_offset will be set accordingly * variable i:pagecount is now replaced by i:pages * put aside (disabled) the v: b: and w: namespaces until they make more sense * panning on mouse movement in SDL mode * `make fim' goal has been deleted * changed librsb library detection: now it's e.g.: LIBS="`librsb-config --ldflags --extra_libs` " CXXFLAGS="`librsb-config --cflags` "\ ./configure --enable-matrices-rendering * bugfix: in some situations fim -o fb was not clearing the screen before drawing the image * bugfix in the "list 'remove'" internals * --binary=1/--binary=24 will not pad tiny renderings to _preferred_rendering_width pixels * fix: corrected the quiet mode (-q) to be quieter * fix: no zlib.h build time dependency (this will be reintroduced in the future) Version 0.4 * changed --random semantics and introduced --random-no-seed switch * customizable status bar file info string * introduced --as-text to render printable bytes as text * key r is bound to 'rotate90', key R to 'rotate270' * bug fixes for the g: namespace, SDL/X mode, "list 'pop'" command, the --offset option, 'ascale' and rotation, documentation. Version 0.4-beta * interface to the GraphicsMagic library (more graphics formats supported) * introduced bitwise AND and OR operators * support for rendering "matrix market" numerical matrix files (with librsb) * X mode not anymore default in aalib, available at option * libjpeg usage fixes * libpng usage fixes (support for PNG_LIBPNG_VER>=10209) * documentation improvements (e.g.: fim man page is auto-generated) * "imlib2" X-based output device support * "sdl" output device improvements (fullscreen/mouse/windowed options, I/O, ..) * more default consolefont options (e.g.: hardcoded consolefonts support) * configure option to disable the fim history file * improvements to scale, goto, other commands * improved directories reading * introduced --no-commandline, --no-internal-config switches * aggregated some commands for clarity * output console can be disabled at configure time * important fbdev bug fixes * autocompletion of variable identifiers Version 0.3 * minor strchr compilation problem on some systems * better consolefonts support * much better SDL support (different color modes) * 'negate' feature * -S, or 'sanity-check' switch [changed meaning in v0.6] Version 0.3-beta-prerelease * auto-generated documentation: more consistency * grammar specification, in man fimrc * internal commands,variables,autocommands reference man page, in man fimrc * better internal help mechanisms * more control (resolution change,windowed mode) in experimental sdl mode * new commands (pread,reverse,shuffle,...) * (temporarily) disabled internal windows splitting * pushing files from a directory * several minor and major bugfixes Version 0.3-beta * full support for AAlib (ASCII-art rendering) (-o aa) * experimental support for SDLlib (Simple Directmedia Layer) (-o sdl) (X!) * experimental PDF, PS, DJVU file support * history file support (~/.fim_history) * seamless caching and prefetching integration * viewing of any type files as bitmaps (unset bits black, set bits white) * viewing of any type files as pixmaps (as RGB triples) * framebuffer driver now can be disabled at compile time * colors inversion: saves a significant fraction of power when viewing documents Version 0.3-alpha * experimental support for AAlib (ASCII-art rendering) (-t) * reading image files (-i) and scripts (-p) from stdin * runs on the powerpc architecure * rewritten from scratch the debug console, now buffered and with scrolling * achieved speedup in magnifying pictures * achieved speedup in displaying dithered images * smarter quoting rules (looser quote checking) when "push"ing files * dumping to file execution logs as executable scripts (-W/--write-scriptout) * implemented regular expressions matching operator (=~) * new default key bindings for split windows control * could be compiled with no readline library (--disable-readline) Version 0.2 * internal windowing (with splitting, resizing, swapping) support * .xcf, .fig, .dia, .svg files now viewable via wrapper calls * introduced interactive command iteration ( in the [n]<command key> form ) * fim will try to run under screen and over ssh now * custom framebuffer device, fonts and gamma are supported * enriched compile-time options via the ./configure script * vim-styled variable scoping g:,i:,v:,w: (local variables) * eradicated some bugs * introduced new variables, commands Version 0.2-alpha * first windowing functionalities * bugs and subtle flaws handling * introduced new variables, commands Version 0.1 * regular expressions for filtering the viewed image list * vim-like autocommands * command line autocompletion * command line history * completely customizable key bindings * external/internal scriptability |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Screenshots | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A screenshot of a regular (framebuffer) FIM run (SDL would look the same) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A screenshot of a color ASCII Art FIM run: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A screenshot of a monochrome ASCII Art FIM run: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Both screenshots taken with the
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Links to documentation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If you wish to get an idea of FIM in action see these tutorials first.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Download and build instructions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
You are welcome to download the latest (prerelease, dated 23/05/2024) snapshot of FIM:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
man fim | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIMNAMESYNOPSIS DESCRIPTION USAGE OPTIONS PROGRAM RETURN STATUS COMMON KEYS AND COMMANDS AFFECTING ENVIRONMENT VARIABLES COMMON PROBLEMS INVOCATION EXAMPLES NOTES BUGS FILES SEE ALSO AUTHOR COPYRIGHT NAMEfim - Fbi (linux framebuffer imageviewer) IMproved, an universal image viewer SYNOPSISfim
[{options}] [--] {imagepath}
[{imagepaths}] DESCRIPTIONfim is a ’swiss army knife’ for displaying image files. It is capable of displaying image files using different graphical devices while offering a uniform look and feel. Key bindings are customizable and specified in an initialization file. Interaction with standard input and output is possible, especially in shell scripts. An internal scripting language specialized for image viewing allows image navigation, scaling, manipulation of internal variables, command aliases, and Vim-like autocommands. The internal language can be interacted with via a command line mode capable of autocompletion and history (the readline mode). Further features are display of EXIF tags, JPEG comments, EXIF rotation/orientation, load of "description files", faster load via image caching, command recording, and much more. As a default, fim displays the specified file(s) on the detected, most convenient graphical device. This can be with SDL if running under X, an ASCII-art driver (aalib or libcaca) if running behind ssh without X forwarding, or the linux framebuffer device. Graphical file formats BMP, PCX are supported natively, while JPEG, PNG, GIF, TIFF, PPM, PGM, PBM, QOI, AVIF, WEBP are supported via third party libraries. Further formats are supported via external converters. For XCF (Gimp’s) images, ’xcftopnm’ or ’xcf2pnm’ is used. For FIG vectorial images, ’fig2dev’ is used. For DIA vectorial images, ’dia’ is used. For NEF raw camera images, ’dcraw’ is used. For SVG vectorial images, ’inkscape’ is used. For other formats ImageMagick’s ’convert’ is used. The converter is given 15 seconds for the conversion before a timeout. If {imagepath} is a file, its format is guessed not by its name but by its contents. See the _file_loader variable to change this default. If {imagepath} is a directory, load files of supported formats contained there. If {imagepath} contains a trailing slash (/), it is treated as a directory; otherwise that is checked via stat(2). To change this default, see description of the _pushdir_re variable and the --no-stat-push and --recursive options. This man page describes fim command line options and usage. See man fimrc(5) for a full specification of the fim language, commands, keysyms, autocommands, variables, aliases, examples for a configuration file and readline usage samples. USAGEYou may invoke fim from an interactive shell and control it with the keyboard, as you would do with any image viewer with reasonable key bindings. fim is keyboard oriented: there are no user menus or buttons available. If you need some feature or setting which is not accessible from the default keyboard configuration, you probably need a custom configuration or simply need to type a custom command. For these, you can use the internal command and configuration language. See options --read-from-stdin, --script-from-stdin, and --image-from-stdin for more script-oriented usages. The full commands specification is also accessible at runtime using the internal help system (typing :help). OPTIONSAccepted command line {options}:
-a, --autozoom Enable autozoom. Automagically pick a reasonable zoom factor when displaying a new image (as in fbi). -b[24|1], --binary[=24|1] Display contents of binary files (of any filetype) as these were raw 24 or 1 bits per pixel pixelmaps. The width of this image will not exceed the value of the _preferred_rendering_width variable. Regard this as an easter bunny option. --as-text Display contents of files (of any filetype) as these were text. The width of this image will not exceed the value of the _preferred_rendering_width variable. Non-printable characters are then displayed as " ". Regard this as another easter bunny option. --cd-and-readdir Step in the directory of the first file to be loaded, push other files from that directory, and jump back to the first file. Useful when invoking from a desktop environment. -c {commands}, --execute-commands {commands} Execute {commands} after reading the initialization file, just before entering the interactive mode. No semicolon (;) is required at the end of {commands}. Do not forget quoting {commands} in a manner suitable to your shell. So -c next is fine as it is. A more complicated example, with quotings: -c ’*2;2pan_up;display;while(1){align "bottom";sleep "1" ; align "top"}’ (with the single quotes) tells fim to: double the displayed image size, pan twice up, display the image, and finally do an endless loop consisting of bottom and top aligning, alternated. -C {commands}, --execute-commands-early {commands} Similar to the --execute-commands option, but execute {commands} earlier, just before reading the initialization file. If {commands} takes the special ’early’ form =var=val, it assigns value val to variable var immediately, before the interpreter is started, and with no value quoting needed. For example, -C ’_scale_style=" "’ starts fim no auto-scaling; the equivalent early form is: -C ’=_scale_style= ’. -d {fbdev}, --device {fbdev} Framebuffer device to use. Default is the one your vc is mapped to (as in fbi). --dump-reference-help[=man] Dump to stdout language reference help and quit. --dump-default-fimrc Dump default configuration (the one hardcoded in the fim executable) to standard output and quit. -E {scriptfile}, --execute-script {scriptfile} Execute {scriptfile} after the default initialization file is read, and before executing --execute-commands commands. -f {fimrc}, --etc-fimrc {fimrc} Specify an alternative system-wide initialization file (default: /usr/local/etc/fimrc), to be read prior to any other configuration file. See also --no-etc-fimrc-file. -F {commands}, --final-commands {commands} Similar to the --execute-commands option, but execute {commands} after exiting the interactive mode, just before terminating the program. -h[s|d|l|m], --help[=s|d|l|m] Print program invocation help, and exit. Depending on the option, output can be: short, descriptive, long from man, or complete man. For each further argument {help-item} passed to fim, an individual help message is shown. If {help-item} starts with a /, it is treated as a search string (not a regexp, though). -k {keysym}, --keysym-press {keysym} Execute any command bound (via the bind command) to a specified keysym at startup. A keysym can be prefixed by a repetition count number. You can specify the option multiple times to simulate multiple keystrokes. Presses entered via --keysym-press are processed with the same priority as those entered via --chars-press, that is, as they appear. See man fimrc(5) for a list of keysyms and the use of bind. -K {chars}, --chars-press {chars} Input one or more keyboard characters at program startup (simulate keyboard presses). This option can be specified multiple times. Each additional time (or if the string is empty), a press of Enter (ASCII code 0x0D) key is prepended. Examples: -K ’’ simulates press of an Enter; -K ’:next;’ activates the command line and enter "next;" without executing it; -K ":next;" -K "next" executes "next", stays in the command line and enter keys "next"; -K ":next;" -K "" -K "next" executes "next", leaves the command line, and executes in sequence any command bound to keys ’n’, ’e’, ’x’, ’t’. Presses entered via --chars-press are processed with the same priority as those entered via --keysym-press, that is, as they appear. -D {filename}, --load-image-descriptions-file {filename} Load image descriptions from file {filename}. Each line begins with the basename of an image file, followed by a Tab character (or a different character if specified via --image-descriptions-file-separator), then the description text. The description text is copied into the i:_comment variable of the image at load time, overriding the comment possibly loaded from the file (e.g. JPEG, PNG or TIFF comment). If a ’@’ followed by an identifier {identifier} is encountered, and i:{var} is set, its value is substituted here. If "@#" is encountered, the remainder of the description line is ignored. Special comment lines like "#!fim:{var}={val}" lead i:{var} to be assigned value {val} (unquoted) at image loading time (cached variable), unless {var} starts with an underscore (’_’). Special comment lines like "#!fim:@{var}={val}" create a variable {var} that are only valid in expanding @{var} in comments. Special comment lines like "#!fim:{var}@={val}" or "#!fim:@{var}@={val} (notice @ before =) also expand whatever @{identifier} encountered in {val} . Special comment lines like "#!fim:+={val}" add {val} to current description. Special comment lines like "#!fim:^={val}" set {val} to be the base of each description. Special comment lines like "#!fim:!=" reset all cached variables. Special comment lines like "#!fim:/={dir}" prepend {dir} to each file’s basename. Special comment lines like "#!fim:\={dir}" prepend {dir} to each file’s name. Special description text (to be associated to an image) begins with markers: with "#!fim:=", the last description line is reused; with "#!fim:+", what follows is appended to the last description line; with "#!fim:^", what follows is prepended to the last description line; with "#!fim:s/{f}/{t}", the last description line is used and substituted substring {t} to occurrences of substring {f} ({f} and {t} cannot contain newlines or a ’/’). If {val} is empty that variable is unset. These variables are stored also in an internal index used by the limit command. This option sets _caption_over_image=2, so that a caption is displayed over the image. A description file beginning with "#!fim:desc" can be loaded without specifying this switch. -S {sepchar}, --image-descriptions-file-separator {sepchar} A character to be used as a separator between the filename and the description part of lines specified just before a --load-image-descriptions-file. -i, --image-from-stdin Read one single image from the standard input (the image data, not the filename). May not work with all supported file formats. In the image list, this image takes the special name "<STDIN>". --mark-from-image-descriptions-file {filename} Set those files specified in {filename} (see --load-image-descriptions-file for the file format) as marked (see the list command). -m {vmode}, --mode {vmode} Name of the video mode to use video mode (must be listed in /etc/fb.modes). Default is not to change the video mode. In the past, the XF86 config file (/etc/X11/XF86Config) used to contain Modeline information, which could be fed to the modeline2fb perl script (distributed with fbset). On many modern xorg based systems, there is no direct way to obtain a fb.modes file from the xorg.conf file. So instead one could obtain useful fb.modes info by using the (fbmodes (no man page AFAIK)) tool, written by bisqwit. An unsupported mode should make fim exit with failure. But it is possible the kernel could trick fim and set a supported mode automatically, thus ignoring the user set mode. -N, --no-rc-file No personal initialization file is read (default is ~/.fimrc) at startup. --no-etc-fimrc-file No system-wide initialization file is read (default is /usr/local/etc/fimrc) at startup. See also --etc-fimrc. --no-internal-config No internal default configuration at startup (uses internal variable _no_default_configuration). Will only provide a minimal working configuration. --no-commandline With internal command line mode disabled. --no-history-save Do not save execution history at finalization (uses internal variable _save_fim_history). --no-history-load Do not load execution history at startup. --no-history Do not load or save execution history at startup. -p, --script-from-stdin Read commands from stdin before entering in interactive mode. -o
[fb|sdl|gtk|ca|aa|dumb][={gfxopts}],
--output-device Use the specified device
(one among fb|sdl|gtk|ca|aa|dumb) as fim video output
device, overriding automatic checks. If the device is
empty and followed by {gfxopts}, it will be selected
automatically. The available devices depend on the current
environment and on the configuration and compilation
options. You can get the list of available output devices
issuing fim --version. The possible values to
{gfxopts} that we describe here can also be passed as
"display ’reinit’ {gfxopts}" --
see man fimrc for this. The device name with options
(perhaps with modifications due to auto-detection) is stored
in variable _device_string. The fb option
selects the Linux framebuffer. Presence of {gfxopts}
with value ’S’ (e.g.
’fb=S’) makes framebuffer initialization
more picky: it does not tolerate running in a screen
session. The ca option (coloured ASCII-art) can be
specified as
ca[={[’w’][’h’][’H’][’d:’DITHERMODE]}]
; if supplied, ’w’ selects windowed mode,
provided libcaca is running under X; by default (or with
’W’), windowed mode is being turned off
internally during initialization by unsetting the DISPLAY
environment variable. If ’d:’ is present,
the DITHERMODE following it will be passed as dither
algorithm string (alternatively, it can be a non-negative
number, too). The aa (monochrome ASCII-art) option
can be specified as
aa[={[’w’|’W’]}]; if
supplied, ’w’ selects windowed mode,
provided aalib is running under X; by default (or with
’W’), windowed mode is being turned off
internally during initialization by unsetting the DISPLAY
environment variable. Please note that the readline
(internal command line) functionality in ca and
aa modes is limited. If the graphical windowed mode
is sdl or gtk it can be followed by
={[’w’][’m’][’r’][’h’][’W’][’M’][’R’][’H’][width[:height]][’%’]},
where width and height are integer numbers
specifying the desired resolution (if height not
specified, it takes the value of width); the
’w’ character requests windowed mode
(instead of ’W’ for fullscreen); the
’m’ character requests mouse pointer
display; the ’h’ character requests help
grid map draw (can be repeated for variants); the
’r’ character requests support for window
resize; the ’%’ character requests to
treat width and height as percentage of
possible window resolution. The same letters uppercase
request explicit negation of the mentioned features.
Additionally, in gtk mode: ’b’
hides the menu bar, ’e’ starts with empty
menus, ’f’ rebuilds the menus, and
’D’ removes the menus. Note: the
gtk mode is a recent addition and may have defects.
The sdl mode works best with libsdl-2; libsdl-1.2
support is being discontinued. --offset {bytes-offset[{:upper-offset}|{+offset-range}]} Use the specified offset (in bytes) for opening the specified files. If :upper-offset is specified, further bytes until upper-offset are probed. If +offset-range is specified instead, that many additional bytes are to be probed. Use this option to search damaged file systems for image files. Appending a modifier among ’K’,’M’,’G’ (case irrelevant) to an offset number changes the unit to be respectively 2^10, 2^20, or 2^30 bytes. --pread-cmd {cmd-filter-pipeline} Specify a shell command with {cmd-filter-pipeline}. If the current filename matches "^[/A-Za-z0-9_.][/A-Za-z0-9_.-]*$", it is be substituted to any occurrence of ’{}’. The resulting command output is assumed to be file data, which is read, decoded, and displayed. This works by setting the internal _pread_cmd variable (empty by default). -P, --text-reading Enable textreading mode. This has the effect that fim displays images scaled to the width of the screen, and aligned to the top. If the images you are watching are text pages, all you have to do to get the next piece of text is to press space (in the default key configuration, of course). -s {value}, --scroll {value} Set scroll steps for internal variable _steps (default is "20%"). --slideshow {number} Interruptible slideshow mode. Wait for {number} of seconds (can have a decimal part, and is assigned to the _slideshow_sleep_time variable) after each image. Implemented by executing reload; i:fresh=1; while(_fileindex <= _filelistlen-_loop_only_once){sleep _slideshow_sleep_time; next;} _loop_only_once=0; sleep _slideshow_sleep_time; as a first command. Can be interrupted by : or Esc. The other keys execute accordingly to their function but do not interrupt the slideshow. Like in fbi, this cycles forever, unless --once is specified. --sanity-check Perform a quick sanity check, just after the initialization, and terminate. -t, --no-framebuffer fim Use an ASCII Art driver. If present, use either of libcaca (coloured), or aalib (monochrome). For more, see (man fimrc), (info aalib) or (apropos caca)). If no ASCII Art driver had been enabled at compile time, fim does not display any image at all. -T {terminal}, --vt {terminal} The {terminal} is to be used as virtual terminal device file (as in fbi). See (chvt (1)), (openvt (1)) for more info about this. Use (con2fb (1)) to map a terminal to a framebuffer device. --reverse Reverse files list before browsing (can be combined with the other sorting options).
--sort-basename Sort files list before browsing according to file basename’s. --sort-mtime Sort files list before browsing according to file modification time. --sort-fsize Sort files list before browsing according to file size. -u, --random Randomly shuffle the files list before browsing (seed depending on time() function). --random-no-seed Pseudo-random shuffle the files list before browsing (no seeding). -v, --verbose Be verbose: show status bar. --verbose-load Load files verbosely (repeat option to increase verbosity). --verbose-font-load Load font verbosely (sets _fbfont_verbosity). --verbose-interpreter Execute interpreter verbosely (Sets immediately _debug_commands="ackCm" if specified once, _debug_commands="ackCmmi" if specified twice). -V, --version Print to stdout program version, compile flags, enabled features, linked libraries information, supported filetypes/file loaders, and then exit. -w, --autowidth Scale the image according to the screen width. -=, --no-auto-scale Do not scale the images after loading (sets ’_scale_style=" "’;). --autowindow Resize the window size (if supported by the video mode) to the image size. Don’t use this with other image scaling options. --no-stat-push Sets _push_checks=0 before initialization, thus disabling file/dir existence checks with stat(2) at push push time (and speeding up startup). -H, --autoheight Scale the image according to the screen height. -W {scriptfile}, --write-scriptout {scriptfile} All the characters that you type are recorded in the file {scriptfile}, until you exit fim. This is useful if you want to create a script file to be used with "fim -c" or ":exec" (analogous to Vim’s -s and ":source!"). If the {scriptfile} file exists, it is not touched (as in Vim’s -w). -L {fileslistfile}, --read-from-file {fileslistfile} Read file list from a file: each line one file to load (similar to --read-from-stdin; use --read-from-stdin-elds to control line breaking). -, --read-from-stdin Read file list from stdin: each line one file to load; use with --read-from-stdin-elds to control line breaking). Note that these three standard input reading functionalities (-i,-p and -) conflict : if two or more of them occur in fim invocation, fim exits with an error and warn about the ambiguity. See the section INVOCATION EXAMPLES below to read some useful (and unique) ways of employing fim. --read-from-stdin-elds {delimiter-char} Specify an endline delimiter character for breaking lines read via -/--read-from-stdin/--read-from-file (which shall be specified after this). Line text before the delimiter are be treated as names of files to load; the text after is ignored. This is also useful e.g. to load description files (see --load-image-descriptions-file) as filename list files. Default is the newline character (0x0A); to specify an ASCII NUL byte (0x00) use ’’. -A, --autotop Align images to the top border (by setting ’_autotop=1’ after initialization). -q, --quiet Quiet execution mode. Sets _display_status=0;_display_busy=0;. -r
{{width:height}|’fullscreen’},
--resolution Set resolution specification in pixels dimensions. Supported only by GTK and SDL. Will be appended to the argument to --output-device. Shorthand value ’fullscreen’ is translated as ’W’. -R[{exp}], --recursive[={exp}] Push files/directories to the files list recursively. The expression in variable _pushdir_re (default: ".(JPG|PNG|GIF|BMP|TIFF|TIF|JPEG|JFIF|PPM|PGM|PBM|PCX|QOI|AVIF|WEBP)$") lists extensions of filenames which are loaded in the list. You can overwrite its value by optionally passing an expression {exp} here as argument. If starting with ’+’ or ’|’, the expression following is to be appended to it. -X, --no-pipe-load Do not load via external converter programs: only use built-in file decoders. -B, --background-recursive Push files/directories to the files list recursively, in background during program execution. Any sorting options are ignored. Experimental feature, unfinished. --load-shadow-directory {dirname} Add {dirname} to the shadow directory list. Then ’scale "shadow"’ temporarily substitutes the image being displayed with that of the first same-named file located under a shadow directory. Useful to browse low-res images, but still being able to quickly view the hi-res original residing in a shadow directory. This works as intended as long as unique filenames are involved. -/ {pattern}, --/ {pattern} After startup jump to pattern; short for -c ’/’ {pattern}. --// {pattern} After startup jump to pattern; as -c ’/’{pattern} but with search on the full path (with _re_search_opts="f"). -1, --once If running --slideshow, loop only once (as in fbi). PROGRAM RETURN STATUSThe program
return status is 0 on correct operation; 252 on unsupported
device specification; 248 on bad input; 255 on a generic
error; 42 on a signal-triggered program exit; or a different
value in case of an another error. COMMON KEYS AND COMMANDSThe following keys and commands are default hardcoded in the minimal configuration. These are working by default before any configuration file loading, and before the hardcoded config loading (see variable _fim_default_config_file_contents). n goto
’+1f’ : enter command
line mode (here one can use readline bindings as C-r, C-s,
M-b, M-f, ...)
:*{factor} scale the
image by {factor}
You can
visualize all of the default bindings invoking fim
--dump-default-fimrc | grep bind . The Return vs. Space key thing can be used to create a file list while reviewing the images and use the list for batch processing later on. All of the key bindings are reconfigurable; see the default fimrc file for examples on this, or read the complete manual: the FIM.TXT file distributed with fim. AFFECTING ENVIRONMENT VARIABLES
If using a gzipped font file,
the zcat program is used to uncompress it (via
execvp(3)). /usr/share/kbd/consolefonts/cp866-8x16.psf.gz
If the special fim:// string is specified, a hardcoded font is used.
If unset, fim probes for /dev/fb0.
COMMON PROBLEMSfim -o fb needs read-write access to the framebuffer devices (/dev/fbN or /dev/fb/N), i.e you (our your admin) have to make sure fim can open the devices in rw mode. The IMHO most elegant way is to use pam_console (see /etc/security/console.perms) to chown the devices to the user logged in on the console. Another way is to create some group, chown the special files to that group and put the users which are allowed to use the framebuffer device into the group. You can also make the special files world writable, but be aware of the security implications this has. On a private box it might be fine to handle it this way through. If using udev,
you can edit: /etc/udev/permissions.d/50-udev.permissions
and set these lines like here: fim -o fb also needs access to the linux console (i.e. /dev/ttyN) for sane console switch handling. That is obviously no problem for console logins, but any kind of pseudo tty (xterm, ssh, screen, ...) will not work. INVOCATION EXAMPLESfim --help
-R -B fim
media/ fim -R
media/ --sort find
/mnt/media/ -name *.jpg | fim - find
/mnt/media/ -name *.jpg | shuf | fim - cat
script.fim | fim -p images/* scanimage
... | tee scan.ppm | fim -i h5topng -x 1
-y 2 dataset.hdf -o /dev/stdout | fim -i fim * >
selection.txt fim * | fim
- fim -c
’pread "vgrabbj -d /dev/video0 -o
png";reload’ fim -o
aa -c ’pread "vgrabbj -d /dev/video0 -o
png";reload;system "fbgrab"
"asciime.png"’ fim -c ’while(1){pread "vgrabbj -d /dev/video0 -o png";reload;sleep 1;};’ # display a sequence of images grabbed from a webcam; circa 1 per second NOTESThis manual page is neither accurate nor complete. In particular, issues related to driver selection shall be described more accurately. Also the accurate sequence of autocommands execution, variables application is critical to understanding fim, and should be documented. The filename "<STDIN>" is reserved for images read from standard input (view this as a limitation), and thus handling files with such name may incur in limitations. BUGSfim has bugs. Please read the BUGS file shipped in the documentation directory to discover the known ones. There are also inconsistencies in the way the internal command line works across the different graphical devices. FILES/usr/local/share/doc/fim The directory with fim documentation files. /usr/local/etc/fimrc The system-wide fim initialization file (executed at startup, after executing the hardcoded configuration).
SEE ALSOOther
fim man pages: fimgs(1), fimrc(1). AUTHORMichele Martone <dezperado _CUT_ autistici _CUT_ org> is the author of fim, "Fbi IMproved". COPYRIGHTCopyright (C)
2007-2024 Michele Martone <dezperado _CUT_ autistici
_CUT_ org> (author of fim) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
man fimrc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fimrcNAMESYNOPSIS DESCRIPTION FIM LANGUAGE GRAMMAR COMMANDS REFERENCE KEYSYMS REFERENCE AUTOCOMMANDS REFERENCE VARIABLES REFERENCE DEFAULT ALIASES REFERENCE COMMAND LINE USAGE EXAMPLES CONFIGURATION FILE EXAMPLE NOTES BUGS SEE ALSO AUTHOR COPYRIGHT NAMEfimrc - fim configuration file and language reference SYNOPSIS~/.fimrc
DESCRIPTIONThis page explains the fim scripting language, which is used for the fimrc configuration files, {scriptfile}s, or {commands} passed via command line {options}. This language can be used to issue commands (or programs) from the internal program command line accessed interactively by default through the ":" key (which can be customized via the "_console_key" variable). One may exit from command line mode by pressing the Enter key on an empty line (a non empty command line would be submitted for execution), or the Esc key (only in SDL mode). The general form of a fim command/program is shown in the next section. FIM LANGUAGE GRAMMARThis section specifies the grammar of the fim language. Language elements surrounded by a single quote ("’") are literals. Warning: at the present state, this grammar has conflicts. A future release shall fix them. program: %empty
statement_list:
statement non_atomic_statements_block:
’{’ statement_list ’}’ statements_block:
atomic_statements_block conditional_statement:
if_statement if_statement:
’if’ ’(’ expression ’)’
statements_block loop_statement:
’while’ ’(’ expression
’)’ statements_block atomic_statements_block:
statement ’;’ statement:
’!’ arguments arguments:
expression expression:
’(’ expression ’)’ A STRING can be either a single quoted string or a double quoted string. A floating point number can be either unquoted (UNQUOTED_FLOAT) or quoted (QUOTED_FLOAT). A QUOTED_FLOAT is a floating point number, either single ("’") or double (""") quoted. An INTEGER shall be an unsigned integer number. An IDENTIFIER shall be one of the valid fim commands (see COMMANDS REFERENCE ) or a valid alias. A VARIABLE shall be an already declared or undeclared variable identifier (see VARIABLES REFERENCE ) or a valid alias, created using the alias command. The "=~" operator treats the right expression as a STRING, and uses it as a regular expression for matching purposes. The SLASH_AND_REGEXP is a slash ("/") followed by a STRING, interpreted as a regular expression. If ’INTEGER , INTEGER IDENTIFIER arguments’ is encountered, command IDENTIFIER will be repeated on each file in the interval between the two INTEGERs, and substituting the given file name to any ’{}’ found in the commands arguments (which must be quoted in order to be treated as strings). See regex(1) for regular expression syntax. The way some one-line statements are evaluated: : enter command
line mode (here one can use readline bindings as C-r, C-s,
M-b, M-f, ...)
:*{factor} scale the
image by {factor}
COMMANDS REFERENCEalias
align
autocmd
autocmd_del
basename
bind
cd clear
commands
color
crop
desc
display
dump_key_codes
echo
else
eval
exec
font
getenv
goto
help
if info
limit
list
load
pan popen
pread
prefetch
pwd quit
recording
redisplay
reload
rotate
scale
scroll
set set_commandline_mode
set_interactive_mode
sleep
status
stderr
stdout
system
variables
unalias
unbind
while
window
KEYSYMS REFERENCE" " "!" ’"’ "#" "$" "%" "&" "’" "(" ")" "*" "+" "," "-" "." "/" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" ":" ";" "<" "=" ">" "?" "@" "A" "Any" "B" "Backspace" "C" "C-a" "C-b" "C-c" "C-d" "C-e" "C-f" "C-g" "C-h" "C-i" "C-j" "C-k" "C-l" "C-m" "C-n" "C-o" "C-p" "C-q" "C-r" "C-s" "C-t" "C-u" "C-v" "C-w" "C-x" "C-y" "C-z" "D" "Del" "Down" "E" "End" "Enter" "Esc" "F" "F1" "F10" "F11" "F12" "F2" "F3" "F4" "F5" "F6" "F7" "F8" "F9" "G" "H" "Home" "I" "Ins" "J" "K" "L" "Left" "M" "N" "O" "P" "PageDown" "PageUp" "Q" "R" "Right" "S" "T" "Tab" "U" "Up" "V" "W" "X" "Y" "Z" "[" "\" "]" "^" "_" "’" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" "{" "|" "}" "~" AUTOCOMMANDS REFERENCEAvailable
autocommands are: PreScale, PostScale, PrePan, PostPan,
PreRedisplay, PostRedisplay, PreDisplay, PostDisplay,
PrePrefetch, PostPrefetch, PreReload, PostReload, PreLoad,
PostLoad, PreGoto, PostGoto, PreConfigLoading,
PostConfigLoading, PreHardcodedConfigLoading,
PostHardcodedConfigLoading, PreUserConfigLoading,
PostUserConfigLoading, PreGlobalConfigLoading,
PostGlobalConfigLoading, PreInteractiveCommand,
PostInteractiveCommand, PreExecutionCycle,
PostExecutionCycle, PreExecutionCycleArgs, PreWindow,
PostWindow, and they are triggered on actions as suggested
by their name. VARIABLES REFERENCEIf undeclared, a variable will evaluate to 0. When assigning a variable to a string, use single or double quoting, otherwise it will be treated as a number. The namespaces in which variables may exist are: current image, global. A namespace is specified by a prefix, which can be: ’i:’, be prepended to the variable name. The global namespace is equivalent to the empty one:’’. The special variable i:* expands to the collation of all the name-value pairs for the current image. In the following, the [internal] variables are the ones referenced in the source code (not including the hardcoded configuration, which may be inspected and/or invalidated by the user at runtime). _TERM
[out,g:] the environment TERM variable. DEFAULT ALIASES REFERENCEHardcoded aliases are: alias
"A" "_autotop=1-_autotop;" They can be
redefined with alias or deleted with the
unalias command. COMMAND LINE USAGE EXAMPLES# jump to the
third image: CONFIGURATION FILE EXAMPLEPart of the
default configuration comes from the
_fim_default_config_file_contents variable, shown
here. #
$LastChangedDate: 2024-05-15 01:34:42 +0200 (Wed, 15 May
2024) $ autocmd
"PostReload" "" "i:fresh=1" ;
#alias
"next10"
"i=0;while(i<10){i=i+1;next;display;sleep
’1’;}" "goes forward 10 images";
bind
’K’ ’if(_display_console==0){echo
i:_filename.":
".i:_comment;toggleVerbosity}else{toggleVerbosity;}’;
alias
’cache’ ’echo _cache_status’
"displays cached images status";
} NOTESThis manual page could be improved. Certain side effects of commands are not documented. Neither a formal description of the various commands. Interaction of commands and variables is also not completely documented. BUGSThe fim language shall be more liberal with quoting. SEE ALSOfim(1), fimgs(1), regex(1). AUTHORMichele Martone <dezperado _CUT_ autistici _CUT_ org> COPYRIGHTSee copyright notice in fim(1). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
man fimgs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fimgsNAMESYNOPSIS DESCRIPTION OPTIONS SEE ALSO AUTHOR NAMEfimgs - poor man’s [http://]PostScript/pdf/dvi/cbr/rar/cbz/zip viewer based on fim SYNOPSISfimgs [ {fimgs-options} ] file [-- [{fim-options}]] DESCRIPTIONfimgs is a wrapper script which takes a PostScript or pdf or .cbr or .rar or .cbz or .zip or .dvi or any of the above prefixed with http:// or https:// or ssh: as input, renders the pages using ghostscript into a temporary directory and finally calls fim to display them. In case of compressed archives (in ZIP or RAR formats), the images are decompressed into a directory and displayed using fim. In this case, only images contained in the archive will be displayed (no nested archives or pdf’s or ps’s or dvi’s). The temporary directory name will be of the form $TMPDIR/fbps-$$. If the $TMPDIR environment variable is unset, /dev/shm and /var/tmp will be checked for existence and permissions. The $$ above is the script process ID. The script deletes the temporary directory when fim terminates. In order to uncompress RAR archives, fimgs will use ’unrar-nonfree’ or ’rar’ or ’unrar-free’. In order to uncompress ZIP archives, fimgs will use ’zip’. In order to uncompress BZ2 files, ’bunzip2’ will be used, if present. In order to uncompress TAR.GZ or TAR.BZ2 or TAR.XZ archives, fimgs will use ’tar’. In order to fetch http:// or https:// prefixed URLS, ’wget’ will be used, if present. In order to fetch ssh: prefixed host:path locations, ’scp’ will be used. In case of a CBZ, CBR, PDF, PS, or DVI file, will invoke fim with ’--autotop --autowidth’. OPTIONSTo pass through options to fim, you may specify them after "--". Default options are ’--autozoom’. -r {resolution} Specify resolution for the ’gs’ -r option (e.g.: 96x96; default 120x120).
-p {password} Specify password for the ’gs’ -p (password) option.
SEE ALSOfim(1), fimrc(1), gs(1), fbi(1), fbgs(1), bash(1) ,zip(1), rar(1), rar-free(1), unrar-free(1), tar(1), gzip(1) AUTHORMichele Martone <dezperado _ GUESS _ autistici.org>. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright and Thanks | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
and derives from the Fbi image viewer by Gerd Hoffmann.
See the README.TXT file for more licensing info.
|
Thanks go to (in temporal order, newer to older): Leah Neukirchen, for build, configure, testing, and various suggestions Sijmen J. Mulder, for catching residual bashisms in configure.ac Rafael Laboissiere, for several compatibility, correctness, test and build fixes and reports Martin Klaiber, for pointing out problems and testing Mohammed Isam, for having provided PCX reading support Matthieu Crapet, for enabling out-of-tree builds Marco Barbàra, for testing and critiques Vitaly Minko, for testing and debugging on ARM Damiano Biagioli, for early testing Marta Carbone, for early testing and debugging |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIM is free software, licensed under the terms of the GNU Public License version 2 (GPLv2) or later.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bugs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There are notes about documented bugs in the
BUGS.html
(BUGS) file.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sections: top tutorials news screenshots documentation download man fim man fimrc man fimgs copyright contact author license bugs |