fm
is a command line file browser heavily inspired from ranger.
The main differences that fm
tries to achieve are:
- stripped down features (e.g. no tabs, no shell execution...)
- implementation of a Virtual File System backend, for example to browse zip or sftp shares (not implemented yet)
If you are looking to a full features command line file manager you most probably want to try lf
Everything should work fine using go standard commands (build
, get
, install
...).
For simplicity, you can just run make install
if you prefer
I'm trying to keep dependancies number low:
- go (>= 1.8 for sorting suggar that is
sort.Slice
)
- termbox-go
- afero
- go-open
- go-humanize
Usage is quite straightforward: fm [path|url]
path
is a normal path indication being absolute or relativeurl
is an url-like string (scheme://[userinfo@]host/path
) to indicate browsing to specific location (like sftp shares or zip file). It can easily be extended to anything thatafero
supports.
รf no path
or url
is given, fm
will start browsing the current folder.
I don't feel the need to have a config file system or complicated flag system.
No special customization is proposed up to now, you'll have to deep in the code for that, starting with the config.go
, which is hopefully commented enough to have you play with customizations.
Once done, run make install
and you're done.
If you feel like a bit more adventurious, you can dive into the code and:
fm.go
: glue between the ui and the underlying file systems. It is responsible for almost all behaviour of the appfolder.go
: propose some basic type to facilitatefm.go
's life
ui.go
: almost anything linked to layout and colors lies herevfs/
: really small interface toafero
. Main use is to have a factory-like features to adopt the correctafero.Fs
depending on the url you like to browsetui/
: simple layer abovetermbox-go
with basic widgets to conveniently displayed text and lists
-
Version 1 (2017.05.15):
- basis for simple file browsing
- connector to
afero
for future extension to browse zip archive or sftp shares
-
Version 2 (Roadmap):
- implement zip archive and sftp browsing
- extend browsing to simple file management (delete, copy/paste, rename)
If you feel like to contribute, just follow github guidelines on forking then send a pull request