| archivemount, fusermount(3)/umount (macOS) | optional | mount, unmount archives |
| sshfs, [rclone](https://rclone.org/), fusermount(3)/umount (macOS) | optional | mount, unmount remotes |
| trash-cli | optional | trash files (default action: rm) |
-| vlock (Linux), bashlock (macOS), lock(1) (BSD),<br>peaclock (Haiku) | optional | terminal locker (fallback: [cmatrix](https://github.com/abishekvashok/cmatrix)) |
+| vlock (Linux), bashlock (macOS), lock(1) (BSD),<br>peaclock (Haiku) | optional | terminal locker (else `$NNN_LOCKER`) |
| advcpmv (Linux) ([integration](https://github.com/jarun/nnn/wiki/Advanced-use-cases#cp-mv-progress)) | optional | copy, move progress |
| fortune | optional | random quotes in help screen |
| `$VISUAL` (else `$EDITOR`), `$PAGER`, `$SHELL` | optional | fallback vi, less, sh |
export NNN_TRASH=1
.Ed
.Pp
+\fBNNN_LOCKER:\fR terminal locker program.
+.Bd -literal
+ export NNN_LOCKER='bmon -p wlp1s0'
+ export NNN_LOCKER='cmatrix'
+.Ed
+.Pp
\fBNNN_MCLICK:\fR key emulated by a middle mouse click.
.Bd -literal
export NNN_MCLICK='^R'
#define UTIL_UNZIP 3
#define UTIL_TAR 4
#define UTIL_LOCKER 5
-#define UTIL_CMATRIX 6
-#define UTIL_LAUNCH 7
-#define UTIL_SH_EXEC 8
+#define UTIL_LAUNCH 6
+#define UTIL_SH_EXEC 7
+#define UTIL_BASH 8
#define UTIL_ARCHIVEMOUNT 9
#define UTIL_SSHFS 10
#define UTIL_RCLONE 11
#define UTIL_FZY 16
#define UTIL_NTFY 17
#define UTIL_CBCP 18
-#define UTIL_BASH 19
-#define UTIL_NMV 20
+#define UTIL_NMV 19
/* Utilities to open files, run actions */
static char * const utils[] = {
#else
"vlock",
#endif
- "cmatrix",
"launch",
"sh -c",
+ "bash",
"archivemount",
"sshfs",
"rclone",
"fzy",
".ntfy",
".cbcp",
- "bash",
".nmv",
};
static void lock_terminal(void)
{
- char *tmp = utils[UTIL_LOCKER];
-
- if (!getutil(tmp))
- tmp = utils[UTIL_CMATRIX];
-
- spawn(tmp, NULL, NULL, NULL, F_NORMAL);
+ spawn(xgetenv("NNN_LOCKER", utils[UTIL_LOCKER]), NULL, NULL, NULL, F_CLI);
}
static void printkv(kv *kvarr, FILE *fp, uchar max)