nimmm
July 27, 2024 ยท View on GitHub
A terminal file manager for Linux
Table of Contents
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.