It's a nice idea, however I remember SDL-1.2 does not allow for window
positioning or probing for the maximal window area (it is different with
full screen - there, probing is fine).
I will think about it and let know :-)

In the meanwhile, did you check out 
 fim file.jpg -a -k F11
?
F11 is the full screen key ;-)

On 20221016@19:11, d3fault wrote:
> Another small suggestion: --show-maximized to show the whole window
> maximized when it's first launched. To be used in combination with -a
> of course :)
> 
> 
> d3fault
> 
> On 10/16/22, d3fault <d3faultdot...@gmail.com> wrote:
> > Thank you for this! I haven't tested it but I'll assume it works.
> > Since you're in "fim mode" maybe I can persuade you to re-add the "-1"
> > flag and also re-add Ctrl-C terminating the program with error code !=
> > 0. I'm trying to port the following fbi script to fim. what it does is
> > recursively generates an image list from current directory, shuffles
> > it, then displays those images in fbi and exits out. the whole process
> > loops indefinitely (so a different shuffled order is shown every time)
> > until Ctrl+C is pressed. it doesn't use a slideshow by default but I
> > can pass "-t 5" to the script and then it does. side note: --slideshow
> > 5 takes a bit longer to write. -t alias?
> >
> > thank you for your work on fim. fbi is awesome but up until now I was
> > sad it didn't work with x11.
> >
> >
> > #!/bin/bash
> > while :
> > do
> >     fbi -noverbose -a -u "$@" -1 --list <(find . -type f \( -iname
> > "*.jpg" -o -iname "*.bmp" -o -iname "*.png" -o -iname "*.gif" -o
> > -iname "*.jpeg" \)) || break
> > done
> >
> > On 10/10/22, Michele Martone <michelemart...@users.sourceforge.net> wrote:
> >> ...I realize the last email patch was not covering -o fbdev and -o aa.
> >>
> >> Now:
> >>  svn diff http://svn.savannah.nongnu.org/svn/fbi-improved -r 1676:1678
> >> should cover those, too.
> >> Tarballs updated.
> >>
> >> Feedback welcome,
> >> m.
> >>
> >> On 20221010@12:02, Michele Martone wrote:
> >>> Dear d3fault,
> >>>
> >>> Here is the upstream fix.
> >>>
> >>> In patch form:
> >>>  svn diff http://svn.savannah.nongnu.org/svn/fbi-improved -r 1676:1677
> >>>  (also attached)
> >>>
> >>> In 0.6 trunk tarball:
> >>>
> >>> http://download.savannah.nongnu.org/releases/fbi-improved/fim-0.6-trunk.tar.gz
> >>>
> >>> http://download.savannah.nongnu.org/releases/fbi-improved/fim-0.6-trunk.tar.gz.sig
> >>>
> >>> Would be great if you could give it a try.
> >>>
> >>> Cheers,
> >>> Michele
> >>>
> >>> On 20221010@08:05, Michele Martone wrote:
> >>> > Dear d3fault,
> >>> >
> >>> > Thanks for reporting of this defect.
> >>> >
> >>> > Unfortunately it's also in the latest revision.
> >>> > I'll let you know here once I attack the problem.
> >>> >
> >>> > The good news in the last weeks I'm very active with fim, so
> >>> > *maybe* we get this solved soon-ish :-)
> >>> >
> >>> > ciao,
> >>> > Michele
> >>> >
> >>> > On 20221009@09:57, d3fault wrote:
> >>> > > Package: fim
> >>> > > Version: 0.5.3-9+b1
> >>> > > Severity: normal
> >>> > > X-Debbugs-Cc: d3faultdot...@gmail.com
> >>> > >
> >>> > > Dear Maintainer,
> >>> > >
> >>> > >    * What led up to the situation?
> >>> > >       fim --slideshow=5 ./*.jpg
> >>> > >    * What exactly did you do (or not do) that was effective (or
> >>> > >      ineffective)?
> >>> > >       I looked at the screen. I also pressed 'q'.
> >>> > >    * What was the outcome of this action?
> >>> > >       The first image of the slideshow was just all black. The 2nd+
> >>> > > images do show.
> >>> > >       Also if you press 'q' while the slideshow is still running,
> >>> > > the
> >>> > > app doesn't quit
> >>> > >       but instead it just progresses to the next image. After all
> >>> > > the
> >>> > > images have been
> >>> > >       shown, then 'q' will quit. I would also expect slideshow mode
> >>> > > to
> >>> > > loop around
> >>> > >       indefinitely, but that's not really a bug.
> >>> > >    * What outcome did you expect instead?
> >>> > >       I expected to see the first image. I also expected 'q' to quit
> >>> > > the app.
> >>> > >
> >>> > > Also confirmed the bug exists on Bullseye.
> >>> > > It works fine in fbi.
> >>> > >
> >>> > >
> >>> > > -- System Information:
> >>> > > Debian Release: bookworm/sid
> >>> > >   APT prefers unstable
> >>> > >   APT policy: (500, 'unstable')
> >>> > > Architecture: amd64 (x86_64)
> >>> > >
> >>> > > Kernel: Linux 5.10.0-18-amd64 (SMP w/4 CPU threads)
> >>> > > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
> >>> > > LANGUAGE not set
> >>> > > Shell: /bin/sh linked to /usr/bin/dash
> >>> > > Init: systemd (via /run/systemd/system)
> >>> > >
> >>> > > Versions of packages fim depends on:
> >>> > > ii  libaa1           1.4p5-50
> >>> > > ii  libc6            2.35-3
> >>> > > ii  libdjvulibre21   3.5.28-2
> >>> > > ii  libexif12        0.6.24-1+b1
> >>> > > ii  libgcc-s1        12.2.0-5
> >>> > > ii  libgif7          5.2.1-2.5
> >>> > > ii  libjpeg62-turbo  1:2.1.2-1+b1
> >>> > > ii  libpng16-16      1.6.38-2
> >>> > > ii  libreadline8     8.2-1
> >>> > > ii  libsdl1.2debian  1.2.15+dfsg2-8
> >>> > > ii  libstdc++6       12.2.0-5
> >>> > > ii  libtiff5         4.4.0-4
> >>> > >
> >>> > > fim recommends no packages.
> >>> > >
> >>> > > fim suggests no packages.
> >>> > >
> >>> > > -- no debconf information
> >>>
> >>>
> >>
> >>> Index: trunk/src/CommandConsole.h
> >>> ===================================================================
> >>> --- trunk/src/CommandConsole.h    (revision 1676)
> >>> +++ trunk/src/CommandConsole.h    (revision 1677)
> >>> @@ -410,6 +410,7 @@
> >>>   public:
> >>>   void switch_if_needed(void);
> >>>   fim::string getInfoCustom(const fim_char_t * ifsp)const;
> >>> + fim_int show_must_go_on(void) const;
> >>>  };
> >>>  }
> >>>
> >>> Index: trunk/src/CommandConsole.cpp
> >>> ===================================================================
> >>> --- trunk/src/CommandConsole.cpp  (revision 1676)
> >>> +++ trunk/src/CommandConsole.cpp  (revision 1677)
> >>> @@ -645,7 +645,7 @@
> >>>                   else
> >>>  #endif /* FIM_ITERATED_COMMANDS */
> >>>                           
> >>> status=execute_internal(getBoundAction(c).c_str(),FIM_X_NULL);
> >>> -                 if( show_must_go_on_ )
> >>> +                 if( show_must_go_on_ > 0 )
> >>>                           
> >>> FIM_AUTOCMD_EXEC_POST(FIM_ACM_POSTINTERACTIVECOMMAND);
> >>>           }
> >>>
> >>> @@ -901,10 +901,14 @@
> >>>            *      Allows user to press any key during loop.
> >>>            *      Loop will continue its execution, unless pressed key is
> >>> exitBinding_.
> >>>            *      If not, and if the key is bound to some action, this 
> >>> action is
> >>> executed.
> >>> -          *      returns 1 if loop has to be broken.
> >>> +          *      If loop has to be broken, returns 1 and changes 
> >>> show_must_go_on_
> >>> to
> >>> 2.
> >>>            */
> >>>           fim_key_t c;
> >>>
> >>> +         if ( !show_must_go_on_ )
> >>> +                 goto err;
> >>> +         show_must_go_on_ = 1;
> >>> +
> >>>           if ( exitBinding_ == 0 )
> >>>                   goto err;       /* any key triggers an exit */
> >>>
> >>> @@ -931,7 +935,8 @@
> >>>           }
> >>>           return 0;       /* no chars read  */
> >>>  err:
> >>> -         return 1;       /* loop shall be broken */
> >>> +         show_must_go_on_ = 2;
> >>> +         return 1;       /* break any enclosing loop */
> >>>   }
> >>>           
> >>>  #ifdef   FIM_USE_GPM
> >>> @@ -1174,6 +1179,7 @@
> >>>  #if FIM_WANT_BACKGROUND_LOAD
> >>>           blt_.join();
> >>>  #endif /* FIM_WANT_BACKGROUND_LOAD */
> >>> +         show_must_go_on_ = -1; /* without this it would break loops in
> >>> postExecutionCommand_ aka -F */
> >>>           FIM_AUTOCMD_EXEC(FIM_ACM_POSTEXECUTIONCYCLE,initial);
> >>>           return quit(return_code_);
> >>>   }
> >>> @@ -2675,4 +2681,9 @@
> >>>  labeldone:
> >>>   return linebuffer;
> >>>  }
> >>> +
> >>> +fim_int CommandConsole::show_must_go_on(void) const
> >>> +{
> >>> + return show_must_go_on_;
> >>> +}
> >>>  } /* namespace fim */
> >>> Index: trunk/src/fim.h
> >>> ===================================================================
> >>> --- trunk/src/fim.h       (revision 1676)
> >>> +++ trunk/src/fim.h       (revision 1677)
> >>> @@ -1082,7 +1082,7 @@
> >>>  #define FIM_FLT_HELP_DISPLAY FIM_FLT_DISPLAY " ['reinit'
> >>> {string}]|'resize' {w} {h}]: display the current file contents."
> >>> FIM_CNS_CMDSEP "If 'reinit' switch is supplied, the '{string}' specifier
> >>> will be used to reinitialize (e.g.: change resolution, window system
> >>> options) the display device." FIM_CNS_CMDSEP "See documentation for the
> >>> --" FIM_OSW_OUTPUT_DEVICE " command line switch for allowed values of
> >>> {string}." FIM_CNS_CMDSEP "If 'resize' and no argument, will ask the
> >>> window manager to size the window like the image." FIM_CNS_CMDSEP "If
> >>> 'resize' and two arguments, these will be used as width and height of
> >>> window, to set."
> >>>
> >>>  /*  */
> >>> -#define FIM_CNS_SLIDESHOW_CMD "while(" FIM_VID_FILEINDEX "<"
> >>> FIM_VID_FILELISTLEN "){sleep " FIM_VID_WANT_SLEEPS "; next;}"
> >>> +#define FIM_CNS_SLIDESHOW_CMD FIM_FLT_RELOAD "; i:fresh=1; while("
> >>> FIM_VID_FILEINDEX "<" FIM_VID_FILELISTLEN "){sleep " FIM_VID_WANT_SLEEPS
> >>> "; next;}"
> >>>  #define FIM_CNS_QUIET_CMD FIM_VID_DISPLAY_STATUS "=0;"
> >>> FIM_VID_DISPLAY_BUSY "=0;"
> >>>
> >>>  /*
> >>> Index: trunk/src/testdir/test13.in
> >>> ===================================================================
> >>> --- trunk/src/testdir/test13.in   (revision 1676)
> >>> +++ trunk/src/testdir/test13.in   (revision 1677)
> >>> @@ -1,6 +1,6 @@
> >>>  # file browsing test
> >>>  # in order for this test to terminate, we need some files ..
> >>> -if(_filelistlen>1){stdout "at least one file in the list.";quit 1;}
> >>> +if(_filelistlen>1){stdout "at least one file in the list.";}
> >>>  if(_filelistlen<1){stdout "probable problems with file browser.";quit
> >>> 1;}
> >>>  while(_filelistlen>1){list "pop";}
> >>>  stdout _filelistlen;
> >>> Index: trunk/src/fim.cpp
> >>> ===================================================================
> >>> --- trunk/src/fim.cpp     (revision 1676)
> >>> +++ trunk/src/fim.cpp     (revision 1677)
> >>> @@ -263,7 +263,11 @@
> >>>      },
> >>>      {"slideshow",     required_argument, FIM_NULL, 0x7373,
> >>>   "interruptible slideshow mode", FIM_CNS_EX_NUM_STRING,
> >>> - "Interruptible slideshow mode; will wait for " FIM_CNS_EX_NUM_STRING "
> >>> of seconds (assigned to the " FIM_VID_WANT_SLEEPS " variable after each
> >>> loading; implemented by executing " FIM_CNS_SLIDESHOW_CMD " as a first
> >>> command."
> >>> + "Interruptible slideshow mode. "
> >>> + "Wait for " FIM_CNS_EX_NUM_STRING " of seconds (assigned to the "
> >>> FIM_VID_WANT_SLEEPS " variable) after each image. "
> >>> + "Implemented by executing " FIM_CNS_SLIDESHOW_CMD " as a first
> >>> command.
> >>> "
> >>> + "Can be interrupted by " FIM_KBD_COLON " or " FIM_KBD_ESC ". "
> >>> + "The other keys will execute accordingly to their function but will
> >>> not
> >>> interrupt the slideshow."
> >>>      },
> >>>      {"sanity-check",      no_argument,       FIM_NULL, 0x70617363,
> >>>   "only perform a sanity check", FIM_NULL, /* Was -S until r1001 */
> >>> Index: trunk/src/fim_interpreter.cpp
> >>> ===================================================================
> >>> --- trunk/src/fim_interpreter.cpp (revision 1676)
> >>> +++ trunk/src/fim_interpreter.cpp (revision 1677)
> >>> @@ -67,7 +67,7 @@
> >>>  #define FIM_EC(CMD,ARGS) /* fim::cc.execute(CMD,ARGS) */ "result"
> >>> /*Var((fim_int)1)*/ /* FIXME: shall return Arg or Var or Val */
> >>>  typedef nodeType * NodeType;
> >>>  #else /* FIM_INDEPENDENT_NAMESPACE */
> >>> -#define FIM_NO_BREAK fim::cc.catchLoopBreakingCommand(0)==0
> >>> +#define FIM_NO_BREAK ( abs(fim::cc.show_must_go_on()) == 1 && (
> >>> fim::cc.catchLoopBreakingCommand(0)==0) )
> >>>  #define FIM_OPRND(P,N) ((P)->opr.op[(N)])
> >>>  #define FIM_FACC(O)  (O)->fid.f
> >>>  #define FIM_SACC(O)  (O)->scon.s
> >>> Index: trunk/doc/fim.man.in
> >>> ===================================================================
> >>> --- trunk/doc/fim.man.in  (revision 1676)
> >>> +++ trunk/doc/fim.man.in  (revision 1677)
> >>> @@ -207,7 +207,7 @@
> >>>  Set scroll steps for internal variable _steps (default is 20%).
> >>>  .TP
> >>>  .B  --slideshow {number}
> >>> -Interruptible slideshow mode; will wait for {number} of seconds
> >>> (assigned
> >>> to the _want_sleep_seconds variable after each loading; implemented by
> >>> executing while(_fileindex<_filelistlen){sleep _want_sleep_seconds;
> >>> next;}
> >>> as a first command.
> >>> +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){sleep
> >>> _want_sleep_seconds; next;} 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.
> >>>  .TP
> >>>  .B  --sanity-check
> >>>  Perform a quick sanity check, just after the initialization, and
> >>> terminate.
> >>> Index: trunk/NEWS
> >>> ===================================================================
> >>> --- trunk/NEWS    (revision 1676)
> >>> +++ trunk/NEWS    (revision 1677)
> >>> @@ -3,6 +3,8 @@
> >>>
> >>>                  Version 0.6-trunk
> >>>
> >>> +# (r1677)
> >>> + * Slideshow function (e.g `fim --slideshow=5 *.jpg`) now more
> >>> responsive.
> >>>  # (r1662)
> >>>   * Arrow keys are now working in aalib (-o aa).
> >>>  # (r1649)
> >>
> >>
> >>
> >>
> >

Reply via email to