Przeglądaj źródła

Use run a command to launch apps

master
Arun Prakash Jana 5 lat temu
rodzic
commit
cc34b977da
Nie znaleziono w bazie danych klucza dla tego podpisu ID klucza GPG: A75979F35C080412
4 zmienionych plików z 22 dodań i 54 usunięć
  1. +10
    -6
      README.md
  2. +5
    -7
      nnn.1
  3. +7
    -38
      src/nnn.c
  4. +0
    -3
      src/nnn.h

+ 10
- 6
README.md Wyświetl plik

@@ -71,6 +71,7 @@ We need contributors. Please visit the ToDo list.
- [(neo)vim plugin](#neovim-plugin)
- [run custom scripts](#run-custom-scripts)
- [sample scripts](#sample-scripts)
- [launch applications](#launch-applications)
- [change dir color](#change-dir-color)
- [integrate patool](#integrate-patool)
- [lftp transfers](#lftp-transfers)
@@ -116,12 +117,11 @@ We need contributors. Please visit the ToDo list.
- Batch rename/move/delete (needs vidir)
- Show directories in custom color (default: blue)
- Spawn a subshell in the current directory
- Run a command
- Run a command, launch applications
- Run custom scripts in the current directory
- Run current file as executable
- Change directory at exit (*easy* shell integration)
- Edit file in EDITOR or open in PAGER
- Application launcher
- Terminal locker integration
- Unicode support
- Highly optimized, static analysis integrated code
@@ -248,9 +248,9 @@ Press <kbd>?</kbd> in `nnn` to see the list anytime.
^J Disk usage S Apparent du
t Modification time s Size
MISC
!, ^] Spawn SHELL in dir o Launch app
^S Run a command R Run custom script
C Execute entry L Lock terminal
!, ^] Spawn SHELL in dir C Execute entry
R Run custom script L Lock terminal
^S Run a command
```

Help & settings, file details, media info and archive listing are shown in the PAGER. Please use the PAGER-specific keys in these screens.
@@ -353,7 +353,7 @@ Arguments to the `$EDITOR`, `$PAGER` and `$SHELL` should be combined together, e

export EDITOR='vim -xR'

The option `open with` takes 1 combined argument and `launcher` takes 2.
The option `open with` takes 1 combined argument.

#### Help

@@ -489,6 +489,10 @@ Press <kbd>R</kbd> to run the script in the current directory. You can also use

xdg-open $(find -type f | fzy) >/dev/null 2>&1

#### launch applications

Applications can be launched from the _run a command_ prompt. Use `&` to launch GUI applications in the background.

#### change dir color

The default color for directories is blue. Option `-c` accepts color codes from 0 to 7 to use a different color:


+ 5
- 7
nnn.1 Wyświetl plik

@@ -18,7 +18,7 @@
.Op Ar PATH
.Sh DESCRIPTION
.Nm
(Noice is Not Noice) is a performance-optimized, feature-packed fork of noice (http://git.2f30.org/noice/) with seamless desktop integration, simplified navigation, \fInavigate-as-you-type\fR mode, disk usage analyzer mode, bookmarks, contexts, application launcher, familiar navigation shortcuts, subshell spawning and much more. It remains a simple and efficient file manager that stays out of your way.
(Noice is Not Noice) is a performance-optimized, feature-packed fork of noice (http://git.2f30.org/noice/) with seamless desktop integration, simplified navigation, \fInavigate-as-you-type\fR mode with auto select, disk usage analyzer mode, bookmarks, contexts, application launcher, familiar navigation shortcuts, subshell spawning and much more. It remains a simple and efficient file manager that stays out of your way.
.Pp
.Nm
opens the current working directory by default if
@@ -145,16 +145,14 @@ MISC
.Bl -tag -width "l, [Right], [Return] or C-mXXXX" -offset indent -compact
.It Ic \&!, ^]
Spawn SHELL in current directory (fallback sh)
.It Ic o
Launch an application (takes 2 combined arguments)
.It Ic ^S
Run a command
.It Ic R
Run or choose a custom script
.It Ic C
Execute entry
.It Ic R
Run or choose a custom script
.It Ic L
Lock terminal
.It Ic ^S
Run a command
.El
.Pp
Backing up one directory level will set the cursor position at the


+ 7
- 38
src/nnn.c Wyświetl plik

@@ -2062,9 +2062,9 @@ static bool show_help(char *path)
"d^J Disk usage S Apparent du\n"
"et Modification time s Size\n"
"1MISC\n"
"a!, ^] Spawn SHELL in dir o Launch app\n"
"d^S Run a command R Run custom script\n"
"eC Execute entry L Lock terminal\n"};
"a!, ^] Spawn SHELL in dir C Execute entry\n"
"eR Run custom script L Lock terminal\n"
"d^S Run a command\n"};

if (fd == -1)
return FALSE;
@@ -3233,15 +3233,9 @@ nochange:
case SEL_RENAME:
if (!ndents)
break; // fallthrough
case SEL_LAUNCH: // fallthrough
case SEL_NEW:
{
char *ptr = NULL, *ptr1 = NULL, *ptr2 = NULL;

switch (sel) {
case SEL_LAUNCH:
tmp = xreadline(NULL, "launch: ");
break;
case SEL_ARCHIVE:
tmp = xreadline(dents[cur].name, "name: ");
break;
@@ -3260,43 +3254,18 @@ nochange:
break;

/* Allow only relative, same dir paths */
if ((sel != SEL_LAUNCH) &&
(tmp[0] == '/' || strcmp(xbasename(tmp), tmp) != 0)) {
if (tmp[0] == '/' || strcmp(xbasename(tmp), tmp) != 0) {
printmsg(messages[STR_INPUT_ID]);
goto nochange;
}

/* Confirm if app is CLI or GUI */
if (sel == SEL_OPEN || sel == SEL_LAUNCH) {
if (sel == SEL_OPEN) {
r = get_input("press 'c' for cli mode");
(r == 'c') ? (r = F_NORMAL) : (r = F_NOWAIT | F_NOTRACE);
}

switch (sel) {
case SEL_LAUNCH:
{
uint args = 0;
ptr = tmp;

while (*ptr) {
if (isblank(*ptr)) {
*ptr = '\0';
if (args == 0)
ptr1 = ptr + 1;
else if (args == 1)
ptr2 = ptr + 1;
else
break;

++args;
}

++ptr;
}

spawn(tmp, ptr1, ptr2, path, r);
break;
}
case SEL_ARCHIVE:
/* newpath is used as temporary buffer */
if (!getutil(utils[APACK])) {
@@ -3307,9 +3276,9 @@ nochange:
spawn(utils[APACK], tmp, dents[cur].name, path, F_NORMAL);
break;
case SEL_OPEN:
getprogarg(tmp, &ptr);
getprogarg(tmp, &dir); /* dir used as tmp var */
mkpath(path, dents[cur].name, newpath, PATH_MAX);
spawn(tmp, ptr, newpath, path, r);
spawn(tmp, dir, newpath, path, r);
break;
case SEL_RENAME:
/* Skip renaming to same name */


+ 0
- 3
src/nnn.h Wyświetl plik

@@ -59,7 +59,6 @@ enum action {
SEL_STATS,
SEL_MEDIA,
SEL_FMEDIA,
SEL_LAUNCH,
SEL_ARCHIVE,
SEL_ARCHIVELS,
SEL_EXTRACT,
@@ -167,8 +166,6 @@ static struct key bindings[] = {
{ 'm', SEL_MEDIA },
/* Show media info full, run is hacked */
{ 'M', SEL_FMEDIA },
/* Launch a GUI application */
{ 'o', SEL_LAUNCH },
/* Create archive */
{ 'f', SEL_ARCHIVE },
/* List archive */


Ładowanie…
Anuluj
Zapisz