nnn.1 | 18 +++++++++--------- plugins/README.md | 60 +++++++++++++++++++++++++---------------------------- diff --git a/nnn.1 b/nnn.1 index 95e93a64afb87080867f8120a1468741caf01cd6..936eaee74f79a2ca1d097c42745fdce5dbed31a7 100644 --- a/nnn.1 +++ b/nnn.1 @@ -408,6 +408,15 @@ .Bd -literal export NNN_TRASH=1 .Ed .Pp +\fBNNN_SEL:\fR absolute path to custom selection file. +.Pp +\fBNNN_FIFO:\fR path of a named pipe to write current file path: +.Bd -literal + export NNN_FIFO='/tmp/nnn.fifo' + + NOTE: If the FIFO file doesn't exist it will be created, but it will never be removed. +.Ed +.Pp \fBNNN_LOCKER:\fR terminal locker program. .Bd -literal export NNN_LOCKER='bmon -p wlp1s0' @@ -419,15 +428,6 @@ .Bd -literal export NNN_MCLICK='^R' NOTE: Only the first character is considered if not a \fICtrl+key\fR combo. -.Ed -.Pp -\fBNNN_SEL:\fR absolute path to custom selection file. -.Pp -\fBNNN_FIFO:\fR path of a named pipe to write current file path: -.Bd -literal - export NNN_FIFO='/tmp/nnn.fifo' - - NOTE: If the FIFO file doesn't exist it will be created, but it will never be removed. .Ed .Pp \fBnnn:\fR this is a special variable set to the hovered entry before executing diff --git a/plugins/README.md b/plugins/README.md index 40386bb938e5094f5614fbff7d3fa5a8e2b86810..4e346b1a7f11fc3659440331bedb2398a96fe004 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -186,6 +186,16 @@ For convenience, we provided a helper script named `.nnn-plugin-helper` and a function named `nnn_cd` to ease this process. `nnn_cd` receives the path to change to as the first argument, and the context as an optional second argument. If a context is not provided, it is asked for explicitly. To skip this and choose the current context, set the `CUR_CTX` variable in `.nnn-plugin-helper` to `1`. Usage examples can be found in the Examples section below. +#### Get notified on file hover + +If `NNN_FIFO` is set, `nnn` will open it and write every hovered files. This can be used in plugins, e.g. to implement file previews. + +If a `NNN_FIFO` is set globally, each `nnn` instance will write to it, and a process reading from the pipe will get hovered path from every instance, interleaved. + +If you want to prevent this and be sure to have a private pipe to one `nnn` instance, you can unlink (remove) the FIFO file. If you had opened the FIFO before and you have read from it (so that `nnn` have it opened too), you can still read from it while you don't close it. But new `nnn` instances will recreate a new FIFO not linked to the previous one. + +Don't forget to fork in the background to avoid blocking `nnn`. + #### Examples There are many plugins provided by `nnn` which can be used as examples. Here are a few simple selected examples. @@ -220,39 +230,25 @@ printf "%s" "0c$dir" > "$NNN_PIPE" ``` -#### Get notified on file hover - -If `NNN_FIFO` is set, `nnn` will open it and write every hovered files. -This can be used in plugins, e.g. to implement file previews. - -If a `NNN_FIFO` is set globally, each `nnn` instance will write to it, and a process reading from the pipe will get hovered path from every instance, interleaved. - -If you want to prevent this and be sure to have a private pipe to one `nnn` instance, you can unlink (remove) the FIFO file. -If you opened the FIFO before and you have read from it (so that `nnn` have it opened too), you can still read from it while you don't close it. -But new `nnn` instances will recreate a new FIFO not linked to the previous one. - -Don't forget to fork in the background to avoid blocking `nnn`. - -Example (send every hovered file to X selection): - -```sh -#!/usr/bin/env sh -if [ -z "$NNN_FIFO" ] ; then - exit 1 -fi +- Send every hovered file to X selection + ```sh + #!/usr/bin/env sh + if [ -z "$NNN_FIFO" ] ; then + exit 1 + fi -while read FILE ; do - if [ -n "$NNN_FIFO" ] ; then - # If you want to remove the FIFO, - # don't do it before first read, - # nnn won't have it opened yet - rm "$NNN_FIFO" - NNN_FIFO= - fi - printf "%s" "$FILE" | xsel -done < "$NNN_FIFO" & -disown -``` + while read FILE ; do + if [ -n "$NNN_FIFO" ] ; then + # If you want to remove the FIFO, + # don't do it before first read, + # nnn won't have it opened yet + rm "$NNN_FIFO" + NNN_FIFO= + fi + printf "%s" "$FILE" | xsel + done < "$NNN_FIFO" & + disown + ``` ## Contributing plugins