Giter Club home page Giter Club logo

fm's Introduction

Keep those files organized

Latest Release GoDoc Build Status

default screenshot

About The Project

A terminal based file manager

Built With

Installation

Curl

curl -sfL https://raw.githubusercontent.com/knipferrc/fm/main/install.sh | sh

Go

go install github.com/knipferrc/fm@latest

AUR

Install through the Arch User Repository with your favorite AUR helper. There are currently two possible packages:

  • fm-git: Builds the package from the main branch
paru -S fm-git
  • fm-bin: Uses the github release package
paru -S fm-bin

Features

  • Double pane layout
  • File icons
  • Layout adjusts to terminal resize
  • Syntax highlighting for source code with customizable themes using styles from chroma (dracula, monokai etc.)
  • Render pretty markdown
  • Mouse support
  • Themes (default, gruvbox, nord)
  • Render PNG, JPG and JPEG as strings
  • Colors adapt to terminal background, for syntax highlighting to work properly on light/dark terminals, set the appropriate themes in the config file
  • Open selected file in editor set in EDITOR environment variable
  • Copy selected directory items path to the clipboard
  • Read PDF files

Themes

Default

default

Gruvbox

gruvbox

Nord

nord

Usage

  • fm will start fm in the current directory
  • fm update will update fm to the latest version
  • fm --start-dir=/some/start/dir will start fm in the specified directory
  • fm --selection-path=/tmp/tmpfile will write the selected items path to the selection path when pressing E and exit fm

Navigation

Key Description
h or left Paginate to the left
or down Move down in the file tree or scroll pane down
k or up Move up in the file tree or scroll pane up
l or right Paginate to the right
G Jump to bottom of file tree or pane
g Jump to top of file tree or pane
~ Go to home directory
R Go to the root directory
. Toggle hidden files and directories
ctrl+c Exit
q Exit if command bar is not open
tab Toggle between panes
esc Blur filetree input
z Create a zip file of the currently selected directory item
u Unzip a zip file
c Create a copy of a file or directory
x Delete the currently selected file or directory
n Create a new file in the current directory
N Create a new directory in the current directory
r Rename the currently selected file or directory
m Move the currently selected file or directory
e Open in editor set in EDITOR environment variable
y Copy selected directory items path to the clipboard
/ Filter the current directory with a term
? Toggle filetree full help menu
ctrl+r Reload config

Configuration

A config file will be generated when you first run fm. Depending on your operating system it can be found in one of the following locations:

  • macOS: ~/Library/Application\ Support/fm/config.yml
  • Linux: ~/.config/fm/config.yml
  • Windows: C:\Users\me\AppData\Roaming\fm\config.yml

It will include the following default settings:

settings:
  borderless: false
  enable_logging: false
  pretty_markdown: true
  show_icons: true
  start_dir: .
theme:
  app_theme: default
  syntax_theme:
    dark: dracula
    light: pygments

Local Development

Follow the instructions below to get setup for local development

  1. Clone the repo
git clone https://github.com/knipferrc/fm
  1. Run
make
  1. Build a binary
make build

Credit

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.