mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Rename project to nnn (Noice is Not Noice)
This commit is contained in:
parent
c42790aa18
commit
8775a52779
22
Makefile
22
Makefile
|
@ -8,10 +8,10 @@ MANPREFIX = $(PREFIX)/man
|
||||||
CFLAGS = -O3 -march=native
|
CFLAGS = -O3 -march=native
|
||||||
LDLIBS = -lcurses
|
LDLIBS = -lcurses
|
||||||
|
|
||||||
DISTFILES = noice.c strlcat.c strlcpy.c util.h config.def.h\
|
DISTFILES = nnn.c strlcat.c strlcpy.c util.h config.def.h\
|
||||||
noice.1 Makefile README LICENSE
|
nnn.1 Makefile README.md LICENSE
|
||||||
OBJ = noice.o strlcat.o strlcpy.o
|
OBJ = nnn.o strlcat.o strlcpy.o
|
||||||
BIN = noice
|
BIN = nnn
|
||||||
|
|
||||||
all: $(BIN)
|
all: $(BIN)
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ $(BIN): $(OBJ)
|
||||||
$(CC) $(CFLAGS) -o $@ $(OBJ) $(LDFLAGS) $(LDLIBS)
|
$(CC) $(CFLAGS) -o $@ $(OBJ) $(LDFLAGS) $(LDLIBS)
|
||||||
strip $(BIN)
|
strip $(BIN)
|
||||||
|
|
||||||
noice.o: util.h config.h
|
nnn.o: util.h config.h
|
||||||
strlcat.o: util.h
|
strlcat.o: util.h
|
||||||
strlcpy.o: util.h
|
strlcpy.o: util.h
|
||||||
|
|
||||||
|
@ -37,11 +37,11 @@ uninstall:
|
||||||
rm -f $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1
|
rm -f $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1
|
||||||
|
|
||||||
dist:
|
dist:
|
||||||
mkdir -p noice-$(VERSION)
|
mkdir -p nnn-$(VERSION)
|
||||||
cp $(DISTFILES) noice-$(VERSION)
|
cp $(DISTFILES) nnn-$(VERSION)
|
||||||
tar -cf noice-$(VERSION).tar noice-$(VERSION)
|
tar -cf nnn-$(VERSION).tar nnn-$(VERSION)
|
||||||
gzip noice-$(VERSION).tar
|
gzip nnn-$(VERSION).tar
|
||||||
rm -rf noice-$(VERSION)
|
rm -rf nnn-$(VERSION)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f config.h $(BIN) $(OBJ) noice-$(VERSION).tar.gz
|
rm -f config.h $(BIN) $(OBJ) nnn-$(VERSION).tar.gz
|
||||||
|
|
56
README.md
56
README.md
|
@ -1,13 +1,13 @@
|
||||||
## noice
|
## nnn
|
||||||
|
|
||||||
A fork of the [noice](http://git.2f30.org/noice/) file browser to make it more friendly towards major distros (which `suck more` by some standards).
|
Noice is Not Noice, a noicer fork...
|
||||||
|
|
||||||
### Table of Contents
|
### Table of Contents
|
||||||
|
|
||||||
- [Introduction](#introduction)
|
- [Introduction](#introduction)
|
||||||
- [Why fork?](#why-fork)
|
- [Why fork?](#why-fork)
|
||||||
- [Default features](#default-features)
|
- [Original features](#original-features)
|
||||||
- [Fork toppings](#fork-toppings)
|
- [nnn toppings](#nnn-toppings)
|
||||||
- [Installation](#installation)
|
- [Installation](#installation)
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
- [Keyboard shortcuts](#keyboard-shortcuts)
|
- [Keyboard shortcuts](#keyboard-shortcuts)
|
||||||
|
@ -18,19 +18,19 @@ A fork of the [noice](http://git.2f30.org/noice/) file browser to make it more f
|
||||||
|
|
||||||
### Introduction
|
### Introduction
|
||||||
|
|
||||||
noice is a blazing-fast terminal file browser with easy keyboard shortcuts for navigation, opening files and running tasks. noice is developed with terminal based systems in mind. However, the incredible user-friendliness and speed make it a perfect utility on modern distros. Navigate to `/usr/bin` from your regular file browser and noice to feel the difference.
|
nnn is a fork of [noice](http://git.2f30.org/noice/), a blazing-fast terminal file browser with easy keyboard shortcuts for navigation, opening files and running tasks. It is developed with terminal based systems in mind. However, the incredible user-friendliness and speed make it a perfect utility on modern distros.
|
||||||
|
|
||||||
The only issue with noice is hard-coded file association. There is no config file (better performance and simpler to maintain) and you have to modify the source to change associations (see [how to change file associations](#change-file-associations)). This fork solves the problem by adding the flexibility of using the default desktop opener at runtime. There are several other improvements too (see [fork-toppings](#fork-toppings)).
|
The only issue with noice is hard-coded file associations. There is no config file (better performance and simpler to maintain) and one has to modify the source to change associations (see [how to change file associations](#change-file-associations)). nnn solves the problem by adding the flexibility of using the default desktop opener at runtime. There are several other improvements too (see [fork-toppings](#fork-toppings)).
|
||||||
|
|
||||||
Have fun with it! PRs are welcome. Check out [#1](https://github.com/jarun/noice/issues/1).
|
Have fun with it! PRs are welcome. Check out [#1](https://github.com/jarun/nnn/issues/1).
|
||||||
|
|
||||||
### Why fork?
|
### Why fork?
|
||||||
|
|
||||||
I chose to fork noice because:
|
I chose to fork because:
|
||||||
- one can argue my approach deviates from the goal of the original project - keep the utility `suckless`. In my opinion evolution is the taste of time.
|
- one can argue my approach deviates from the goal of the original project - keep the utility `suckless`. In my opinion evolution is the taste of time.
|
||||||
- I would like to have a bit of control on what features are added in the name of desktop integration. A feature-bloat is the last thing in my mind.
|
- I would like to have a bit of control on what features are added in the name of desktop integration. A feature-bloat is the last thing in my mind.
|
||||||
|
|
||||||
### Default features
|
### Original features
|
||||||
|
|
||||||
- Super-easy navigation
|
- Super-easy navigation
|
||||||
- Open files with default-associated programs
|
- Open files with default-associated programs
|
||||||
|
@ -42,7 +42,7 @@ I chose to fork noice because:
|
||||||
- Run `top`
|
- Run `top`
|
||||||
- Open a file with `vim` or `less`
|
- Open a file with `vim` or `less`
|
||||||
|
|
||||||
### Fork toppings
|
### nnn toppings
|
||||||
|
|
||||||
- Behaviour and navigation
|
- Behaviour and navigation
|
||||||
- Detail view (default: disabled) with:
|
- Detail view (default: disabled) with:
|
||||||
|
@ -55,20 +55,20 @@ I chose to fork noice because:
|
||||||
- Case-insensitive alphabetic content listing instead of upper case first
|
- Case-insensitive alphabetic content listing instead of upper case first
|
||||||
- Roll over at the first and last entries of a directory (with Up/Down keys)
|
- Roll over at the first and last entries of a directory (with Up/Down keys)
|
||||||
- Sort entries by file size (largest to smallest)
|
- Sort entries by file size (largest to smallest)
|
||||||
- Shortcut to invoke file name copier (set using environment variable `NOICE_COPIER`)
|
- Shortcut to invoke file name copier (set using environment variable `NNN_COPIER`)
|
||||||
- File associations
|
- File associations
|
||||||
- Environment variable `NOICE_OPENER` to override all associations and open all files with your desktop environment's default file opener. Examples:
|
- Environment variable `NNN_OPENER` to override all associations and open all files with your desktop environment's default file opener. Examples:
|
||||||
|
|
||||||
export NOICE_OPENER=xdg-open
|
export NNN_OPENER=xdg-open
|
||||||
export NOICE_OPENER=gnome-open
|
export NNN_OPENER=gnome-open
|
||||||
export NOICE_OPENER=gvfs-open
|
export NNN_OPENER=gvfs-open
|
||||||
- Selective file associations (ignored if `NOICE_OPENER` is set):
|
- Selective file associations (ignored if `NNN_OPENER` is set):
|
||||||
- Associate plain text files with vim (using `file` command)
|
- Associate plain text files with vim (using `file` command)
|
||||||
- Remove video file associations (to each his own favourite video player)
|
- Remove video file associations (to each his own favourite video player)
|
||||||
- Associate common audio mimes with lightweight [fmedia](http://fmedia.firmdev.com/)
|
- Associate common audio mimes with lightweight [fmedia](http://fmedia.firmdev.com/)
|
||||||
- Associate PDF files with [zathura](https://pwmt.org/projects/zathura/)
|
- Associate PDF files with [zathura](https://pwmt.org/projects/zathura/)
|
||||||
- Removed `less` as default file opener
|
- Removed `less` as default file opener
|
||||||
- Use environment variable `NOICE_FALLBACK_OPENER` to open other non-associated files
|
- Use environment variable `NNN_FALLBACK_OPENER` to open other non-associated files
|
||||||
- Compilation
|
- Compilation
|
||||||
- Use `-O3` for compilation, fixed warnings
|
- Use `-O3` for compilation, fixed warnings
|
||||||
- Added compilation flag `-march=native`
|
- Added compilation flag `-march=native`
|
||||||
|
@ -77,9 +77,9 @@ I chose to fork noice because:
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
noice needs a curses implementation and standard libc.
|
nnn needs a curses implementation and standard libc.
|
||||||
|
|
||||||
Download the [latest master](https://github.com/jarun/noice/archive/master.zip) or clone this repository. Compile and install:
|
Download the [latest master](https://github.com/jarun/nnn/archive/master.zip) or clone this repository. Compile and install:
|
||||||
|
|
||||||
$ make
|
$ make
|
||||||
$ sudo make install
|
$ sudo make install
|
||||||
|
@ -87,9 +87,9 @@ No plans of packaging at the time.
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
Start noice (default: current directory):
|
Start nnn (default: current directory):
|
||||||
|
|
||||||
$ noice [path_to_dir]
|
$ nnn [path_to_dir]
|
||||||
`>` indicates the currently selected entry.
|
`>` indicates the currently selected entry.
|
||||||
|
|
||||||
### Keyboard shortcuts
|
### Keyboard shortcuts
|
||||||
|
@ -117,7 +117,7 @@ Start noice (default: current directory):
|
||||||
| `z` | run `top` |
|
| `z` | run `top` |
|
||||||
| `Ctrl-k` | invoke file name copier |
|
| `Ctrl-k` | invoke file name copier |
|
||||||
| `Ctrl-l` | redraw window |
|
| `Ctrl-l` | redraw window |
|
||||||
| `q` | quit noice |
|
| `q` | quit |
|
||||||
|
|
||||||
### File type abbreviations
|
### File type abbreviations
|
||||||
|
|
||||||
|
@ -135,11 +135,11 @@ The following abbreviations are used in the detail view:
|
||||||
|
|
||||||
### Help
|
### Help
|
||||||
|
|
||||||
$ man noice
|
$ man nnn
|
||||||
|
|
||||||
### Copy current file path to clipboard
|
### Copy current file path to clipboard
|
||||||
|
|
||||||
noice can pipe the absolute path of the current file to a copier script. For example, you can use `xsel` on Linux or `pbcopy` on OS X.
|
nnn can pipe the absolute path of the current file to a copier script. For example, you can use `xsel` on Linux or `pbcopy` on OS X.
|
||||||
|
|
||||||
Sample Linux copier script:
|
Sample Linux copier script:
|
||||||
|
|
||||||
|
@ -147,12 +147,12 @@ Sample Linux copier script:
|
||||||
|
|
||||||
echo -n $1 | xsel --clipboard --input
|
echo -n $1 | xsel --clipboard --input
|
||||||
|
|
||||||
export `NOICE_OPENER`:
|
export `NNN_OPENER`:
|
||||||
|
|
||||||
export NOICE_COPIER="/home/vaio/copier.sh"
|
export NNN_COPIER="/home/vaio/copier.sh"
|
||||||
|
|
||||||
Start noice and use `Ctrl-k` to copy the absolute path (from `/`) of the file under the cursor to clipboard.
|
Start nnn and use `Ctrl-k` to copy the absolute path (from `/`) of the file under the cursor to clipboard.
|
||||||
|
|
||||||
### Change file associations
|
### Change file associations
|
||||||
|
|
||||||
If you want to set custom applications for certain mime types, or change the ones set already (e.g. vim, fmedia, zathura), modify the `assocs` structure in [config.def.h](https://github.com/jarun/noice/blob/master/config.def.h) (it's easy). Then re-compile and install.
|
If you want to set custom applications for certain mime types, or change the ones set already (e.g. vim, fmedia, zathura), modify the `assocs` structure in [config.def.h](https://github.com/jarun/nnn/blob/master/config.def.h) (it's easy). Then re-compile and install.
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
.Dd August 21, 2016
|
.Dd August 21, 2016
|
||||||
.Dt NOICE 1
|
.Dt NNN 1
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm noice
|
.Nm nnn
|
||||||
.Nd small file browser
|
.Nd small file browser
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm noice
|
.Nm nnn
|
||||||
.Op Ar dir
|
.Op Ar dir
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
.Nm
|
.Nm
|
||||||
|
@ -105,24 +105,30 @@ files.
|
||||||
The SHELL, EDITOR and PAGER environment variables take precedence
|
The SHELL, EDITOR and PAGER environment variables take precedence
|
||||||
when dealing with the !, e and p commands respectively.
|
when dealing with the !, e and p commands respectively.
|
||||||
.Pp
|
.Pp
|
||||||
\fBNOICE_OPENER:\fR set to your desktop environment's default
|
\fBNNN_OPENER:\fR set to your desktop environment's default
|
||||||
mime opener to override all custom mime associations.
|
mime opener to override all custom mime associations.
|
||||||
.br
|
.br
|
||||||
Examples: xdg-open, gnome-open, gvfs-open.
|
Examples: xdg-open, gnome-open, gvfs-open.
|
||||||
.Pp
|
.Pp
|
||||||
\fBNOICE_FALLBACK_OPENER:\fR set to your desktop environment's default
|
\fBNNN_FALLBACK_OPENER:\fR set to your desktop environment's default
|
||||||
mime opener to use as a fallback when no association is set for a file
|
mime opener to use as a fallback when no association is set for a file
|
||||||
type. Custom associations are listed in the EXAMPLES section below.
|
type. Custom associations are listed in the EXAMPLES section below.
|
||||||
|
.Pp
|
||||||
|
\fBNNN_COPIER:\fR set to a clipboard copier script. For example, on Linux:
|
||||||
|
.Bd -literal
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo -n $1 | xsel --clipboard --input
|
||||||
.Sh EXAMPLES
|
.Sh EXAMPLES
|
||||||
The following example shows one possible configuration for
|
The following example shows one possible configuration for
|
||||||
file associations which is also the default if environment
|
file associations which is also the default if environment
|
||||||
variable NOICE_OPENER is not set:
|
variable NNN_OPENER is not set:
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
struct assoc assocs[] = {
|
struct assoc assocs[] = {
|
||||||
{ "\\.(c|cpp|h|txt|log)$", "vim" },
|
{ "\\.(c|cpp|h|txt|log)$", "vim" },
|
||||||
{ "\\.pdf$", "zathura" },
|
{ "\\.pdf$", "zathura" },
|
||||||
{ "\\.sh$", "sh" },
|
{ "\\.sh$", "sh" },
|
||||||
};
|
};
|
||||||
Plain text files are opened with vim.
|
Plain text files are opened with vim.
|
||||||
.br
|
.br
|
||||||
Any other file types are opened with the 'xdg-open' command.
|
Any other file types are opened with the 'xdg-open' command.
|
||||||
|
@ -135,4 +141,4 @@ If you are using urxvt you might have to set backspacekey to DEC.
|
||||||
.Pp
|
.Pp
|
||||||
** The current non-mainstream version is a modified one patched by Arun Prakash Jana <engineerarun@gmail.com>.
|
** The current non-mainstream version is a modified one patched by Arun Prakash Jana <engineerarun@gmail.com>.
|
||||||
.br
|
.br
|
||||||
More details: https://github.com/jarun/noice
|
More details: https://github.com/jarun/nnn
|
|
@ -897,7 +897,7 @@ nochange:
|
||||||
spawn(copier, abspath, NULL);
|
spawn(copier, abspath, NULL);
|
||||||
printmsg(abspath);
|
printmsg(abspath);
|
||||||
} else if (!copier)
|
} else if (!copier)
|
||||||
printmsg("NOICE_COPIER is not set");
|
printmsg("NNN_COPIER is not set");
|
||||||
goto nochange;
|
goto nochange;
|
||||||
case SEL_RUN:
|
case SEL_RUN:
|
||||||
run = xgetenv(env, run);
|
run = xgetenv(env, run);
|
||||||
|
@ -960,13 +960,13 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the default desktop mime opener, if set */
|
/* Get the default desktop mime opener, if set */
|
||||||
opener = getenv("NOICE_OPENER");
|
opener = getenv("NNN_OPENER");
|
||||||
|
|
||||||
/* Get the fallback desktop mime opener, if set */
|
/* Get the fallback desktop mime opener, if set */
|
||||||
fallback_opener = getenv("NOICE_FALLBACK_OPENER");
|
fallback_opener = getenv("NNN_FALLBACK_OPENER");
|
||||||
|
|
||||||
/* Get the default copier, if set */
|
/* Get the default copier, if set */
|
||||||
copier = getenv("NOICE_COPIER");
|
copier = getenv("NNN_COPIER");
|
||||||
|
|
||||||
signal(SIGINT, SIG_IGN);
|
signal(SIGINT, SIG_IGN);
|
||||||
|
|
Loading…
Reference in a new issue