Provided by: fim_0.6~rc2-1build2_amd64 bug

NAME

       fim - Fbi (linux framebuffer imageviewer) IMproved, an universal image viewer

SYNOPSIS

       fim [{options}] [--] {imagepath} [{imagepaths}]
       fim --output-device {fb|sdl|ca|aa|imlib2|dumb} ...
       ... | fim [{options}] [--] [{imagepaths}] -
       fim [{options}] [--] [{files}] - < {file_name_list_text_file}
       fim --image-from-stdin [{options}] < {imagefile}
       fim --script-from-stdin [{options}] < {scriptfile}
       fim --help[=s|d|l|m] [{help-item} ...]

DESCRIPTION

       fim  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 are supported via third party libraries.  Further  formats  are
       supported  via  external  converters.   For  XCF  (Gimp's)  images,  will try to use 'xcftopnm'.  For FIG
       vectorial images, will try to use 'fig2dev'.  For DIA vectorial images, will try to use 'dia'.   For  SVG
       vectorial  images, will try to use 'inkscape'.  For other formats will try to use ImageMagick's 'convert'
       executable.  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,  therein  contained  files  of  supported  formats  will  be  loaded.  If
       {imagepath}  contains  a  trailing  slash  (/), it will be treated as a directory; otherwise this will be
       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.

USAGE

       You 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).

OPTIONS

       Accepted command line {options}:

       --     Treat arguments after -- as filenames.  Treat arguments before -- as command line options if these
              begin with -, and as filenames otherwise.

       -a, --autozoom
              Enable autozoom. fim will 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.  Image width 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.  Image width will not exceed the
              value of the _preferred_rendering_width variable.  Non-printable characters will be 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.  The special 'early' form =var=val will assign var to val immediately, before
              the interpreter is started.

              For  example,  -C  '_scale_style=" "' starts fim no auto-scaling; the equivalent early form is: -C
              '=_scale_style= '.

       -d {framebuffer device}, --device {framebuffer device}
              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. If further arguments follow, individual help messages
              will be shown instead.

       -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 before presses entered via
              --chars-press. 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  after  presses entered via
              --keysym-press.

       -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  and  identifier  {var}  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); i:var will not
              be assigned if var starts with an underscore ('_'). 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 will be used after
              substitution of occurrences of substring f with string t (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 will be read (default is ~/.fimrc) at startup.

       --no-etc-fimrc-file
              No  system-wide initialization file will be 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|ca|aa|imlib2|dumb], --output-device [fb|sdl|ca|aa|imlib2|dumb]
              Will  use  the  specified  device  as  fim  video output device, overriding automatic checks.  The
              available devices depend on the original configuration/compilation options, so you should get  the
              list  of  available  output  devices  issuing  fim  --version.   The  fb  option selects the Linux
              framebuffer. Presence of option S (e.g. fb=S) makes framebuffer initialization more picky: it will
              not tolerate running in a screen session.  The ca option (coloured Ascii Art) can be specified  as
              ca[={['w']}]  ;  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.  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.  The sdl option  (graphical  windowed  mode)  may  be
              specified as  sdl={['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.  The imlib2 option requests  imlib2
              and is unfinished -- do not use it.  The dumb test mode is not interactive.

       --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 will be probed. If +offset-range is specified instead,
              that many additional bytes will 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  will  be  substituted  to  any  occurrence  of  '{}'. The
              resulting command output is assumed to be file data, which will be read 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 will display 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 (assigned to the _want_sleep_seconds
              variable) after each image.  Implemented  by  executing  reload;  i:fresh=1;  while(_fileindex  <=
              _filelistlen-_loop_only_once){sleep  _want_sleep_seconds;  next;} sleep _want_sleep_seconds;  as a
              first command. Can be interrupted by : or Esc. The other keys will execute  accordingly  to  their
              function but will not interrupt the slideshow. Like in fbi, this will cycle 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 was enabled at
              compile time, fim will not display any image at all.

       -T {terminal}, --vt {terminal}
              The terminal will 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 Sort files list before browsing according to full filename.

       --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="ackC"  if  specified  once,
              _debug_commands="ackCi" 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 (will set '_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 {scriptout}, 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 {scriptout} file exists, it will be 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 the three standard input reading functionalities (-i,-p and -) conflict :  if  two
              or more of them occur in fim invocation, fim will exit 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  will be treated as names of files to load; the text after will be 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}, --resolution {width:height}
              Set resolution specification in pixels. Supported by SDL only. Will be appended to the argument to
              --output-device. Shorthand value 'fullscreen' will be translated into '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|WEBP)$")   lists  extensions  of
              filenames which will be 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 will 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 will be ignored. Experimental feature, unfinished.

       --load-shadow-directory {dir}
              Add  {dir}  to  the  shadow  directory list. Then 'scale "shadow"' will temporarily substitute 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}
              After   startup   jump   to   pattern;  as  -c  '/'  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 STATUS

       The 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.
        The return status may be controlled by the use of the quit command.

COMMON KEYS AND COMMANDS

       The following keys and commands are hardcoded in the minimal configuration. These are working by default before any config loading, and before the hardcoded config loading (see variable _fim_default_config_file_contents).

        n    goto '+1f'
        p    goto '-1f'
        +    magnify
        -    reduce
        h    pan 'left'
        l    pan 'right'
        k    pan 'up-'
        j    pan 'down+'
        q    quit
       You can type a number before a command binding to iterate the assigned command:
       3k    3pan 'up-'

       :       enter command line mode
       :{number}       jump to {number}^th image in the list
       :^           jump to first image in the list
       :$           jump to last image in the list
       :*{factor}      scale the image by {factor}
       :{scale}%       scale the image to the desired {scale}
       :+{scale}%       scale the image up to the desired percentage {scale} (relatively to the original)
       :-{scale}%       scale the image down to the desired percentage {scale} (relatively to the original)

       /{regexp}       entering the pattern {regexp} (with /) makes fim jump to the next image whose filename matches {regexp}
       /*.png$         entering this pattern (with /) makes fim jump to the next image whose filename ends with 'png'
       /png       a shortcut for /.*png.*

       2,4 stdout '{}'     print three filenames to standard output.

       !{syscmd}      executes the {syscmd} quoted string as an argument to the  "system" fim command.

       You can visualize all of the default bindings invoking fim --dump-default-fimrc | grep bind .
       You can visualize all of the default aliases invoking fim  --dump-default-fimrc | grep alias .

       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

       FBFONT         (just like in fbi) a Linux consolefont font file.
       If using a gzipped font, the zcat program will be used to uncompress it (via execvp(3)).
       If not specified, the following files will be probed and the first existing will be selected:

       /usr/share/kbd/consolefonts/cp866-8x16.psf.gz
       /usr/share/consolefonts/Uni3-TerminusBoldVGA14.psf.gz
       /usr/lib/kbd/consolefonts/lat9-16.psf.gz
       /usr/share/consolefonts/lat1-16.psf
       /usr/share/consolefonts/lat1-16.psf.gz
       /usr/share/consolefonts/lat1-16.psfu.gz
       /usr/share/kbd/consolefonts/lat1-16.psf
       /usr/share/kbd/consolefonts/lat1-16.psf.gz
       /usr/share/kbd/consolefonts/lat1-16.psfu.gz
       /usr/lib/kbd/consolefonts/lat1-16.psf
       /usr/lib/kbd/consolefonts/lat1-16.psf.gz
       /usr/lib/kbd/consolefonts/lat1-16.psfu.gz
       /lib/kbd/consolefonts/lat1-16.psf
       /lib/kbd/consolefonts/lat1-16.psf.gz
       /lib/kbd/consolefonts/lat1-16.psfu.gz
       /lib/kbd/consolefonts/Lat2-VGA14.psf.gz
       /lib/kbd/consolefonts/Lat2-VGA16.psf.gz
       /lib/kbd/consolefonts/Lat2-VGA8.psf.gz
       /lib/kbd/consolefonts/Uni2-VGA16.psf.gz
       /usr/share/consolefonts/default8x16.psf.gz
       /usr/share/consolefonts/default8x9.psf.gz
       /usr/share/consolefonts/Lat15-Fixed16.psf.gz
       /usr/share/consolefonts/default.psf.gz
       fim://

       If the special fim:// string is specified, a hardcoded font will be used.
       FBGAMMA        (just like in fbi) gamma correction (applies to dithered 8 bit mode only). Default is 1.0.
       FRAMEBUFFER    (just like in fbi) user set framebuffer device file (applies only to the fb mode).
       If unset, fim will probe for /dev/fb0.
       TERM      (only in fim) will influence the output device selection algorithm, especially if $TERM=="screen".
       SSH_TTY   if set and no output device specified, give precedence to ca, then aa (if present).
       DISPLAY   If this variable is set, then the sdl driver will be probed by default.

COMMON PROBLEMS

       fim  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:
        # fb devices
        fb:root:root:0600
        fb[0-9]*:root:root:0600
        fb/*:root:root:0600

       fim 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 a pseudo tty (xterm, ssh, screen, ...) will not
       work.

INVOCATION EXAMPLES

       fim --help -R -B
       # get help for options -R and -B

       fim media/
       # load files from the directory media/

       fim -R media/ --sort
       # open files found by recursive traversal of directory media, then sorting the list

       find /mnt/media/ -name *.jpg | fim -
       # read input files list from standard input

       find /mnt/media/ -name *.jpg | shuf | fim -
       # read input files list from standard input, randomly shuffled

       cat script.fim | fim -p images/*
       # read a script file script.fim from standard input before displaying files in the directory images

       scanimage ... | tee scan.ppm | fim -i
       # read the image scanned from a flatbed scanner as soon as it is read

       h5topng -x 1 -y 2 dataset.hdf -o /dev/stdout | fim -i
       # visualize a slice from an HDF5 dataset file

       fim * > selection.txt
       # output the file names marked interactively with the 'list "mark"' command in fim to a file

       fim * | fim -
       # output the file names marked with 'm' in fim to a second instance of  fim,  in  which  these  could  be
       marked again

       fim -c 'pread "vgrabbj -d /dev/video0 -o png";reload'
       # display an image grabbed from a webcam

       fim -o aa -c 'pread "vgrabbj -d /dev/video0 -o png";reload;system "fbgrab" "asciime.png"'
       #  if running in framebuffer mode, will save a png screenshot with an ASCII rendering of an image grabbed
       from a webcam

       fim -c 'while(1){pread "vgrabbj -d /dev/video0 -o png";reload;sleep 1;};'

       # will display a sequence of images grabbed from a webcam; circa 1 per second

NOTES

       This 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.  The SDL driver is quite inefficient, for a variety  of  reasons.  In
       particular,  its interaction with the readline library can be problematic (e.g.: when running in sdl mode
       without a terminal). This shall be fixed.

BUGS

       fim 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).

       ~/.fimrc       The  personal  fim  initialization  file  (executed  at  startup,  after  the  system-wide
                      initialization file).

       ~/.fim_history File where to load from or save. See (man fimrc(5),  man readline(3)).

       ~/.inputrc     If fim is built with GNU readline support, it will be susceptible to chages  in  the  user
                      set ~/.inputrc configuration file contents.  For details, see (man readline(3)).

SEE ALSO

       Other fim man pages: fimgs(1), fimrc(1).
       Conversion programs: convert(1), dia(1), xcftopnm(1), fig2dev(1), inkscape(1).
       Related   programs:   fbset(1),   con2fb(1),  vim(1),  mutt(1),  exiftool(1),  exiftags(1),  exiftime(1),
       exifcom(1), fbi(1), fbida(1), feh(1), fbgrab(1).
       Related documentation: fbdev(4), vcs(4), fb.modes(8), fbset(8), setfont(8).

AUTHOR

       Michele Martone <dezperado _CUT_ autistici _CUT_ org> is the author of fim, "fbi improved".

COPYRIGHT

       Copyright (C) 2007-2023 Michele Martone <dezperado _CUT_ autistici _CUT_ org> (author of fim)
       Copyright (C) 1999-2004 Gerd Hoffmann <kraxel _CUT_ bytesex.org> is the author of "fbi", upon  which  fim
       was originally based.

       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.

                                          (c) 2007-2023 Michele Martone                                   FIM(1)