diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2020-01-30 23:38:36 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2020-01-30 23:41:19 +0530 |
commit | 6aed714347a34fa29d300b0cfa22adfa5f541ba0 (patch) | |
tree | b8bac0db9e4d171d888ae67a469323ee84f4d4f8 | |
parent | 46fc9c983c3c62e8c552e70ab9613380b868ae8f (diff) | |
download | nnn-6aed714347a34fa29d300b0cfa22adfa5f541ba0.tar.gz |
Run GUI app as plugin
-rw-r--r-- | nnn.1 | 8 | ||||
-rw-r--r-- | plugins/README.md | 8 | ||||
-rw-r--r-- | src/nnn.c | 13 |
3 files changed, 24 insertions, 5 deletions
@@ -262,7 +262,7 @@ used. A single combination of arguments is supported for SHELL and PAGER. NOTES: 1. To run a plugin directly, press \fI;\fR followed by the plugin key - 2. To skip directory refresh after running a plugin,prefix with \fB-\fR + 2. To skip directory refresh after running a plugin, prefix with \fB-\fR export NNN_PLUG='m:-mediainfo' .Ed @@ -283,6 +283,10 @@ used. A single combination of arguments is supported for SHELL and PAGER. export NNN_PLUG='y:-_sync*' + 6. To run a \fIGUI app as plugin\fR, add a \fB|\fR after \fB_\fR + + export NNN_PLUG='m:-_|mousepad $nnn' + EXAMPLES: ----------------------------------- + ------------------------------------------------- Key:Command | Description @@ -292,7 +296,7 @@ used. A single combination of arguments is supported for SHELL and PAGER. l:_git log | Show git log n:-_vi /home/user/Dropbox/dir/note* | Take quick notes in a synced file/dir of notes p:-_less -iR $nnn* | Page through hovered file in less - s:_smplayer -minigui $nnn* | Play hovered media file, even unfinished download + s:-_|smplayer -minigui $nnn | Play hovered media file, even unfinished download x:_chmod +x $nnn | Make the hovered file executable y:-_sync* | Flush cached writes ----------------------------------- + ------------------------------------------------- diff --git a/plugins/README.md b/plugins/README.md index 316b3ad..d167455 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -101,6 +101,12 @@ Now <kbd>;x</kbd> can be used to make a file executable, <kbd>;g</kbd> can be us Now there will be no prompt after <kbd>;s</kbd> and <kbd>;n</kbd>. +#### Run GUI app as plugin + +To run a GUI app as plugin, add a `|` after `_`. For example: + + export NNN_PLUG='m:-_|mousepad $nnn' + Notes: 1. Use single quotes for `$NNN_PLUG` so `$nnn` is not interpreted @@ -117,7 +123,7 @@ Notes: | `l:_git log` | Show git log | | `n:-_vi /home/user/Dropbox/dir/note*` | Take quick notes in a synced file/dir of notes | | `p:-_less -iR $nnn*` | Page through hovered file in less | -| `s:_smplayer -minigui $nnn*` | Play hovered media file, even unfinished download | +| `s:-_\|smplayer -minigui $nnn` | Play hovered media file, even unfinished download | | `x:_chmod +x $nnn` | Make the hovered file executable | | `y:-_sync*` | Flush cached writes | @@ -3843,12 +3843,21 @@ static bool run_cmd_as_plugin(const char *path, const char *file, char *newpath, if (!*file) return FALSE; + /* Check if GUI flags are to be used */ + if (*file == '|') { + flags = F_NOTRACE | F_NOWAIT; + ++file; + + if (!*file) + return FALSE; + } + xstrlcpy(newpath, file, PATH_MAX); len = strlen(newpath); if (len > 1 && newpath[len - 1] == '*') { - flags &= ~F_CONFIRM; /* GUI case */ - newpath[len - 1] = '\0'; /* Get rid of trailing nowait symbol */ + flags &= ~F_CONFIRM; /* Skip user confirmation */ + newpath[len - 1] = '\0'; /* Get rid of trailing no confirmation symbol */ --len; } |