Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mistakenelf/fm
A terminal based file manager
https://github.com/mistakenelf/fm
bubbletea cli file-manager filemanager fm go golang terminal tui
Last synced: about 1 month ago
JSON representation
A terminal based file manager
- Host: GitHub
- URL: https://github.com/mistakenelf/fm
- Owner: mistakenelf
- License: mit
- Created: 2021-04-11T14:03:28.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-14T17:22:15.000Z (8 months ago)
- Last Synced: 2024-04-18T11:05:46.726Z (8 months ago)
- Topics: bubbletea, cli, file-manager, filemanager, fm, go, golang, terminal, tui
- Language: Go
- Homepage:
- Size: 8.82 MB
- Stars: 537
- Watchers: 5
- Forks: 29
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - mistakenelf/fm - manager,filemanager,fm,go,golang,terminal,tui pushed_at:2024-05 star:0.6k fork:0.0k A terminal based file manager (Go)
- awesome-ccamel - mistakenelf/fm - A terminal based file manager (Go)
README
Keep those files organized
## About The Project
A terminal based file manager
### Built With
- [Go](https://golang.org/)
- [bubbletea](https://github.com/charmbracelet/bubbletea)
- [bubbles](https://github.com/charmbracelet/bubbles)
- [lipgloss](https://github.com/charmbracelet/lipgloss)
- [Glamour](https://github.com/charmbracelet/glamour)
- [Chroma](https://github.com/alecthomas/chroma)
- [Cobra](https://github.com/spf13/cobra)## Installation
### Curl
```sh
curl -sfL https://raw.githubusercontent.com/mistakenelf/fm/main/install.sh | sh
```### Go
```
go install github.com/mistakenelf/fm@latest
```### AUR
Install through the Arch User Repository with your favorite AUR helper.
There are currently two possible packages:- [fm-git](https://aur.archlinux.org/packages/fm-git/): Builds the package from the main branch
```sh
paru -S fm-git
```- [fm-bin](https://aur.archlinux.org/packages/fm-bin/): Uses the github release package
```sh
paru -S fm-bin
```## Features
- File icons (requires nerd font)
- Layout adjusts to terminal resize
- Syntax highlighting for source code with customizable themes using styles from [chroma](https://swapoff.org/chroma/playground/) (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 theme flags
- 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
- `fm --start-dir=/some/dir` start fm at a specific directory
- `fm --enable-logging=true` start fm with logging enabled
- `fm --pretty-markdown=true` render markdown using glamour to make it look nice
- `fm --theme=default` set the theme of fm
- `fm --show-icons=false` set whether to show icons or not
- `fm --syntax-theme=dracula` sets the syntax theme to render code with## Local Development
Follow the instructions below to get setup for local development
1. Clone the repo
```sh
git clone https://github.com/mistakenelf/fm
```2. Run
```sh
make
```3. Build a binary
```sh
make build
```