aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/README.md')
-rw-r--r--plugins/README.md36
1 files changed, 35 insertions, 1 deletions
diff --git a/plugins/README.md b/plugins/README.md
index e8f8958..40386bb 100644
--- a/plugins/README.md
+++ b/plugins/README.md
@@ -190,7 +190,7 @@ Usage examples can be found in the Examples section below.
There are many plugins provided by `nnn` which can be used as examples. Here are a few simple selected examples.
- Show the git log of changes to the particular file along with the code for a quick and easy review.
- ```sh
+ ```sh
#!/usr/bin/env sh
git log -p -- "$1"
```
@@ -220,6 +220,40 @@ There are many plugins provided by `nnn` which can be used as examples. Here are
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
+
+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
1. Add informative sections like _Description_, _Notes_, _Dependencies_, _Shell_, _Author_ etc. in the plugin.