mirror of
https://github.com/jarun/nnn.git
synced 2024-11-24 11:51:27 +00:00
Prevent nnn from waiting on open file process (#40)
* Prevent nnn from waiting on open file process * Add env var flag to not wait for child process when opening file * Set nowait flag once to skip bit-or every time we open a file * Add documentation for NNN_NOWAIT
This commit is contained in:
parent
968beb434a
commit
df4b557ca1
|
@ -353,6 +353,12 @@ 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
|
||||||
|
|
||||||
|
The desktop file opener should take care of opening files in new processes without causing `nnn` to block.
|
||||||
|
If `nnn` does block/freeze when a file is open, then set the environment variable `NNN_NOWAIT` to any
|
||||||
|
non-zero value.
|
||||||
|
|
||||||
### Why fork?
|
### Why fork?
|
||||||
|
|
||||||
I chose to fork because:
|
I chose to fork because:
|
||||||
|
|
6
nnn.1
6
nnn.1
|
@ -207,6 +207,12 @@ screensaver.
|
||||||
echo -n $1 | xsel --clipboard --input
|
echo -n $1 | xsel --clipboard --input
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
.Ed
|
.Ed
|
||||||
|
.Pp
|
||||||
|
\fBNNN_NOWAIT:\fR make nnn not block while a file is open. Only necessary if
|
||||||
|
nnn is blocking while a file is open.
|
||||||
|
.Bd -literal
|
||||||
|
export NNN_NOWAIT=1
|
||||||
|
.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.
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
|
|
6
nnn.c
6
nnn.c
|
@ -222,6 +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 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;
|
||||||
|
@ -2211,7 +2212,7 @@ nochange:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Invoke desktop opener as last resort */
|
/* Invoke desktop opener as last resort */
|
||||||
spawn(utils[2], newpath, NULL, NULL, F_NOTRACE);
|
spawn(utils[2], newpath, NULL, NULL, nowait);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -2863,6 +2864,9 @@ main(int argc, char *argv[])
|
||||||
/* Get the default copier, if set */
|
/* Get the default copier, if set */
|
||||||
copier = getenv("NNN_COPIER");
|
copier = getenv("NNN_COPIER");
|
||||||
|
|
||||||
|
/* Get nowait flag */
|
||||||
|
nowait = F_NOTRACE | (getenv("NNN_NOWAIT") ? F_NOWAIT : 0);
|
||||||
|
|
||||||
signal(SIGINT, SIG_IGN);
|
signal(SIGINT, SIG_IGN);
|
||||||
|
|
||||||
/* Test initial path */
|
/* Test initial path */
|
||||||
|
|
Loading…
Reference in a new issue