2017-03-29 05:33:22 +00:00
## noice
2016-08-20 16:27:14 +00:00
2017-03-29 05:33:22 +00:00
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).
2016-08-20 16:27:14 +00:00
2017-03-29 05:33:22 +00:00
### Table of Contents
2016-08-20 16:27:14 +00:00
2017-03-29 05:33:22 +00:00
- [Introduction ](#introduction )
- [Why fork? ](#why-fork )
- [Default features ](#default-features )
- [Fork toppings ](#fork-toppings )
- [Installation ](#installation )
- [Usage ](#usage )
- [Keyboard shortcuts ](#keyboard-shortcuts )
2017-03-29 20:37:39 +00:00
- [File type abbreviations ](#file-type-abbreviations )
2017-03-29 05:33:22 +00:00
- [Help ](#help )
- [Change file associations ](#change-file-associations )
2016-08-21 12:07:18 +00:00
2017-03-29 05:33:22 +00:00
### Introduction
2017-03-29 14:12:23 +00:00
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.
2017-03-29 05:33:22 +00:00
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 )).
Have fun with it! PRs are welcome. Check out [#1 ](https://github.com/jarun/noice/issues/1 ).
### Why fork?
I chose to fork noice 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.
- 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
- Super-easy navigation
2016-08-21 12:07:18 +00:00
- Open files with default-associated programs
- Jump to home directory
2016-08-21 16:10:34 +00:00
- Filter contents in current directory
2016-08-21 12:07:18 +00:00
- Show/hide hidden files
2017-03-29 20:21:52 +00:00
- Sort entries by time modified (newest to oldest)
2016-08-21 12:07:18 +00:00
- Spawn a shell in current directory
- Run `top`
- Open a file with `vim` or `less`
2017-03-29 05:33:22 +00:00
### Fork toppings
2016-08-20 16:27:14 +00:00
2017-03-29 10:29:56 +00:00
- Behaviour and navigation
2017-03-29 21:15:46 +00:00
- Detail view with file type, size and number of entries in dir (default: disabled)
2017-03-29 20:21:52 +00:00
- 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)
- Sort entries by file size (largest to smallest)
2016-08-20 16:27:14 +00:00
- File associations
2017-03-29 05:33:22 +00:00
- Environment variable `NOICE_OPENER` to override all associations and open all files with your desktop environments default file opener. Examples:
2016-08-21 08:28:53 +00:00
2017-03-29 05:33:22 +00:00
export NOICE_OPENER=xdg-open
export NOICE_OPENER=gnome-open
export NOICE_OPENER=gvfs-open
- Selective file associations (ignored if `NOICE_OPENER` is set):
2016-08-21 04:41:19 +00:00
- Associate plain text files with vim (using `file` command)
2016-08-21 07:28:38 +00:00
- Remove video file associations (to each his own favourite video player)
2017-03-29 05:33:22 +00:00
- Associate common audio mimes with lightweight [fmedia ](http://fmedia.firmdev.com/ )
- Associate PDF files with [zathura ](https://pwmt.org/projects/zathura/ )
- Removed `less` as default file opener
2016-08-21 10:32:03 +00:00
- Use environment variable `NOICE_FALLBACK_OPENER` to open other non-associated files
2016-08-20 16:27:14 +00:00
- Compilation
2017-03-29 05:33:22 +00:00
- Use `-O3` for compilation, fixed warnings
- Added compilation flag `-march=native`
- Remove generated config.h on `make clean`
2017-03-29 20:59:28 +00:00
- strip the final binary
2017-03-29 05:33:22 +00:00
### Installation
noice needs a curses implementation and standard libc.
2016-08-20 16:27:14 +00:00
2017-03-29 05:33:22 +00:00
Download the [latest master ](https://github.com/jarun/noice/archive/master.zip ) or clone this repository. Compile and install:
2016-08-20 16:27:14 +00:00
$ make
$ sudo make install
2017-03-29 05:33:22 +00:00
No plans of packaging at the time.
2016-08-20 16:27:14 +00:00
2017-03-29 05:33:22 +00:00
### Usage
2016-08-20 16:27:14 +00:00
2017-03-29 05:33:22 +00:00
Start noice (default: current directory):
2016-08-21 10:32:03 +00:00
2017-03-29 05:33:22 +00:00
$ noice [path_to_dir]
2017-03-29 14:38:34 +00:00
`>` indicates the currently selected entry.
2016-08-21 10:32:03 +00:00
2017-03-29 05:33:22 +00:00
### Keyboard shortcuts
2016-08-21 10:32:03 +00:00
2017-03-29 05:33:22 +00:00
| Key | Function |
| --- | --- |
| `Down` , `j` , `Ctrl-n` | next entry |
| `Up` , `k` , `Ctrl-p` | previous entry |
| `>` , `Enter` , `l` | open file or enter dir |
| `<` , `Backspace` , `h` | parent dir |
| `Page Down` , `Ctrl-d` | one page down |
| `Page Up` , `Ctrl-u` | one page up |
| `Home` , `Ctrl-a` , `^` | jump to first dir entry |
| `End` , `Ctrl-e` , `$` | jump to last dir entry |
| `~` | jump to home dir |
| `/` , `&` | filter dir contents |
2017-03-29 14:38:34 +00:00
| `c` | show change dir prompt |
2017-03-29 20:55:51 +00:00
| `d` | toggle detail view |
2017-03-29 05:33:22 +00:00
| `.` | toggle hide dot files |
2017-03-29 20:21:52 +00:00
| `s` | toggle sort by file size |
2017-03-29 05:33:22 +00:00
| `t` | toggle sort by modified time |
| `!` | spawn a shell in current dir |
2017-03-29 14:38:34 +00:00
| `e` | edit entry in `vim` |
| `p` | open entry with `less` pager |
2017-03-29 05:33:22 +00:00
| `z` | run `top` |
| `Ctrl-l` | redraw window |
| `q` | quit noice |
2017-03-29 20:37:39 +00:00
### File type abbreviations
The following abbreviations are used in the detail view:
| Symbol | File Type |
| --- | --- |
| B | Block Device |
| C | Character Device |
| D | Directory |
| E | Executable |
| F | Fifo |
| L | Symbolic Link |
| R | Regular File |
| S | Socket |
2017-03-29 05:33:22 +00:00
### Help
$ man noice
### 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.