aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fbi.c8
-rw-r--r--fbi.man4
-rw-r--r--fbiconfig.c5
-rw-r--r--fbiconfig.h2
4 files changed, 19 insertions, 0 deletions
diff --git a/fbi.c b/fbi.c
index a2f7e34..d3eb97c 100644
--- a/fbi.c
+++ b/fbi.c
@@ -121,6 +121,7 @@ int read_ahead;
int editable;
int blend_msecs;
int perfmon = 0;
+int interactive = 0;
/* font handling */
static char *fontname = NULL;
@@ -788,6 +789,12 @@ svga_show(struct flist *f, struct flist *prev,
if (check_console_switch()) {
continue;
}
+
+ if (!interactive) {
+ sleep(timeout);
+ return -1;
+ }
+
FD_ZERO(&set);
FD_SET(0, &set);
fdmax = 1;
@@ -1383,6 +1390,7 @@ int main(int argc, char *argv[])
h_steps = GET_SCROLL();
timeout = GET_TIMEOUT();
pcd_res = GET_PCD_RES();
+ interactive = GET_INTERACTIVE();
fontname = cfg_get_str(O_FONT);
filelist = cfg_get_str(O_FILE_LIST);
diff --git a/fbi.man b/fbi.man
index 541d0c4..9a67ed8 100644
--- a/fbi.man
+++ b/fbi.man
@@ -126,6 +126,10 @@ is mapped to.
.BI "-m" "\ videomode" ", --mode" "\ videomode"
Name of the video mode to use (video mode must be listed in
\fI/etc/fb.modes\fP). Default is not to change the video mode.
+.TP
+.B --(no)interactive
+Allow interactively controlling the program from the keyboard. This requires
+that \fIstdin\fP is a TTY. Default is to allow interactive control.
\#
\#
.SH ENVIRONMENT
diff --git a/fbiconfig.c b/fbiconfig.c
index 6c2a4bc..524e3aa 100644
--- a/fbiconfig.c
+++ b/fbiconfig.c
@@ -172,6 +172,11 @@ struct cfg_cmdline fbi_cfg[] = {
.needsarg = 1,
.desc = "use drm output <arg> (try -info for a list)",
},{
+ .cmdline = "interactive",
+ .option = { O_INTERACTIVE },
+ .yesno = 1,
+ .desc = "allow keyboard interaction",
+ },{
.letter = 'm',
.cmdline = "mode",
.option = { O_VIDEO_MODE },
diff --git a/fbiconfig.h b/fbiconfig.h
index e98a246..a2178a3 100644
--- a/fbiconfig.h
+++ b/fbiconfig.h
@@ -30,6 +30,7 @@
#define O_SCROLL O_OPTIONS, "scroll"
#define O_TIMEOUT O_OPTIONS, "timeout"
#define O_PCD_RES O_OPTIONS, "photocd-res"
+#define O_INTERACTIVE O_OPTIONS, "interactive"
#define O_DEVICE O_OPTIONS, "device"
#define O_OUTPUT O_OPTIONS, "output"
@@ -64,6 +65,7 @@
#define GET_SCROLL() cfg_get_int(O_SCROLL, 50)
#define GET_TIMEOUT() cfg_get_int(O_TIMEOUT, 0)
#define GET_PCD_RES() cfg_get_int(O_PCD_RES, 3)
+#define GET_INTERACTIVE() cfg_get_bool(O_INTERACTIVE, 1)
#define GET_OPENGL() cfg_get_bool(O_OPENGL, 0)
#define GET_PAGEFLIP() cfg_get_bool(O_PAGEFLIP, 1)