GithubHelp home page GithubHelp logo

pirmd / fm Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 15 KB

fm is a command line file browser heavily inspired from [ranger](http://ranger.nongnu.org/).

License: BSD 2-Clause "Simplified" License

Makefile 2.14% Go 97.86%

fm's Introduction

INTRODUCTION

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

INSTALLATION

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

Usage is quite straightforward: fm [path|url]

  • path is a normal path indication being absolute or relative
  • url 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 that afero supports.

รŒf no path or url is given, fm will start browsing the current folder.

CUSTOMIZATION

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 app
  • folder.go: propose some basic type to facilitate fm.go's life
  • ui.go: almost anything linked to layout and colors lies here
  • vfs/: really small interface to afero. Main use is to have a factory-like features to adopt the correct afero.Fs depending on the url you like to browse
  • tui/: simple layer above termbox-go with basic widgets to conveniently displayed text and lists

CHANGELOG

  • 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)

CONTRIBUTION

If you feel like to contribute, just follow github guidelines on forking then send a pull request

fm's People

Contributors

pirmd avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.