config.def.h | 1 + noice.1 | 4 +++- noice.c | 16 ++++++++++++++++ diff --git a/config.def.h b/config.def.h index 640407976bc79168d7b28b985ec895626d491d4f..af9bcbb641d49dafcc68ab448ff7e27be1199936 100644 --- a/config.def.h +++ b/config.def.h @@ -56,6 +56,7 @@ { CONTROL('E'), SEL_END }, { '$', SEL_END }, /* Change dir */ { 'c', SEL_CD }, + { '~', SEL_CDHOME }, /* Toggle hide .dot files */ { '.', SEL_TOGGLEDOT }, /* Toggle sort by time */ diff --git a/noice.1 b/noice.1 index cb5b56d40aadef8d8e855bd3fad71792c8800994..f9ac1afce8252601f56dff6212083cde6a9f75f3 100644 --- a/noice.1 +++ b/noice.1 @@ -1,4 +1,4 @@ -.Dd November 26, 2015 +.Dd February 25, 2016 .Dt NOICE 1 .Os .Sh NAME @@ -49,6 +49,8 @@ .It Ic / or & Change filter (see below for more information). .It Ic c Change into the given directory. +.It Ic ~ +Change to the HOME directory. .It Ic \&. Toggle hide .dot files. .It Ic t diff --git a/noice.c b/noice.c index b3a28525e58e226dea8f20d32b7846e9a0810218..489caabe617b7c1cc25d26bdc3522de72971fff4 100644 --- a/noice.c +++ b/noice.c @@ -57,6 +57,7 @@ SEL_PGUP, SEL_HOME, SEL_END, SEL_CD, + SEL_CDHOME, SEL_TOGGLEDOT, SEL_MTIME, SEL_REDRAW, @@ -705,6 +706,21 @@ } strlcpy(path, newpath, sizeof(path)); /* Reset filter */ strlcpy(fltr, ifilter, sizeof(fltr)) + DPRINTF_S(path); + goto begin; + case SEL_CDHOME: + tmp = getenv("HOME"); + if (tmp == NULL) { + clearprompt(); + goto nochange; + } + if (canopendir(tmp) == 0) { + printwarn(); + goto nochange; + } + strlcpy(path, tmp, sizeof(path)); + /* Reset filter */ + strlcpy(fltr, ifilter, sizeof(fltr)); DPRINTF_S(path); goto begin; case SEL_TOGGLEDOT: