GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - kamiyaa/joshuto: ranger-like terminal file manager written in Rust

BranchesTags
Open more actions menu

Latest commit

 

History

1,470 Commits
1,470 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
config
config
 
 
docs
docs
 
 
src
src
 
 
utils
utils
 
 
.Dockerignore
.Dockerignore
 
 
.gitignore
.gitignore
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.rs
build.rs
 
 
clippy.toml
clippy.toml
 
 
flake.lock
flake.lock
 
 
flake.nix
flake.nix
 
 
rustfmt.toml
rustfmt.toml
 
 
screenshot.png
screenshot.png
 
 

Repository files navigation

Linux build

MacOS build

joshuto

ranger-like terminal file manager written in Rust.

Alt text

Dependencies

  • cargo >= 1.90
  • rustc >= 1.90
  • xsel/xclip/wl-clipboard (optional, for clipboard support)
  • fzf (optional)
  • zoxide (optional)

Also see Cargo.toml

Building

~$ cargo build

Installation

For single user

~$ cargo install --path=. --force

For single user with cargo

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

System wide

~# cargo install --path=. --force --root=/usr/local     # /usr also works

From pre-compiled binary

Dependencies:

  • curl
  • openssl
Latest release

Installs the latest version using the default installation path ($HOME/.local/bin/).

~$ bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
Custom Installation path

Allows you to install Joshuto to a custom directory by setting the INSTALL_PREFIX variable.

~$ INSTALL_PREFIX="$HOME" bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
System wide
~# INSTALL_PREFIX="/usr/local/bin" bash <(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)
Specific release

Installs a specific release version of Joshuto by the desired version number.

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

Packaging status

Fedora (COPR)
sudo dnf copr enable atim/joshuto -y
sudo dnf install joshuto
Arch (AUR)
  • release
[yay/paru] -S joshuto
  • build from source
[yay/paru] -S joshuto-git
Arch (archlinuxcn)
  • stable version (x86_64)
  • stable version (aarch64)
[yay/paru] -S joshuto
  • latest git version (x86_64)
  • latest git version (aarch64)
[yay/paru] -S joshuto-git
Gentoo (gentoo-zh)
sudo eselect repository enable gentoo-zh
sudo emerge -av app-misc/joshuto
NixOS

Here's an example of using it in a nixos configuration

{
  description = "My configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    joshuto.url = "github:kamiyaa/joshuto";
  };

  outputs = { nixpkgs, joshuto, ... }:
    {
      nixosConfigurations = {
        hostname = nixpkgs.lib.nixosSystem
          {
            system = "x86_64-linux";
            modules = [
              {
                nixpkgs.overlays = [ joshuto.overlays.default ];
                environment.systemPackages = with pkgs;[
                  joshuto
                ];
              }
            ];
          };
      };
    };
}

Temporary run, not installed on the system

nix run github:kamiyaa/joshuto
MacOS (MacPorts)
sudo port install joshuto
MacOS/Linux Homebrew
brew install joshuto

Usage

~ $ joshuto

Navigation

  • Move up: arrow_up or k
  • Move down: arrow_down or j
  • Move to parent directory: arrow_left or h
  • Open file or directory: arrow_right or l
  • Go to the top: home or g g
  • Go to the bottom: end or G
  • Page up: page_up or ctrl+u
  • Page down: page_down or ctrl+d

Tab Management

  • Open a new tab: ctrl+t
  • Open a new tab with current directory: T
  • Close the current tab: W or ctrl+w
  • Switch to next tab: \t
  • Switch to previous tab: backtab

File Operations

  • Rename file: a to append or A to prepend
  • Delete file: delete or d d
  • Cut file: d d
  • Copy file: y y
  • Paste file: p p
  • Paste file with overwrite: p o
  • Symlink files: p l for absolute path, p L for relative path

Miscellaneous

  • Toggle hidden files: z h
  • Reload directory list: R
  • Change directory: c d
  • Show tasks: w
  • Set mode: =
  • Enter command mode: :

See docs#quit for exiting into current directory and other usages

Configuration

Check out docs for details and config for examples

joshuto.toml

  • general configurations

keymap.toml

  • for keybindings

mimetype.toml

  • for opening files with applications

theme.toml

  • color customizations

bookmarks.toml

  • bookmarks

Contributing

See docs

Bugs/Feature Request

Please create an issue :)

Features

  • Tabs
  • Devicons
  • Fuzzy search via fzf
  • Ctrl/Shift/Alt support
  • Bulk rename
  • File previews
    • See Image previews for more details
  • Exit to current directory
  • Asynch File IO (cut/copy/paste)
  • Custom colors/theme
  • Line numbers
    • Jump to number
  • File chooser
  • Trash support

TODOs

  • Built-in command line
    • Mostly working
    • Currently implementation is kind of janky
    • Tab autocomplete (in progress)

About

ranger-like terminal file manager written in Rust

crates.io/crates/joshuto

Topics

clipboardconcurrencyfile-managerhacktoberfestjoshutolinuxncursesrangerrusttermiontomltuitui-rs

Resources

Readme
LGPL-3.0 license

Contributing

Contributing
Activity

Stars

3.7k stars

Watchers

25 watching

Forks

164 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.