Keep those files organized
A terminal based file manager
curl -sfL https://raw.githubusercontent.com/knipferrc/fm/main/install.sh | sh
go install github.com/knipferrc/fm@latest
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
- 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)
fm
will start fm in the current directoryfm update
will update fm to the latest versionfm --start-dir=/some/start/dir
will start fm in the specified directoryfm --selection-path=/tmp/tmpfile
will write the selected items path to the selection path when pressing E and exit fm
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 |
- A config file will be generated at
~/.config/fm.yml
when you first runfm
(On windows it will beC\:\\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
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
- Thank you to this repo https://github.com/Yash-Handa/logo-ls for the icons