Skip to content

joachimschmidt557/nimmm

Repository files navigation

nimmm

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 variable Setting
EDITOR file editor
PAGER file viewer
NIMMM_OPEN file opener
NIMMM_256 enable 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.

Key Default binding Description
q quit quit
! shell spawn shell in current directory
j down next entry
k up previous entry
h left go to the parent directory
l right navigate to directory / open file
g first first entry
G last last entry
~ home go to home directory
. toggle-hidden toggle display of hidden entries
/ search start searching
Esc end-search stop searching
e edit edit file in $EDITOR
p pager view file in $PAGER
r rename rename file/directory
Space select select / deselect current entry
a select-all select all entries in current directory
s select-none clear selection
X delete delete selected entries
P copy copy selected entries
V move move selected entries
f new-file create (touch) a new file
d new-dir create a new directory
t new-tab new tab
w close-tab close tab
Tab next-tab next tab
1..0 tab-x go 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

Dependency Use
cp, mv, rm, mkdir, touch nimmm 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 sh an interactive shell
$EDITOR or fallback vi an editor
$PAGER or fallback less a pager
$NIMMM_OPEN or fallback xdg-open a file opener

License

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