diff --git a/README.md b/README.md index d8766db4..c8661c81 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ Right, Enter, l, ^M | Open file or enter dir - | Jump to last visited dir o | Open dir in NNN_DE_FILE_MANAGER / | Filter dir contents + ^/ | Search dir in catfish c | Show change dir prompt d | Toggle detail view D | Toggle current file details screen @@ -200,11 +201,12 @@ nnn is designed to play files using multiple strategies (in order of decreasing export NNN_OPENER=xdg-open export NNN_OPENER="gio open" export NNN_OPENER=gvfs-open - - If nnn recognizes the file extension, it invokes nlay (which invokes the players). Default players: + - If nnn recognizes the file extension, it invokes nlay (which invokes the players). Default apps: - mpv - audio and video - viewnior - image - [zathura](https://pwmt.org/projects/zathura/) - pdf - vim - plain text + - catfish - search - to add, remove recognized extensions in nnn, see [how to change file associations](#change-file-associations) - If a file without any extension is a plain text file, it is opened in EDITOR (fallback vi) - Set `NNN_FALLBACK_OPENER` as the fallback opener. E.g.: diff --git a/config.def.h b/config.def.h index e23fe3c3..c5c9ce1b 100644 --- a/config.def.h +++ b/config.def.h @@ -35,6 +35,8 @@ static struct key bindings[] = { { 'l', SEL_GOIN, "", "" }, /* Filter */ { '/', SEL_FLTR, "", "" }, + /* Desktop search */ + { CONTROL('_'), SEL_SEARCH, "", "" }, /* Next */ { 'j', SEL_NEXT, "", "" }, { KEY_DOWN, SEL_NEXT, "", "" }, diff --git a/nlay b/nlay index 20d6e8ed..bc9eaaa6 100755 --- a/nlay +++ b/nlay @@ -120,3 +120,14 @@ if [ "$2" == "text" ]; then eval $app $txt_opts "\"$1\"" $bg exit 0 fi + +#----------------- SEARCH ------------------- +if [ "$2" == "search" ]; then + app=catfish + #search_opts= + + bg=">/dev/null 2>&1 &" + + eval $app $search_opts "\"$1\"" $bg + exit 0 +fi diff --git a/nnn.1 b/nnn.1 index b51450cd..cb980139 100644 --- a/nnn.1 +++ b/nnn.1 @@ -51,6 +51,8 @@ Change to the last visited directory Open directory in NNN_DE_FILE_MANAGER .It Ic / Change filter (more information below) +.It Ic ^/ +Search directory in catfish .It Ic c Change into the given directory .It Ic d diff --git a/nnn.c b/nnn.c index cf5932b3..c7a20f54 100644 --- a/nnn.c +++ b/nnn.c @@ -84,6 +84,7 @@ enum action { SEL_BACK, SEL_GOIN, SEL_FLTR, + SEL_SEARCH, SEL_NEXT, SEL_PREV, SEL_PGDN, @@ -1212,6 +1213,7 @@ show_help(void) - | Jump to last visited dir\n\ o | Open dir in NNN_DE_FILE_MANAGER\n\ / | Filter dir contents\n\ + ^/ | Search dir in catfish\n\ c | Show change dir prompt\n\ d | Toggle detail view\n\ D | Toggle current file details screen\n\ @@ -1658,6 +1660,14 @@ nochange: if (ndents > 0) mkpath(path, dents[cur].name, oldpath, PATH_MAX); goto nochange; + case SEL_SEARCH: + exitcurses(); + if (player) + spawn(player, path, "search", NULL, 0); + else + spawn("nlay", path, "search", NULL, 0); + initcurses(); + break; case SEL_NEXT: if (cur < ndents - 1) cur++;