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
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
- Clone the repo
git clone https://github.com/knipferrc/fm
- Run
make
- Build a binary
make build
Credit