Update NNN_NOWAIT changes

This commit is contained in:
Arun Prakash Jana 2017-09-19 19:55:02 +05:30
parent df4b557ca1
commit 55643a5fcc
No known key found for this signature in database
GPG key ID: A75979F35C080412
3 changed files with 20 additions and 17 deletions

View file

@ -45,6 +45,8 @@ Noice is Not Noice, a noicer fork...
- [file copy, move, delete](#file-copy-move-delete) - [file copy, move, delete](#file-copy-move-delete)
- [boost chdir prompt](#boost-chdir-prompt) - [boost chdir prompt](#boost-chdir-prompt)
- [set idle timeout](#set-idle-timeout) - [set idle timeout](#set-idle-timeout)
- [Troubleshooting](#troubleshooting)
- [nnn blocks on opening files](#nnn-blocks-on-opening-files)
- [Why fork?](#why-fork) - [Why fork?](#why-fork)
- [Mentions](#mentions) - [Mentions](#mentions)
- [Developers](#developers) - [Developers](#developers)
@ -333,7 +335,7 @@ Start `nnn` and use <kbd>^K</kbd> to copy the absolute path (from `/`) of the fi
The default color for directories is blue. Option `-c` accepts color codes from 0 to 7 to use a different color: The default color for directories is blue. Option `-c` accepts color codes from 0 to 7 to use a different color:
0-black, 1-red, 2-green, 3-yellow, 4-blue, 5-magenta, 6-cyan, 7-white 0-black, 1-red, 2-green, 3-yellow, 4-blue, 5-magenta, 6-cyan, 7-white
Any other value disables colored directories. Any other value disables colored directories.
@ -353,11 +355,13 @@ Any other value disables colored directories.
The terminal screensaver is disabled by default. To set the wait time in seconds, use environment variable `NNN_IDLE_TIMEOUT`. The terminal screensaver is disabled by default. To set the wait time in seconds, use environment variable `NNN_IDLE_TIMEOUT`.
#### open file in new process and make the nnn not block ### Troubleshooting
The desktop file opener should take care of opening files in new processes without causing `nnn` to block. #### nnn blocks on opening files
If `nnn` does block/freeze when a file is open, then set the environment variable `NNN_NOWAIT` to any
non-zero value. Ideally nnn should not block. Unfortunately, sometimes even the same desktop opener behaves differently on different Linux desktop environments. If `nnn` does block when a file is open, set the environment variable `NNN_NOWAIT` to any non-zero value. For example,
export NNN_NOWAIT=1
### Why fork? ### Why fork?

19
nnn.1
View file

@ -181,19 +181,19 @@ when dealing with the !, e and p commands respectively.
\fBNNN_BMS:\fR bookmark string as \fIkey:location\fR pairs (max 10) separated by \fBNNN_BMS:\fR bookmark string as \fIkey:location\fR pairs (max 10) separated by
\fI;\fR: \fI;\fR:
.Bd -literal .Bd -literal
export NNN_BMS='doc:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/' export NNN_BMS='doc:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/'
.Ed .Ed
.Pp .Pp
\fBNNN_USE_EDITOR:\fR use EDITOR (preferably CLI, fallback vi) to handle text \fBNNN_USE_EDITOR:\fR use EDITOR (preferably CLI, fallback vi) to handle text
files. files.
.Bd -literal .Bd -literal
export NNN_USE_EDITOR=1 export NNN_USE_EDITOR=1
.Ed .Ed
.Pp .Pp
\fBNNN_DE_FILE_MANAGER:\fR set to a desktop file manager to open the current \fBNNN_DE_FILE_MANAGER:\fR set to a desktop file manager to open the current
directory with. E.g.: directory with. E.g.:
.Bd -literal .Bd -literal
export NNN_DE_FILE_MANAGER=thunar export NNN_DE_FILE_MANAGER=thunar
.Ed .Ed
.Pp .Pp
\fBNNN_IDLE_TIMEOUT:\fR set idle timeout (in seconds) to invoke terminal \fBNNN_IDLE_TIMEOUT:\fR set idle timeout (in seconds) to invoke terminal
@ -201,17 +201,16 @@ screensaver.
.Pp .Pp
\fBNNN_COPIER:\fR set to a clipboard copier script. For example, on Linux: \fBNNN_COPIER:\fR set to a clipboard copier script. For example, on Linux:
.Bd -literal .Bd -literal
------------------------------------- -------------------------------------
#!/bin/sh #!/bin/sh
echo -n $1 | xsel --clipboard --input echo -n $1 | xsel --clipboard --input
------------------------------------- -------------------------------------
.Ed .Ed
.Pp .Pp
\fBNNN_NOWAIT:\fR make nnn not block while a file is open. Only necessary if \fBNNN_NOWAIT:\fR necessary only if nnn blocks while a file is open.
nnn is blocking while a file is open.
.Bd -literal .Bd -literal
export NNN_NOWAIT=1 export NNN_NOWAIT=1
.Ed .Ed
.Sh KNOWN ISSUES .Sh KNOWN ISSUES
If you are using urxvt you might have to set backspacekey to DEC. If you are using urxvt you might have to set backspacekey to DEC.

4
nnn.c
View file

@ -222,7 +222,7 @@ static char *player;
static char *copier; static char *copier;
static char *editor; static char *editor;
static char *desktop_manager; static char *desktop_manager;
static char nowait; static char nowait = F_NOTRACE;
static blkcnt_t ent_blocks; static blkcnt_t ent_blocks;
static blkcnt_t dir_blocks; static blkcnt_t dir_blocks;
static ulong num_files; static ulong num_files;
@ -2865,7 +2865,7 @@ main(int argc, char *argv[])
copier = getenv("NNN_COPIER"); copier = getenv("NNN_COPIER");
/* Get nowait flag */ /* Get nowait flag */
nowait = F_NOTRACE | (getenv("NNN_NOWAIT") ? F_NOWAIT : 0); nowait |= getenv("NNN_NOWAIT") ? F_NOWAIT : 0;
signal(SIGINT, SIG_IGN); signal(SIGINT, SIG_IGN);