fm
fm copied to clipboard
A terminal based file manager
Keep those files organized
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
Gruvbox
Nord
Usage
fmwill start fm in the current directoryfm updatewill update fm to the latest versionfm --start-dir=/some/start/dirwill start fm in the specified directoryfm --selection-path=/tmp/tmpfilewill 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
- Clone the repo
git clone https://github.com/knipferrc/fm
- Run
make
- Build a binary
make build
Credit
- Thank you to this repo https://github.com/Yash-Handa/logo-ls for the icons