nimmm

July 27, 2024 ยท View on GitHub

Build GitHub

A terminal file manager for Linux

asciicast

Table of Contents

  1. Features
  2. Installation
    1. From source
    2. Nix
  3. Usage
    1. Configuration
    2. Default keymap
  4. ToDo
  5. External Tools

Features

  • Unlimited tab support
  • Colorizing with LS_COLORS
  • Custom keymaps (see below)
  • Incremental search

Installation

I'm not aware of any distros packaging nimmm apart from NixOS, so you will probably have to compile nimmm from source on non-NixOS distros.

From source

You will need the Nim development toolchain. Furthermore, termbox-devel or libtermbox-dev is required for the terminal user interface.

git clone https://github.com/joachimschmidt557/nimmm
cd nimmm
nimble build

Nix

nimmm is included in nixpkgs.

nix-env -i nimmm
# or, if you prefer nix flakes
nix profile install nixpkgs#nimmm

Usage

Configuration

Some functionality of nimmm is controlled via environment variables similar to other programs:

Environment variableSetting
EDITORfile editor
PAGERfile viewer
NIMMM_OPENfile opener
NIMMM_256enable 256 color mode

Other configuration such as keybindings are configured in $XDG_CONFIG_HOME/nimmm.conf where $XDG_CONFIG_HOME defaults to ~/.config if not set.

Default keymap

The default keymap is similar to that of less.

KeyDefault bindingDescription
qquitquit
!shellspawn shell in current directory
jdownnext entry
kupprevious entry
hleftgo to the parent directory
lrightnavigate to directory / open file
gfirstfirst entry
Glastlast entry
~homego to home directory
.toggle-hiddentoggle display of hidden entries
/searchstart searching
Escend-searchstop searching
eeditedit file in $EDITOR
ppagerview file in $PAGER
rrenamerename file/directory
Spaceselectselect / deselect current entry
aselect-allselect all entries in current directory
sselect-noneclear selection
Xdeletedelete selected entries
Pcopycopy selected entries
Vmovemove selected entries
fnew-filecreate (touch) a new file
dnew-dircreate a new directory
tnew-tabnew tab
wclose-tabclose tab
Tabnext-tabnext tab
1..0tab-xgo to tab 1..10

Keybindings are customized in the configuration file. For example, if you prefer more Emacs-oriented movement keybindings, you can do this:

[Keybindings]

h=none
j=none
k=none
l=none

n=down
p=up
f=right
b=left

ToDo

  • Help page

External programs

DependencyUse
cp, mv, rm, mkdir, touchnimmm delegates all operations on files and directories to these utilities to save all the error-handling and permission-checking work. These utilities should (hopefully) be on your UNIX system
$SHELL or fallback shan interactive shell
$EDITOR or fallback vian editor
$PAGER or fallback lessa pager
$NIMMM_OPEN or fallback xdg-opena file opener

License

nimmm is licensed under the GNU General Public License v3.0 only.