Git Product home page Git Product 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, spooky, nord, holiday)
  • Render PNG, JPG and JPEG as strings
  • Colors adapt to terminal background
  • Open selected file in editor set in EDITOR environment variable
  • Preview a directory in the secondary pane
  • Copy selected directory items path to the clipboard
  • Read PDF files
  • Experimental find files/directories (might be a little buggy)
  • Simple mode (removes secondary box, hides borders, hide file icons and no colors)

Themes

Default

default

Gruvbox

gruvbox

Spooky

spooky

Nord

nord

Holiday

holiday

Simple Mode

simple mode

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 Go back to previous directory
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 Opens the currently selected directory or file
gg Jump to bottom of file tree or pane
G Jump to top of file tree or pane
~ Go to home directory
/ Go to the root directory
. Toggle hidden files and directories
- Go to previous directory
ctrl+c Exit
q Exit if command bar is not open
m Move the currently selected file or directory. Once pressed, the file manager enters move mode. Navigate the tree as usual and press enter in the desired destination directory. It will navigate back to the starting direcotry in which the move was initiated
tab Toggle between panes
esc Reset FM to its initial state
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
ctrl+d 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
E Open in editor set in EDITOR environment variable
p Preview a directory in the secondary pane
y Copy selected directory items path to the clipboard
ctrl+f Find files and directories in working directory
? Toggle help screen in simple mode
O Open logger when logging is enabled
rc Reload config

Configuration

  • A config file will be generated at ~/.config/fm.yml when you first run fm (On windows it will be C\:\\Users\\username\\fm.yml)
settings:
  borderless: false
  enable_logging: false
  enable_mousewheel: true
  pretty_markdown: true
  show_icons: true
  simple_mode: false
  start_dir: .
  syntax_theme: dracula
  theme: default

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

fm's People

Contributors

is0n avatar meowgorithm avatar mistakenelf avatar sam9032 avatar zcharym 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.