Joshuto

Joshuto is a terminal-based file manager inspired by Ranger, written in Rust. It aims to provide an efficient and user-friendly interface for navigating and managing files directly from the terminal. Joshuto brings modern features to the terminal file management experience, making it a robust alternative to traditional file managers.

Joshuto Screenshot Joshuto Screenshot

Key Features

Joshuto comes packed with several notable features:

  • Tabs: Easily manage multiple file locations.
  • Fuzzy Search: Quickly locate files using fuzzy search via fzf.
  • Customizable Keybindings: Adjust keybindings to suit your workflow.
  • File Previews: Preview files directly within the terminal.
  • Asynchronous File IO: Perform cut, copy, and paste operations asynchronously.
  • Trash Support: Move files to the trash instead of deleting them permanently.
  • Devicons Support: Display file icons for better visual navigation.
  • Custom Colors/Themes: Personalize the appearance with custom themes.

Navigation

Joshuto provides intuitive navigation controls similar to Vim and Ranger:

  • Move Up: arrow_up or k
  • Move Down: arrow_down or j
  • Move to Parent Directory: arrow_left or h
  • Open File/Directory: arrow_right or l
  • Go to Top: home or gg
  • Go to Bottom: end or G
  • Page Up: page_up or ctrl+u
  • Page Down: page_down or ctrl+d

File Operations

Managing files is seamless with Joshuto:

  • Rename: a to append, A to prepend
  • Delete: delete or dd
  • Cut: dd
  • Copy: yy
  • Paste: pp
  • Symlink: pl for absolute path, pL for relative path

Miscellaneous Features

  • Toggle Hidden Files: zh
  • Reload Directory List: R
  • Change Directory: cd
  • Show Tasks: w
  • Set Mode: =
  • Enter Command Mode: :

Configuration

Joshuto offers extensive configuration options to tailor it to your needs. Configuration files include:

  • joshuto.toml: General configurations
  • keymap.toml: Keybindings
  • mimetype.toml: File type associations for opening files with specific applications
  • theme.toml: Color customizations
  • bookmarks.toml: Bookmark frequently used directories

For more detailed information, refer to the Joshuto documentation.

Installation

Joshuto can be installed using various methods:

Building from Source

To build Joshuto from source, ensure you have cargo and rustc installed:

cargo build

Single User Installation

Install Joshuto using cargo:

cargo install --path=. --force

Or install directly from the repository:

cargo install --git https://github.com/kamiyaa/joshuto.git --force

System-wide Installation

For a system-wide installation:

sudo cargo install --path=. --force --root=/usr/local

From Pre-compiled Binary

To install the latest release:

bash \<(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)

For a custom installation path:

INSTALL_PREFIX="$HOME" bash \<(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)

For a specific release version:

RELEASE_VER='v0.9.4' bash \<(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)

Supported Platforms

Joshuto is available on various platforms including:

  • Fedora: Install via COPR
  • Arch Linux: Available on AUR and ArchLinuxCN repositories
  • Gentoo: Install via the gentoo-zh overlay
  • NixOS: Integrate with NixOS configurations or run temporarily
  • MacOS: Available through MacPorts and Homebrew

Further Reading

For more information on installation, configuration, and usage, visit the Joshuto GitHub repository.

Similar Projects