aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/nnn.c15
-rw-r--r--src/nnn.h6
2 files changed, 17 insertions, 4 deletions
diff --git a/src/nnn.c b/src/nnn.c
index 53fad5c..1a07dce 100644
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -385,6 +385,7 @@ static char g_pipepath[TMP_LEN_MAX] __attribute__ ((aligned));
#define STATE_INTERRUPTED 0x2
#define STATE_RANGESEL 0x4
#define STATE_MOVE_OP 0x8
+#define STATE_AUTONEXT 0x10
static uchar g_states;
@@ -3759,9 +3760,9 @@ static void show_help(const char *path)
"a1-4 Context 1-4%-8c(B)Tab Cycle context\n"
"c/ Filter%-17c^N Nav-as-you-type toggle\n"
"aEsc Exit prompt%-12c^L Redraw/clear prompt\n"
- "c? Help, conf%-13c^G QuitCD\n"
- "cq Quit context%-12cQ Quit with err\n"
- "b^Q Quit\n"
+ "c? Help, conf%-14c+ Toggle proceed on open\n"
+ "cq Quit context%-11c^G QuitCD\n"
+ "b^Q Quit%-20cQ Quit with err\n"
"1FILES\n"
"9o ^O Open with...%-12cn Create new/link\n"
"9f ^F File details%-12cd Detail view toggle\n"
@@ -5017,6 +5018,11 @@ nochange:
/* Invoke desktop opener as last resort */
spawn(opener, newpath, NULL, NULL, opener_flags);
+
+ /* Move cursor to the next entry if not the last entry */
+ if ((g_states & STATE_AUTONEXT) && cur != ndents - 1)
+ move_cursor((cur + 1) % ndents, 0);
+
continue;
}
default:
@@ -5770,6 +5776,9 @@ nochange:
statusbar(path);
goto nochange;
+ case SEL_AUTONEXT:
+ g_states ^= STATE_AUTONEXT;
+ goto nochange;
case SEL_QUITCTX: // fallthrough
case SEL_QUITCD: // fallthrough
case SEL_QUIT:
diff --git a/src/nnn.h b/src/nnn.h
index 665c528..efa6ae6 100644
--- a/src/nnn.h
+++ b/src/nnn.h
@@ -90,6 +90,7 @@ enum action {
SEL_RUNCMD,
SEL_LOCK,
SEL_SESSIONS,
+ SEL_AUTONEXT,
SEL_QUITCTX,
SEL_QUITCD,
SEL_QUIT,
@@ -229,6 +230,10 @@ static struct key bindings[] = {
{ ']', SEL_RUNCMD },
/* Lock screen */
{ '0', SEL_LOCK },
+ /* Manage sessions */
+ { 's', SEL_SESSIONS },
+ /* Quit a context */
+ { '+', SEL_AUTONEXT },
/* Quit a context */
{ 'q', SEL_QUITCTX },
/* Change dir on quit */
@@ -238,5 +243,4 @@ static struct key bindings[] = {
/* Quit with an error code */
{ 'Q', SEL_QUITFAIL },
{ KEY_MOUSE, SEL_CLICK },
- { 's', SEL_SESSIONS },
};