System Administration

Excellent System Tools: nnn – portable terminal file manager

Plugins

To make the file manager extensible, the developer offers a framework for plugins. A plugin can be any executable with which nnn can interact with.

At the time of writing, nnn offers 40 plugins offering a variety of additional functionality. Some of the plugins require external programs that aren’t pre-installed with a fresh Linux installation. Fortunately, they are all available from my distro’s repositories.

The plugins can be installed with the command:

$ curl -Ls https://raw.githubusercontent.com/jarun/nnn/master/plugins/getplugs | sh

You can define the plugin keybindings by setting the NNN_PLUG environment variable e.g.

export NNN_PLUG=’o:fzopen;p:mocplay;d:diffs;g:gutenberg;m:nmount;n:notes;v:imgviu;t:imgthumb’

I’ll just look at a couple of the potentially most useful (from my perspective).

nnn - plugin: lsix
Click for full size image

The first is imgthumb. To use this plugin you need lsix installed on your system. lsix shows thumbnails in a terminal.

To use lsix, you also need to invoke it from a sixel capable terminal. This is an issue, as the vast majority of terminal emulators aren’t sixel capable. You can either view a single image or a whole directory. Press ; which lists the plugin keys you’ve defined in the NNN_PLUG environment variable. Select a directory with images, and press t. You’ll view all the images in that directory without leaving the terminal. Of course, you don’t need a plugin to view image files. Just press the key l, and it opens files (including images).

I’m a huge music enthusiast. There’s a plugin called boom which plays random music from a directory. It supports mp3, FLAC, m4a, webm, and wma formats.

Next page: Page 5 – Memory Usage & Comparison with other console-based file managers

Pages in this article:
Page 1 – Introduction / Installation
Page 2 – In Operation
Page 3 – Disk usage analyzer
Page 4 – Plugins
Page 5 – Memory Usage & Comparison with other console-based file managers
Page 6 – Summary

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Bear
Bear
3 years ago

What optimizations does nnn use? The developer’s website seems unclear on this.

kodekat
kodekat
3 years ago
Reply to  Bear

You’ll find the details here: https://github.com/jarun/nnn/wiki/Performance

Bear
Bear
3 years ago
Reply to  kodekat

Thanks, that’s very interesting.