Simple terminal file manager(vi-style keybindings) written in rust

Overview

rust-tfm

rust-tfm is a terminal file manager written in rust heavily inspired by lf and ranger, and also inspired by suckless software.

rust-tfm.mp4

Features

  • Asynchronous IO operations to avoid UI blocking
  • Customizable keybindings(vi-style by default)
  • Extendable and configurable with shell commands
  • Using src/config.rs to config tfm, like dwm, st, and dmenu.

Non-Features

  • Cross-platform, works on linux(tested on Arch and Fedora38) and maybe works on macOS(not tested).
  • Tabs or windows (better handled by window manager or terminal multiplexer)

Installation

Currently, you can only install it by cloning this repository and building it on your own.

git clone https://github.com/jiaoshjie/rust-tfm.git

cd rust-tfm

cargo build --release
# or
cargo install --path .

The binary file is tfm not rust-tfm.

Config

Like suckless software, modify the src/config.rs and then rebuild it.

Usage

See src/config.rs or maybe all source files.

Dependencies(Optional)

You can modify script/preview and script/open files to change the behavior of preview and open as you like.

Preview

Below are some defalut script/preview dependencies.

  1. lynx html files
  2. bat color highlight for text files
  3. chafa image files
  4. mediainfo audio files
  5. ffmpegthumbnailer video to image
  6. atool zip files

Open

  1. mpv video and audio files
  2. sxiv image files and a rotdir script which can be found here.
  3. display svg files
  4. Set $EDITOR and $BROWSER env variables for text files and pdf files

License

MIT

You might also like...
Parse hex colors to tui::style::Color

Color - Tui Parse hex colors to tui rgb colors #c3f111 - Color::Rgb(195,241,17) Note that the indexed colors are NOT HEX #142 - Color::Indexed(142)

hj is a command line tool to convert HTTP/1-style text into JSON

hj hj is a command line tool to convert HTTP/1-style text into JSON. This command is inspired by yusukebe/rj, which is a standalone HTTP client that s

Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity.

Sleek: SQL Formatter ✨ Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability an

Command-line tool that provides a workflow for extending, editing, diffing, and writing to vim-style grep lines.

Grug Grug is a command-line tool that provides a workflow for expanding, editing, diffing, and writing edits to files using vim-styled grep lines (suc

TI-89-style calculator, maybe turing complete
TI-89-style calculator, maybe turing complete

I will make a fully capable graphing calculator in Rust and you can't stop me. As always, I'm not using libraries or any of that. Everything here is h

A grub theme in the style of the Minecraft singleplayer (sp) world selection screen!

Minecraft World Selection Grub Theme Wowie, another Minecraft grub theme! But this time it's in the style of the singleplayer world selection menu, wh

A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.
A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.

Terminal Media Player View images, videos (files or YouTube links), webcam, etc directly in the terminal as ASCII. All images you see below are just m

ask.sh: AI terminal assistant that can read and write your terminal directly!
ask.sh: AI terminal assistant that can read and write your terminal directly!

ask.sh: AI terminal assistant that read from & write to your terminal ask.sh is an AI terminal assistant based on OpenAI APIs such as GPT-3.5/4! What'

🖥  A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3
🖥 A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

🖥 A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3

Owner
Jiao ShiJie
Jiao ShiJie
⚡️ Blazing fast terminal file manager written in Rust, based on async I/O.

Yazi - ⚡️ Blazing Fast Terminal File Manager Yazi ("duck" in Chinese) is a terminal file manager written in Rust, based on non-blocking async I/O. It

三咲雅 · Misaki Masa 189 Aug 1, 2023
create and test the style and formatting of text in your terminal applications

description: create and test the style and formatting of text in your terminal applications docs: https://docs.rs/termstyle termstyle is a library tha

Rett Berg 18 Jul 3, 2021
A user-friendly TUI for secure file transfers, with arrow-key and VIM-style navigation

gsftp SFTP with an interactive text-based user interface (TUI). Transfer files through an encrypted connection with a visual interface, so you can see

Ben Jiron 3 Jul 7, 2022
Simple file manager to practice using tui-rs

simple-tui-file-manager Simple file manager to practice using tui-rs Keymap Key description j, up move up k, down move down h, Left move parent dir l,

Slug 3 Nov 12, 2022
A simple and efficient terminal UI implementation with ratatui.rs for getting quick insights from csv files right on the terminal

CSV-GREP csv-grep is an intuitive TUI application writting with ratatui.rs for reading, viewing and quickly analysing csv files right on the terminal.

Anthony Ezeabasili 16 Mar 10, 2024
A Minecraft mod manager for the terminal.

Hopper A Minecraft mod manager for the terminal. Donate High-level Goals modrinth mod searching modrinth mod installation curseforge api too? per-inst

Tebibyte Media 17 Dec 24, 2022
The-way - A code snippets manager for your terminal.

The Way A code snippets manager for your terminal. Record and retrieve snippets you use every day, or once in a blue moon, without having to spin up a

OutOfCheeseError 254 Jan 7, 2023
An efficient pictures manager based on custom tags and file system organization.

PicturesManager An efficient pictures manager based on custom tags and file system organization. Developed with Tauri (web app) with a Rust backend an

Clément Grennerat 2 Dec 21, 2022
Simple cli clipboard manager written in rust

Simple cli clipboard manager written in rust

null 5 Nov 13, 2022
A simple to-do list manager written in Rust

A simple To-Do list manager written in Rust I wrote this project while I'm learning Rust for practice. I decided to put this project online so that ot

Tiago Correia 4 Jan 5, 2023