aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarstr\xf6m <john@ankarstrom.se>2021-06-01 11:59:33 +0200
committerJohn Ankarstr\xf6m <john@ankarstrom.se>2021-06-01 11:59:33 +0200
commit470c934fc77a978d4d1fa6171f8ca2c6556a6364 (patch)
tree124e523aad731097df7f2c753b23ba5ed514bacd
parent91ee56ec181769e9b3f4b3b7b8ddb0ab790a7890 (diff)
downloadnoice-470c934fc77a978d4d1fa6171f8ca2c6556a6364.tar.gz
Implement SEL_RUNWITH
-rw-r--r--config.h1
-rw-r--r--noice.c13
2 files changed, 14 insertions, 0 deletions
diff --git a/config.h b/config.h
index ed0b3f9..ad9d068 100644
--- a/config.h
+++ b/config.h
@@ -98,4 +98,5 @@ struct key bindings[] = {
/* Run command with argument */
{ 'e', SEL_RUNARG, "vi", "EDITOR" },
{ 'p', SEL_RUNARG, "less", "PAGER" },
+ { 'o', SEL_RUNWITH },
};
diff --git a/noice.c b/noice.c
index a097a55..4340ab7 100644
--- a/noice.c
+++ b/noice.c
@@ -72,6 +72,7 @@ enum action {
SEL_REDRAW,
SEL_RUN,
SEL_RUNARG,
+ SEL_RUNWITH,
};
struct key {
@@ -865,6 +866,18 @@ nochange:
spawn(run, dents[cur].name, path);
initcurses();
goto begin;
+ case SEL_RUNWITH:
+ /* Save current */
+ if (ndents > 0)
+ mkpath(path, dents[cur].name, oldpath, sizeof(oldpath));
+ printprompt("open with: ");
+ tmp = readln();
+ if (tmp == NULL)
+ goto begin;
+ exitcurses();
+ spawn(tmp, dents[cur].name, path);
+ initcurses();
+ goto begin;
}
/* Screensaver */
if (idletimeout != 0 && idle == idletimeout) {