diff --git a/internal/dirs/dirs.go b/internal/dirs/dirs.go index b1a08c7..5e721eb 100644 --- a/internal/dirs/dirs.go +++ b/internal/dirs/dirs.go @@ -12,27 +12,23 @@ import ( // $PWD -> . // workdir -> . func UnExpand(dir, workdir string) (outdir string) { - var ( - home = os.Getenv("HOME") - pwd string - err error - ) - outdir = filepath.Clean(dir) + home := os.Getenv("HOME") - if workdir != "" { - outdir = strings.Replace(outdir, workdir, ".", 1) - } - - pwd, err = os.Getwd() - if err == nil && home != pwd { + if pwd, err := os.Getwd(); err == nil && home != pwd { outdir = strings.Replace(outdir, pwd, ".", 1) + } else if workdir != "" { + outdir = strings.Replace(outdir, workdir, "", 1) } outdir = strings.Replace(outdir, home, "~", 1) outdir = UnEscape(outdir) + if outdir == "" { + outdir = "/" + } + return } diff --git a/internal/tables/tables.go b/internal/tables/tables.go index cd27d70..0097f1c 100644 --- a/internal/tables/tables.go +++ b/internal/tables/tables.go @@ -55,6 +55,7 @@ type model struct { readonly bool termheight int mode modes.Mode + subtitle string } // TODO: reconcile trash.Info and files.File into an interface so I can shorten this up @@ -134,6 +135,7 @@ func newFilesModel(fs files.Files, width, height int, readonly, preselected bool readonly: readonly, mode: modes.Trashing, selected: map[int]bool{}, + subtitle: workdir, } ) @@ -339,6 +341,9 @@ func (m model) header() string { mode = strings.Join(keys, wide_dot) default: mode = m.mode.String() + if m.subtitle != "" { + mode += fmt.Sprintf(" in %s ", dirs.UnExpand(m.subtitle, "")) + } } mode += fmt.Sprintf(" %s %s", dot, strings.Join(select_keys, wide_dot))