Home

Awesome

FM

FM is a complete File Manager for any shell. As fast as a CLI and as easy as a desktop UI, it easily integrates also with your own functions/commands.

Motivation

Whether you are comfortable with the terminal or not, you spend a lot of time and effort just repeating basic commands like cd, ls, cat, cp, mv, ln, find, grep, mkdir, touch... or maybe you are switching back and forth from the Desktop File Manager to the terminal just to avoid it...

FM saves you all that repeated typing and switching, providing automatic feedback and all that basic tools at the press of a shortcut... and it can also integrate your own tools.

Star and share!

If you like FM, please, give it a star and share it with friends and colleagues!

Features

FM has all the features that you would expect from a CLI but also from a Desktop File Manager... and actually some more. Here is an overview:

Try it without installing it

You can try FM on your system with the try-fm docker image. It's a very quick and clean way to try it on your own filesystem without the need of installing it.

Installation

Install Prerequisites

Install recommended packages

In order to get the best experience with FM you should also install the following optional packages:

Install FM

Add the following to your $HOME/.zshrc:

Compile after install

To make it run faster, FM can be compiled with a simple command. Run fm compile only once, every time you update the repo.

Notice: the zinit and zplug installation commands shown above, compile FM automatically, so you don't need to do it manually.

Configuration

Usage

In any shell

Just type fm from any dir in any shell. You should be able to figure it out from there by taking a look at the menu (ctrl-space), which offers also the inline usage notes and documentation.

The fm help command will give you an overview about the FM environment and the variables that you can customize.

Suggestion: FM is designed to be easy to run and quit. You can make it a bit easier with an alias like alias f=fm.

Zsh-only features

The FM favorites are working in any shell, however the widget and the shell favorite aliases are available only in the zsh shell.

Customization

All the FM customizations consist in redefining some FM__* variable in the ~/.zshrc file regardless the shell you use. You can read the fm help and the inline documentation in the FM menu (ctrl-space) for details.

Add your own tools

You can easily add your own functions/commands to the FM Menu and execute them as any other FM menu. Your tool will have access to the selected items and the other FM variables and functions.

You can read the inline documentation in the FM menu section Added Tools and try the provided working examples for more details.

Q&A

See Q&A

Caveats

Contributions

Branches

The master branch is the latest published release. It also contains docs and comment changes that don't affect the published code.

Expect any other branch to be experimental, force-rebased and/or deleted even without merging.

Versioning

FM follows the Semantic Versioning 2.0.0. Please, check the Changelog for breaking changes introduced by mayor versions.

License

This software is available as open source under the terms of the GPL3 License.


Copyright © 2021 Domizio Demichelis