nnn/plugins/README.md
2019-06-21 22:36:34 +05:30

3.6 KiB

Plugin (a-z) Lang Deps Description
boom sh SMPlayer Play random music from dir (modify PLAYER)
checksum sh md5sum, sha256sum Create and verify checksums
fzy-edit sh fzy Fuzzy find a file in directory subtree and edit in vim
fzy-open sh fzy Fuzzy find a file in directory subtree and open using xdg-open
getplugs sh wget Update plugins
hexview sh xxd View a file in hex in $PAGER
imgresize sh imgp Resize images in directory to screen resolution
imgur bash - Upload an image to imgur (from imgur-screenshot)
ipinfo sh curl, whois Fetch external IP address and whois information
kdeconnect sh kdeconnect-cli Send selected files to an Android device
mocplay sh moc Appends (and plays, see script) selection/dir/file in moc
ndiff sh vimdiff Diff for selection (limited to 2 for directories)
nmount sh pmount, udisks2 Toggle mount status of a device as normal user
nwal sh nitrogen Set the selected image as wallpaper using nitrogen
pastebin sh pastebinit Paste contents of (text) file to paste.ubuntu.com
pdfview sh pdftotext/mupdf-tools View PDF file in $PAGER
picker sh nnn Pick files and pipe the newline-separated list to another utility
pywal sh pywal Set selected image as wallpaper, change terminal color scheme
ringtone sh date, ffmpeg Create a variable bitrate mp3 ringtone from file
splitjoin sh split, cat Split file or join selection
sxiv sh sxiv Browse images in a dir in sxiv, set wallpaper, copy path (config)
transfer sh curl Upload file to transfer.sh
upgrade sh wget Upgrade to latest nnn version manually on Debian 9 Stretch
viuimg sh viu, less View an image or images in a directory

Installing plugins

Download the getplugs plugin and execute it anywhere to get all the plugins installed to ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins. You can run it again later to update the plugins. It backs up earlier plugins.

NOTE: getplugs also downloads the launcher nlaunch and tries to place it at /usr/local/bin/ using sudo. If it fails you have to place nlauch manually somewhere in your $PATH.

File access from plugins

Plugins can access:

  • all files in the directory (nnn switches to the dir where the plugin is to be run so the dir is $PWD for the plugin)
  • the current file under the cursor (the file name is passed as the argument to a plugin)
  • the current selection (by reading the file .selection in config dir, see the plugin ndiff)

Each script has a Description section which provides more details on what the script does, if applicable.

Usage

Use the pick plugin shortcut to visit the plugin directory and execute a plugin. Repeating the same shortcut cancels the operation and puts you back in the original directory.

Contributing plugins

Plugins are scripts and all scripting languages should work. However, POSIX-compliant shell scripts runnable in sh are preferred. If that's too rudimentary for your use case, use Python, Perl or Ruby. Please keep non-portable commands (like notify-send) commented so users from any other OS/DE aren't surprised.

The plugins should be executable. Please add an entry in the table above.