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